pool.h - Man Page

C wrapper for DMLite Pool API.

Synopsis

#include 'dmlite.h'
#include 'any.h'
#include 'inode.h'
#include 'utils.h'

Data Structures

struct dmlite_pool
Pool data.
struct dmlite_chunk
Chunk of data.
struct dmlite_location
Collection of chunks that form a replica.
struct dmlite_xferinfo
Progress markers for file copies. FTS jargon calls these 'FTS performance markers'.

Macros

#define POOL_TYPE_MAX   16
#define POOL_MAX   16
#define CHUNK_ID_MAX   16
#define CHUNK_URL_ALT_MAX   512

Typedefs

typedef struct dmlite_pool dmlite_pool
Pool data.
typedef struct dmlite_chunk dmlite_chunk
Chunk of data.
typedef struct dmlite_location dmlite_location
Collection of chunks that form a replica.
typedef struct dmlite_xferinfo dmlite_xferinfo
Progress markers for file copies. FTS jargon calls these 'FTS performance markers'.

Functions

int dmlite_getpools (dmlite_context *context, unsigned *nPools, dmlite_pool **pools)
Gets the list of pools.
int dmlite_pools_free (unsigned nPools, dmlite_pool *pools)
Frees an array of pools.
dmlite_location * dmlite_get (dmlite_context *context, const char *path)
Gets a single replica (synchronous).
int dmlite_copypush (dmlite_context *context, const char *path, const char *dest, int cksumcheck, char *cksumtype, dmlite_xferinfo *progressdata)
Copy a file to a remote location (synchronous).
int dmlite_copypull (dmlite_context *context, const char *path, const char *source, int cksumcheck, char *cksumtype, dmlite_xferinfo *progressdata)
Copy a file from a remote location (synchronous). Allows copying to this head node, may add a replica to an existing logical file entry.
dmlite_location * dmlite_iget (dmlite_context *context, ino_t inode)
Gets a single replica (synchronous).
dmlite_location * dmlite_getlocation (dmlite_context *context, const dmlite_replica *replica)
Gets the location of a replica.
dmlite_location * dmlite_put (dmlite_context *context, const char *path)
Puts a file (synchronous).
dmlite_location * dmlite_chooseserver (dmlite_context *context, const char *path)
Choose a server where to perform generic actions (e.g. a tunnel)
int dmlite_put_abort (dmlite_context *context, const dmlite_location *loc)
Aborts a put request.
int dmlite_location_free (dmlite_location *loc)
Frees a location struct.
int dmlite_getdirspaces (dmlite_context *context, const char *logicaldir, int64_t *freespace, int64_t *used)
Get the estimation of the free/used space for writing into a directory.

Detailed Description

C wrapper for DMLite Pool API.

Author

Alejandro Álvarez Ayllon aalvarez@cern.ch

Macro Definition Documentation

#define CHUNK_ID_MAX   16

#define CHUNK_URL_ALT_MAX   512

#define POOL_MAX   16

#define POOL_TYPE_MAX   16

Typedef Documentation

typedef struct dmlite_chunk dmlite_chunk

Chunk of data.

typedef struct dmlite_location dmlite_location

Collection of chunks that form a replica. On read, there may be duplicated chunks.

typedef struct dmlite_pool dmlite_pool

Pool data.

typedef struct dmlite_xferinfo dmlite_xferinfo

Progress markers for file copies. FTS jargon calls these 'FTS performance markers'.

Function Documentation

dmlite_location* dmlite_chooseserver (dmlite_context * context, const char * path)

Choose a server where to perform generic actions (e.g. a tunnel)

Parameters

context The DM context.
path The logical file name to put.

Returns

A pointer to a dmlite_location struct, or NULL on error.

int dmlite_copypull (dmlite_context * context, const char * path, const char * source, int cksumcheck, char * cksumtype, dmlite_xferinfo * progressdata)

Copy a file from a remote location (synchronous). Allows copying to this head node, may add a replica to an existing logical file entry.

Parameters

context The DM context.
path The logical file name.
source An URL, that may be a remote destination
cksumcheck Tell the copy process to check the final checksums
cksumtype Type of checksum that must be checked (e.g. adler32)

Returns

0 on success, error code otherwise. EAGAIN means performance marker

Beware, the path to the delegated proxy (if any) is stored in the dmlite context

int dmlite_copypush (dmlite_context * context, const char * path, const char * dest, int cksumcheck, char * cksumtype, dmlite_xferinfo * progressdata)

Copy a file to a remote location (synchronous).

Parameters

context The DM context.
path The logical file name.
dest An URL, that must be a remote destination
cksumcheck Tell the copy process to check the final checksums
cksumtype Type of checksum that must be checked (e.g. adler32)

Returns

0 on success, error code otherwise. EAGAIN means performance marker

Beware, the path to the delegated proxy (if any) is stored in the dmlite context

dmlite_location* dmlite_get (dmlite_context * context, const char * path)

Gets a single replica (synchronous).

Parameters

context The DM context.
path The logical file name.

Returns

A pointer to a dmlite_location struct, or NULL on error.

int dmlite_getdirspaces (dmlite_context * context, const char * logicaldir, int64_t * freespace, int64_t * used)

Get the estimation of the free/used space for writing into a directory.

Parameters

path The path of the directory to query
totalfree The total number of free bytes (may not be contiguous)
used The total number of used bytes

Returns

0 on success, error code otherwise.

dmlite_location* dmlite_getlocation (dmlite_context * context, const dmlite_replica * replica)

Gets the location of a replica.

Parameters

context The DM context.
replica The replica to translate.

Returns

A pointer to a dmlite_location struct, or NULL on error.

int dmlite_getpools (dmlite_context * context, unsigned * nPools, dmlite_pool ** pools)

Gets the list of pools.

Parameters

context The DM context.
nPools The number of pools.
pools An array with the pools. Use dmlite_freepools to free.

Returns

0 on success, error code otherwise.

dmlite_location* dmlite_iget (dmlite_context * context, ino_t inode)

Gets a single replica (synchronous).

Parameters

context The DM context.
inode The file inode.

Returns

A pointer to a dmlite_location struct, or NULL on error.

int dmlite_location_free (dmlite_location * loc)

Frees a location struct.

Parameters

loc The struct to free.

Returns

0 on success, error code otherwise.

int dmlite_pools_free (unsigned nPools, dmlite_pool * pools)

Frees an array of pools.

Parameters

nPools The number of pools in the array.
pools The array to free.

Returns

0 on success, error code otherwise.

dmlite_location* dmlite_put (dmlite_context * context, const char * path)

Puts a file (synchronous).

Parameters

context The DM context.
path The logical file name to put.

Returns

A pointer to a dmlite_location struct, or NULL on error.

int dmlite_put_abort (dmlite_context * context, const dmlite_location * loc)

Aborts a put request.

Parameters

context The DM context.
loc As returned by dmlite_put.

Returns

0 on success, error code otherwise.

Author

Generated automatically by Doxygen for dmlite from the source code.

Info

Sun Mar 28 2021 Version 0.6 dmlite