Main Page   Modules   Data Structures   File List   Data Fields   Globals  

lors_api.h File Reference

#include <assert.h>
#include <pthread.h>
#include <semaphore.h>
#include <sys/types.h>
#include <jval.h>
#include <jrb.h>
#include <dllist.h>
#include <ibp.h>
#include <lors_error.h>
#include <lors_opts.h>
#include <lors_sem.h>
#include <exnode.h>
#include <lbone_base.h>
#include <lors_util.h>

Go to the source code of this file.

Data Structures

struct  __is_block
struct  __LorsBoundary
struct  __LorsExnode
struct  __lorsConditionStruct
struct  __LorsSet
struct  __LorsDepotPool
struct  __lbone_resolution
struct  __lbone_resoution_index
struct  __depot_t
struct  __LorsMapping

Defines

#define MIN(x, y)   (x < y ? x : y )
#define IBP_HARD   IBP_STABLE
#define IBP_SOFT   IBP_VOLATILE

Typedefs

typedef int64_t longlong
typedef __is_block ISBlock
typedef __LorsBoundary LorsBoundary
typedef __LorsExnode LorsExnode
typedef __lorsConditionStruct LorsConditionStruct
typedef __LorsSet LorsSet
typedef __LorsDepotPool LorsDepotPool
typedef __lbone_resolution LboneResolution
typedef __lbone_resoution_index LboneResolutionIndex
typedef Dllist LorsEnum
typedef __depot_t LorsDepot
typedef __lorsrsset LorsRSSet
typedef __LorsMapping LorsMapping

Functions

void lorsPrintSet (LorsSet *set)
int lorsCreateResolutionFromFile (char *filename, LboneResolution **lr, int metric_index)
int lorsCreateResolutionFromLBone (IBP_depot lboneserver, LboneResolution **lr, int opt)
int lorsSetResolutionPoint (LboneResolution *lr, IBP_depot src, IBP_depot dst, double metric)
int lorsGetResolutionPoint (LboneResolution *lr, IBP_depot src, IBP_depot dst, double *metric)
int lorsSaveResolutionToFile (char *filename, LboneResolution *lr)
int lorsUpdateDepotPoolFromResolution (LorsDepotPool *dp_src, LorsDepotPool *dp_dst, LboneResolution *lr, int opts)
int lorsFreeResolution (LboneResolution *lr)
void lorsGetLibraryVersion (const char **package, const double *version)
int lorsSetEnum (LorsSet *set, LorsEnum *list)
 Form an enumeration of all mappings within the Set.

int lorsExnodeEnum (LorsExnode *exnode, LorsEnum *list)
 Form an enumeration of all mappings within the Exnode.

int lorsEnumNext (LorsEnum list, LorsEnum *iterator, LorsMapping **ret)
 Iterate through a LorsEnum list of mappings.

int lorsEnumFree (LorsEnum list)
 Free a LorsEnum.

int lorsGetDepotPool (LorsDepotPool **dp, char *lbone_server, int lbone_server_port, IBP_depot *depots, int min_unique_depots, char *location, ulong_t storage_size, int storage_type, time_t duration, int nthreads, int timeout, int opts)
 Create a collection of IBP depots from the LBone or a user supplied list.

int lorsUpdateDepotPool (LorsExnode *exnode, LorsDepotPool **ret_dpp, char *lbone_server, int lbone_server_port, char *location, int nthreads, int timeout, int opts)
int lorsFreeDepotPool (LorsDepotPool *dpp)
int lorsExnodeCreate (LorsExnode **exnode)
 Allocate a container structure for LorsSets.

int lorsExnodeFree (LorsExnode *exnode)
int lorsAppendSet (LorsExnode *exnode, LorsSet *set)
 Append a Set to an Exnode.

int lorsAppendMapping (LorsExnode *exnode, LorsMapping *map)
 Add mapping to exnode.

int lorsDetachMapping (LorsExnode *exnode, LorsMapping *map)
 Remove mapping from exnode.

int lorsDeserialize (LorsExnode **exnode, char *buffer, int length, char *schema)
 Reconstruct the Exnode datastructure from an XML serialization.

int lorsFileDeserialize (LorsExnode **exnode, char *filename, char *schema)
 Deserialize from File rather than from buffer.

int lorsSerialize (LorsExnode *exnode, char **buffer, int readonly, int *length)
 Translate Exnode structure to XML string.

int lorsFileSerialize (LorsExnode *exnode, char *filename, int readonly, int opts)
 Serialize Exnode and store to file.

int lorsGetExnodeMetadata (LorsExnode *exnode, ExnodeMetadata **md)
 Fetch the ExnodeMetadata from a LorsExnode or LorsSet.

int lorsGetMappingMetadata (LorsMapping *map, ExnodeMetadata **md)
 Fetch the ExnodeMetadata from a LorsExnode or LorsSet.

int lorsMetadataMerge (ExnodeMetadata *src, ExnodeMetadata *dest)
int lorsQuery (LorsExnode *exnode, LorsSet **set, longlong offset, longlong length, int opt)
int lorsSetAddMapping (LorsSet *set, LorsMapping *map)
int lorsSetRemoveMapping (LorsSet *set, LorsMapping *map)
int lorsSetInit (LorsSet **set, ulong_t data_blocksize, int copies, int opts)
 Initialize LorsSet internal data structures.

int lorsSetStore (LorsSet *set, LorsDepotPool *dp, char *buffer, longlong offset, longlong length, LorsConditionStruct *lc, int nthreads, int timeout, int opts)
 Allocate storage and Send data to the IBP allocations.

int lorsSetUpdate (LorsSet *set, LorsDepotPool *dp, char *buffer, longlong offset, longlong length, int nthreads, int timeout, int opts)
long lorsSetLoad (LorsSet *set, char *buffer, longlong offset, long length, ulong_t block_size, LorsConditionStruct *lc, int nthreads, int timeout, int opts)
 Retrieve data from IBP allocations.

longlong lorsSetRealTimeLoad (LorsSet *set, char *buffer, int fd, longlong offset, longlong length, ulong_t block_size, int pre_buf, int cache, LorsConditionStruct *lc, int nthreads, int timeout, int max_thds_per_depot, int thds_per_job, int progress_n, int opts)
 Provide real-time streaming of data over a file descriptor.

int lorsSetCopy (LorsSet *srcSet, LorsSet *dstSet, LorsDepotPool *dp, LboneResolution *lr, longlong offset, longlong length, int nthreads, int timeout, int opts)
 Create replicas of data in srcSet allocation to another.

int lorsSetMerge (LorsSet *src, LorsSet *dest)
 Combine the mappings from two Sets into one Set.

int lorsSetTrim (LorsSet *set, longlong offset, longlong length, int nthreads, int timeout, int opts)
 Remove particular extents or Mappings from Set.

int lorsSetRefresh (LorsSet *set, longlong offset, longlong length, time_t duration, int nthreads, int timeout, int opts)
 Refresh the expiration time on allocated storage.

int lorsSetStat (LorsSet *set, int nthreads, int timeout, int opts)
 Perform a status operation on the Mappings of a Set.

int lorsSetFree (LorsSet *set, int opts)
 Perform 'free' on internal data structures.

int lorsSetTrimCaps (LorsSet *set, int opts)
 Trim IBP caps from a set of mappings.


Define Documentation

#define MIN x,
     (x < y ? x : y )
 

#define IBP_HARD   IBP_STABLE
 

#define IBP_SOFT   IBP_VOLATILE
 


Typedef Documentation

typedef int64_t longlong
 

typedef struct __is_block ISBlock
 

typedef struct __LorsBoundary LorsBoundary
 

typedef struct __LorsExnode LorsExnode
 

typedef struct __lorsConditionStruct LorsConditionStruct
 

typedef struct __LorsSet LorsSet
 

typedef struct __LorsDepotPool LorsDepotPool
 

typedef Dllist LorsEnum
 

typedef struct __depot_t LorsDepot
 

typedef struct __lorsrsset LorsRSSet
 

typedef struct __LorsMapping LorsMapping
 


Function Documentation

void lorsPrintSet LorsSet   set
 

int lorsExnodeFree LorsExnode   exnode
 

int lorsGetExnodeMetadata LorsExnode   exnode,
ExnodeMetadata **    md
 

Fetch the ExnodeMetadata from a LorsExnode or LorsSet.

The lorsExnodeCreate() or lorsSetCreate() will allocate a ExnodeMetadata. Therefore, there is no lorsSetMetadataCreate() call. To access the metadata for either a set or exnode use these calls. Because you are given a pointer to the same pointer that the exnode or set maintain, there are no functions to set the metadata for an exnode or set.

Parameters:
exnode  An exnode pointer.
md  A pointer to a ExnodeMetadata variable, to be used with future calls for Metadata manipulation.

int lorsGetMappingMetadata LorsMapping   map,
ExnodeMetadata **    md
 

Fetch the ExnodeMetadata from a LorsExnode or LorsSet.

The lorsExnodeCreate() or lorsSetCreate() will allocate a ExnodeMetadata. Therefore, there is no lorsMetadataCreate() call. To access the metadata for either a set or exnode use these calls. Because you are given a pointer to the same pointer that the exnode or set maintain, there are no functions to set the metadata for an exnode or set.

Note:
Parameters:
map  A LorsMapping pointer.
md  A pointer to a ExnodeMetadata variable, to be used with future calls for Metadata manipulation.

int lorsMetadataMerge ExnodeMetadata *    src,
ExnodeMetadata *    dest
 

int lorsSetUpdate LorsSet   set,
LorsDepotPool   dp,
char *    buffer,
longlong    offset,
longlong    length,
int    nthreads,
int    timeout,
int    opts