catalog.h (3) - Linux Manuals
NAME
catalog.h -
C wrapper for DMLite Catalog API.
SYNOPSIS
#include 'dmlite.h'
#include 'inode.h'
#include 'utils.h'
Typedefs
typedef struct dmlite_dir dmlite_dir
Functions
int dmlite_chdir (dmlite_context *context, const char *path)
Changes the working dir.
char * dmlite_getcwd (dmlite_context *context, char *buffer, size_t size)
Gets the current working directory.
mode_t dmlite_umask (dmlite_context *context, mode_t mask)
Sets the file mode creation mask.
int dmlite_stat (dmlite_context *context, const char *path, struct stat *buf)
Does a stat of a file or directory.
int dmlite_statl (dmlite_context *context, const char *path, struct stat *buf)
Does a stat of a file, directory, or symbolic link (does not follow).
int dmlite_statx (dmlite_context *context, const char *path, dmlite_xstat *buf)
Does an extended stat of a file, directory or symbolic link.
int dmlite_rstatx (dmlite_context *context, const char *rfn, dmlite_xstat *buf)
Does an extended stat of a logical file using an associated replica filename.
int dmlite_access (dmlite_context *context, const char *lfn, int mode)
Checks wether the process would be allowed to read, write, or check existence.
int dmlite_accessr (dmlite_context *context, const char *rfn, int mode)
Checks wether the process would be allowed to read, write, or check existence.
int dmlite_addreplica (dmlite_context *context, const dmlite_replica *replica)
Adds a new replica to an entry.
int dmlite_delreplica (dmlite_context *context, const dmlite_replica *replica)
Deletes a replica.
int dmlite_getreplicas (dmlite_context *context, const char *path, unsigned *nReplicas, dmlite_replica **fileReplicas)
Gets the replicas of a file.
int dmlite_replicas_free (unsigned nReplicas, dmlite_replica *fileReplicas)
Frees a replica list.
int dmlite_symlink (dmlite_context *context, const char *oldPath, const char *newPath)
Creates a symlink.
int dmlite_readlink (dmlite_context *context, const char *path, char *buf, size_t bufsize)
Reads a symlink.
int dmlite_unlink (dmlite_context *context, const char *path)
Removes a file.
int dmlite_create (dmlite_context *context, const char *path, mode_t mode)
Creates a file in the catalog (no replicas).
int dmlite_chmod (dmlite_context *context, const char *path, mode_t mode)
Changes the mode of a file or directory.
int dmlite_chown (dmlite_context *context, const char *path, uid_t newUid, gid_t newGid)
Changes the owner of a file or directory.
int dmlite_lchown (dmlite_context *context, const char *path, uid_t newUid, gid_t newGid)
Changes the owner of a file, directory or symlink (does not follow).
int dmlite_setfsize (dmlite_context *context, const char *path, uint64_t filesize)
Changes the size of a file in the catalog.
int dmlite_setfsizec (dmlite_context *context, const char *path, uint64_t filesize, const char *csumtype, const char *csumvalue)
Changes the size and checksum of a file in the catalog.
int dmlite_getchecksum (dmlite_context *context, const char *path, const char *csumtype, char *csumvalue, const int maxcksumlen, const char *pfn, const int forcerecalc, const int waitsecs)
Gets the checksum of a file in the catalog.
int dmlite_setacl (dmlite_context *context, const char *path, unsigned nEntries, dmlite_aclentry *acl)
Changes the ACL of a file.
int dmlite_utime (dmlite_context *context, const char *path, const struct utimbuf *buf)
Changes access and/or modification time.
int dmlite_getcomment (dmlite_context *context, const char *path, char *comment, size_t bufsize)
Gets the comment associated with a file.
int dmlite_setcomment (dmlite_context *context, const char *path, const char *comment)
Sets the comment associated with a file.
int dmlite_setguid (dmlite_context *context, const char *path, const char *guid)
Sets the file Grid Unique Identifier.
int dmlite_update_xattr (dmlite_context *context, const char *path, const dmlite_any_dict *xattr)
Updates the file extended attributes.
int dmlite_getgrpbynam (dmlite_context *context, const char *groupName, gid_t *gid)
Gets the id of a group.
int dmlite_getusrbynam (dmlite_context *context, const char *userName, uid_t *uid)
Get the user id.
dmlite_dir * dmlite_opendir (dmlite_context *context, const char *path)
Opens a directory to read it later.
int dmlite_closedir (dmlite_context *context, dmlite_dir *dir)
Closes a directory and free the internal structures.
struct dirent * dmlite_readdir (dmlite_context *context, dmlite_dir *dir)
Reads an entry from a directory.
dmlite_xstat * dmlite_readdirx (dmlite_context *context, dmlite_dir *dir)
Reads an entry from a directory (extended data).
int dmlite_mkdir (dmlite_context *context, const char *path, mode_t mode)
Creates a new directory.
int dmlite_rename (dmlite_context *context, const char *oldPath, const char *newPath)
Renames a file, directory or symlink.
int dmlite_rmdir (dmlite_context *context, const char *path)
Deletes a directory. It must be empty.
int dmlite_getreplica_by_rfn (dmlite_context *context, const char *rfn, dmlite_replica *replica)
Gets a specific replica.
int dmlite_updatereplica (dmlite_context *context, const dmlite_replica *replica)
Updates a replica.
Detailed Description
C wrapper for DMLite Catalog API.
Author:
- Alejandro Álvarez Ayllon aalvarez [at] cern.ch
Typedef Documentation
typedef struct dmlite_dir dmlite_dir
Function Documentation
int dmlite_access (dmlite_context *context, const char *lfn, intmode)
Checks wether the process would be allowed to read, write, or check existence.
Parameters:
-
context The DM context.
lfn Logical filename.
mode A mask consisting of one or more of R_OK, W_OK, X_OK and F_OK.
Returns:
- 0 on success, error code otherwise.
int dmlite_accessr (dmlite_context *context, const char *rfn, intmode)
Checks wether the process would be allowed to read, write, or check existence.
Parameters:
-
context The DM context.
rfn Replica filename.
mode A mask consisting of one or more of R_OK, W_OK, X_OK and F_OK.
Returns:
- 0 on success, error code otherwise.
int dmlite_addreplica (dmlite_context *context, const dmlite_replica *replica)
Adds a new replica to an entry.
Parameters:
-
context The DM context.
replica The replica to add.
Returns:
- 0 on success, error code otherwise.
int dmlite_chdir (dmlite_context *context, const char *path)
Changes the working dir.
Parameters:
-
context The DM context.
path The new working dir.
Returns:
- 0 on success, error code otherwise.
int dmlite_chmod (dmlite_context *context, const char *path, mode_tmode)
Changes the mode of a file or directory.
Parameters:
-
context The DM context.
path The logical path.
mode The new mode.
Returns:
- 0 on success, error code otherwise.
int dmlite_chown (dmlite_context *context, const char *path, uid_tnewUid, gid_tnewGid)
Changes the owner of a file or directory.
Parameters:
-
context The DM context.
path The logical path.
newUid The new owner.
newGid The new group.
Returns:
- 0 on success, error code otherwise.
int dmlite_closedir (dmlite_context *context, dmlite_dir *dir)
Closes a directory and free the internal structures.
Parameters:
-
context The DM context.
dir The pointer returned by dmlite_opendir.
Returns:
- 0 on success, error code otherwise.
int dmlite_create (dmlite_context *context, const char *path, mode_tmode)
Creates a file in the catalog (no replicas).
Parameters:
-
context The DM context.
path The logical file name.
mode The creation mode.
Returns:
- 0 on success, error code otherwise.
int dmlite_delreplica (dmlite_context *context, const dmlite_replica *replica)
Deletes a replica.
Parameters:
-
context The DM context.
replica The replica to delete.
Returns:
- 0 on success, error code otherwise.
int dmlite_getchecksum (dmlite_context *context, const char *path, const char *csumtype, char *csumvalue, const intmaxcksumlen, const char *pfn, const intforcerecalc, const intwaitsecs)
Gets the checksum of a file in the catalog.
Parameters:
-
context The DM context.
path The logical path.
csumtype The wanted checksum type (CS, AD or MD. We can also pass a long checksum name (e.g. checksum.adler32))
csumvalue The wanted checksum value will be written into this string. Make sure it has enough space.
maxcksumlen Max allowed length for a checksum, to avoid buffer overflows.
pfn Optional: the corresponding replica for which to calculate a checksum
forcerecalc True if nonzero. Force recalculation of the checksum (may take long and return EAGAIN)
waitsecs Seconds to wait for a checksum to be calculated. Returns EAGAIN if timeouts. Set to 0 for blocking behavior.
Returns:
- 0 on success, error code otherwise.
int dmlite_getcomment (dmlite_context *context, const char *path, char *comment, size_tbufsize)
Gets the comment associated with a file.
Parameters:
-
context The DM context.
path The logical path.
comment Where to put the retrieved comment. It must be at least of size COMMENT_MAX.
bufsize Size of the memory zone pointed by comment.
Returns:
- 0 on success, error code otherwise.
char* dmlite_getcwd (dmlite_context *context, char *buffer, size_tsize)
Gets the current working directory.
Parameters:
-
context The DM context.
buffer If not NULL, the path will be stored here. malloc will be used otherwise.
size The buffer size.
Returns:
- A pointer to a string with the current working dir.
int dmlite_getgrpbynam (dmlite_context *context, const char *groupName, gid_t *gid)
Gets the id of a group.
Parameters:
-
context The DM context.
groupName The group name.
gid Where to put the group ID.
Returns:
- 0 on success, error code otherwise.
int dmlite_getreplica_by_rfn (dmlite_context *context, const char *rfn, dmlite_replica *replica)
Gets a specific replica.
Parameters:
-
context The DM context.
rfn The replica file name.
replica A buffer where the retrieved data will be put.
Returns:
- 0 on success, error code otherwise.
int dmlite_getreplicas (dmlite_context *context, const char *path, unsigned *nReplicas, dmlite_replica **fileReplicas)
Gets the replicas of a file.
Parameters:
-
context The DM context.
path The logical file name.
nReplicas The number of entries will be put here.
fileReplicas An array with nEntries elements will be stored here. Use dmlite_replicas_free to free it.
Returns:
- 0 on success, error code otherwise.
int dmlite_getusrbynam (dmlite_context *context, const char *userName, uid_t *uid)
Get the user id.
Parameters:
-
context The DM context.
userName The user name.
uid Where to put the user ID.
Returns:
- 0 on success, error code otherwise.
int dmlite_lchown (dmlite_context *context, const char *path, uid_tnewUid, gid_tnewGid)
Changes the owner of a file, directory or symlink (does not follow).
Parameters:
-
context The DM context.
path The logical path.
newUid The new owner.
newGid The new group.
Returns:
- 0 on success, error code otherwise.
int dmlite_mkdir (dmlite_context *context, const char *path, mode_tmode)
Creates a new directory.
Parameters:
-
context The DM context.
path The directory for the new path. All the precedent folders must exist.
mode Permissions to use for the creation.
Returns:
- 0 on success, error code otherwise.
dmlite_dir* dmlite_opendir (dmlite_context *context, const char *path)
Opens a directory to read it later.
Parameters:
-
context The DM context.
path The directory to open.
Returns:
- A pointer to an internal structure, or NULL on failure.
struct dirent* dmlite_readdir (dmlite_context *context, dmlite_dir *dir)
Reads an entry from a directory.
Parameters:
-
context The DM context.
dir The pointer returned by dmlite_opendir.
Returns:
- A pointer to a struct with the recovered data. NULL on failure, or end of dir. If an error occurred, dm_errno(context) will be different than 0.
Note:
- The pointer is internally allocated. Do not free it.
dmlite_xstat* dmlite_readdirx (dmlite_context *context, dmlite_dir *dir)
Reads an entry from a directory (extended data).
Parameters:
-
context The DM context.
dir The pointer returned by dmlite_opendir.
Returns:
- A pointer to a struct with the recovered data. NULL on failure, or end of dir. If an error occurred, dm_errno(context) will be different than 0.
Note:
- The pointer is internally allocated. Do not free it.
int dmlite_readlink (dmlite_context *context, const char *path, char *buf, size_tbufsize)
Reads a symlink.
Parameters:
-
context The DM context.
path The symlink file.
buf Where to put the symlink target.
bufsize The size of the memory pointed by buf.
Returns:
- 0 on success, error code otherwise.
int dmlite_rename (dmlite_context *context, const char *oldPath, const char *newPath)
Renames a file, directory or symlink.
Parameters:
-
context The DM context.
oldPath The old name.
newPath The new name.
Returns:
- 0 on success, error code otherwise.
int dmlite_replicas_free (unsignednReplicas, dmlite_replica *fileReplicas)
Frees a replica list.
Parameters:
-
nReplicas The number of replicas contained in the array.
fileReplicas The array to free.
Returns:
- 0 on success, error code otherwise.
int dmlite_rmdir (dmlite_context *context, const char *path)
Deletes a directory. It must be empty.
Parameters:
-
context The DM context.
path The directory to remove.
Returns:
- 0 on success, error code otherwise.
int dmlite_rstatx (dmlite_context *context, const char *rfn, dmlite_xstat *buf)
Does an extended stat of a logical file using an associated replica filename.
Parameters:
-
context The DM context.
rfn Replica filename.
buf Where to put the retrieved information.
Returns:
- 0 on success, error code otherwise.
int dmlite_setacl (dmlite_context *context, const char *path, unsignednEntries, dmlite_aclentry *acl)
Changes the ACL of a file.
Parameters:
-
context The DM context.
path The logical path.
nEntries The number of entries in the acl array.
acl An ACL array.
Returns:
- 0 on success, error code otherwise.
int dmlite_setcomment (dmlite_context *context, const char *path, const char *comment)
Sets the comment associated with a file.
Parameters:
-
context The DM context.
path The logical path.
comment The comment to associate. '\0' terminated string.
Returns:
- 0 on success, error code otherwise.
int dmlite_setfsize (dmlite_context *context, const char *path, uint64_tfilesize)
Changes the size of a file in the catalog.
Parameters:
-
context The DM context.
path The logical path.
filesize The new file size.
Returns:
- 0 on success, error code otherwise.
int dmlite_setfsizec (dmlite_context *context, const char *path, uint64_tfilesize, const char *csumtype, const char *csumvalue)
Changes the size and checksum of a file in the catalog.
Parameters:
-
context The DM context.
path The logical path.
filesize The new file size.
csumtype The new checksum type (CS, AD or MD).
csumvalue The new checksum value.
Returns:
- 0 on success, error code otherwise.
int dmlite_setguid (dmlite_context *context, const char *path, const char *guid)
Sets the file Grid Unique Identifier.
Parameters:
-
context The DM context.
path The logical path.
guid The new GUID.
Returns:
- 0 on success, error code otherwise.
int dmlite_stat (dmlite_context *context, const char *path, struct stat *buf)
Does a stat of a file or directory.
Parameters:
-
context The DM context.
path The path.
buf Where to put the retrieved information.
Returns:
- 0 on success, error code otherwise.
int dmlite_statl (dmlite_context *context, const char *path, struct stat *buf)
Does a stat of a file, directory, or symbolic link (does not follow).
Parameters:
-
context The DM context.
path The path.
buf Where to put the retrieved information.
Returns:
- 0 on success, error code otherwise.
int dmlite_statx (dmlite_context *context, const char *path, dmlite_xstat *buf)
Does an extended stat of a file, directory or symbolic link.
Parameters:
-
context The DM context.
path The path.
buf Where to put the retrieved information.
Returns:
- 0 on success, error code otherwise.
int dmlite_symlink (dmlite_context *context, const char *oldPath, const char *newPath)
Creates a symlink.
Parameters:
-
context The DM context.
oldPath The old path.
newPath The new path.
Returns:
- 0 on success, error code otherwise.
mode_t dmlite_umask (dmlite_context *context, mode_tmask)
Sets the file mode creation mask.
Parameters:
-
context The DM context.
mask The new mask.
Returns:
- The previous mask.
int dmlite_unlink (dmlite_context *context, const char *path)
Removes a file.
Parameters:
-
context The DM context.
path The logical file name.
Returns:
- 0 on success, error code otherwise.
int dmlite_update_xattr (dmlite_context *context, const char *path, const dmlite_any_dict *xattr)
Updates the file extended attributes.
Parameters:
-
context The DM context.
path The logical path.
xattr The new set of extended attributes.
Returns:
- 0 on success, error code otherwise.
int dmlite_updatereplica (dmlite_context *context, const dmlite_replica *replica)
Updates a replica.
Parameters:
-
context The DM context.
replica The replica to modify.
Returns:
- 0 on success, error code otherwise.
int dmlite_utime (dmlite_context *context, const char *path, const struct utimbuf *buf)
Changes access and/or modification time.
Parameters:
-
context The DM context.
path The file path.
buf A struct holding the new times.
Returns:
- 0 on success, error code otherwise.
Author
Generated automatically by Doxygen for dmlite from the source code.