dmlite
0.6
|
C wrapper for DMLite INode API. More...
Go to the source code of this file.
Classes | |
struct | dmlite_replica |
struct | dmlite_xstat |
Typedefs | |
typedef struct dmlite_replica | dmlite_replica |
typedef struct dmlite_xstat | dmlite_xstat |
typedef struct dmlite_idir | dmlite_idir |
Enumerations | |
enum | dmlite_replica_status { kAvailable = '-', kBeingPopulated = 'P', kToBeDeleted = 'D' } |
enum | dmlite_replica_type { kVolatile = 'V', kPermanent = 'P' } |
enum | dmlite_replica_ps { kPrimary = 'P', kSecondary = 'S' } |
enum | dmlite_file_status { kOnline = '-', kMigrated = 'm', kDeleted = 'D' } |
Functions | |
int | dmlite_ibegin (dmlite_context *context) |
Starts a transaction. More... | |
int | dmlite_icommit (dmlite_context *context) |
Commits the changes. More... | |
int | dmlite_irollback (dmlite_context *context) |
Undo the changes. More... | |
int | dmlite_icreate (dmlite_context *context, const dmlite_xstat *f) |
Creates a new file. More... | |
int | dmlite_isymlink (dmlite_context *context, ino_t inode, const char *link) |
Associates a symlink with an existing file. More... | |
int | dmlite_iunlink (dmlite_context *context, ino_t inode) |
Removes a file or directory from the database. More... | |
int | dmlite_imove (dmlite_context *context, ino_t inode, ino_t dest) |
Moves a file to a different parent directory. More... | |
int | dmlite_irename (dmlite_context *context, ino_t inode, const char *name) |
Changes the name of an entry. More... | |
int | dmlite_istat (dmlite_context *context, ino_t inode, struct stat *buf) |
Does a stat of an entry using the inode instead of the path. More... | |
int | dmlite_istatx (dmlite_context *context, ino_t inode, dmlite_xstat *buf) |
Does an extended stat of an entry using the inode instead of the path. More... | |
int | dmlite_istatx_by_name (dmlite_context *context, ino_t parent, const char *name, dmlite_xstat *buf) |
Does an extended stat using the parent inode and the entry name. More... | |
int | dmlite_ireadlink (dmlite_context *context, ino_t inode, char *path, size_t bufsize) |
Reads a symbolic link. More... | |
int | dmlite_iaddreplica (dmlite_context *context, const dmlite_replica *replica) |
Adds a new replica. More... | |
int | dmlite_ideletereplica (dmlite_context *context, const dmlite_replica *replica) |
Deletes a replica. More... | |
int | dmlite_igetreplica (dmlite_context *context, int64_t rid, dmlite_replica *buf) |
Gets a specific replica using its replica id. More... | |
int | dmlite_igetreplicas (dmlite_context *context, ino_t inode, unsigned *nreplicas, dmlite_replica **replicas) |
Gets all the replicas associated to a file. More... | |
int | dmlite_iutime (dmlite_context *context, ino_t inode, const struct utimbuf *buf) |
Sets the access and modification time. More... | |
int | dmlite_isetmode (dmlite_context *context, ino_t inode, uid_t uid, gid_t gid, mode_t mode, unsigned nentries, dmlite_aclentry *acl) |
Sets the mode and ACL of a file. More... | |
int | dmlite_isetsize (dmlite_context *context, ino_t inode, size_t size) |
Sets the size of a file. More... | |
int | dmlite_isetchecksum (dmlite_context *context, ino_t inode, const char *csumtype, const char *csumvalue) |
Sets the checksum of a file. More... | |
int | dmlite_igetcomment (dmlite_context *context, ino_t inode, char *comment, size_t bufsize) |
Gets the comment associated with an entry. More... | |
int | dmlite_isetcomment (dmlite_context *context, ino_t inode, const char *comment) |
Sets the comment associated with an entry. More... | |
int | dmlite_ideletecomment (dmlite_context *context, ino_t inode) |
Deletes the comment associated with an entry. More... | |
int | dmlite_isetguid (dmlite_context *context, ino_t inode, const char *guid) |
Sets the file Grid Unique Identifier. More... | |
int | dmlite_iupdate_xattr (dmlite_context *context, ino_t inode, const dmlite_any_dict *xattr) |
Updates the file extended attributes. More... | |
dmlite_idir * | dmlite_iopendir (dmlite_context *context, ino_t inode) |
Opens a directory. More... | |
int | dmlite_iclosedir (dmlite_context *context, dmlite_idir *dir) |
Closes a directory, freeing any internally allocated memory. More... | |
dmlite_xstat * | dmlite_ireaddirx (dmlite_context *context, dmlite_idir *dir) |
Reads a directory. Extended data. More... | |
struct dirent * | dmlite_ireaddir (dmlite_context *context, dmlite_idir *dir) |
Reads a directory. More... | |
C wrapper for DMLite INode API.
typedef struct dmlite_idir dmlite_idir |
Opaque directory handler
typedef struct dmlite_replica dmlite_replica |
A replica of a file
typedef struct dmlite_xstat dmlite_xstat |
File metadata
enum dmlite_file_status |
enum dmlite_replica_ps |
enum dmlite_replica_type |
int dmlite_iaddreplica | ( | dmlite_context * | context, |
const dmlite_replica * | replica | ||
) |
Adds a new replica.
context | The DM context. |
replica | The replica to add. replica->fileid must point to a valid file. |
int dmlite_ibegin | ( | dmlite_context * | context | ) |
Starts a transaction.
Depending on the plugin stack, it can be possible to nest several calls.
context | The DM context. |
int dmlite_iclosedir | ( | dmlite_context * | context, |
dmlite_idir * | dir | ||
) |
Closes a directory, freeing any internally allocated memory.
context | The DM context. |
dir | The directory to close, as returned by dmlite_opendir. |
int dmlite_icommit | ( | dmlite_context * | context | ) |
Commits the changes.
Depending on the plugin stack, it can be possible to nest several calls, and there must be one icommit per ibegin for the changes to be permanent.
context | The DM context. |
int dmlite_icreate | ( | dmlite_context * | context, |
const dmlite_xstat * | f | ||
) |
Creates a new file.
context | The DM context. |
f | Only some fields from this struct will be used. That would depend on the plugin, but usually it will be: parent, name, mode, uid, gid, size, status, checksum and ACL. |
int dmlite_ideletecomment | ( | dmlite_context * | context, |
ino_t | inode | ||
) |
Deletes the comment associated with an entry.
context | The DM context. |
inode | The file id. |
int dmlite_ideletereplica | ( | dmlite_context * | context, |
const dmlite_replica * | replica | ||
) |
Deletes a replica.
context | The DM context. |
replica | The replica to remove. |
int dmlite_igetcomment | ( | dmlite_context * | context, |
ino_t | inode, | ||
char * | comment, | ||
size_t | bufsize | ||
) |
Gets the comment associated with an entry.
context | The DM context. |
inode | The file id. |
comment | Where to put the comment. |
bufsize | The size of the memory pointed by comment. |
int dmlite_igetreplica | ( | dmlite_context * | context, |
int64_t | rid, | ||
dmlite_replica * | buf | ||
) |
Gets a specific replica using its replica id.
context | The DM context. |
rid | The replica id. |
buf | Where to put the retrieved data. |
int dmlite_igetreplicas | ( | dmlite_context * | context, |
ino_t | inode, | ||
unsigned * | nreplicas, | ||
dmlite_replica ** | replicas | ||
) |
Gets all the replicas associated to a file.
context | The DM context. |
inode | The file id. |
nreplicas | The number of replicas will be put here. |
replicas | It will be initialized to an array of nreplicas replicas. Free it with dmlite_replicas_free. |
int dmlite_imove | ( | dmlite_context * | context, |
ino_t | inode, | ||
ino_t | dest | ||
) |
Moves a file to a different parent directory.
context | The DM context. |
inode | The file id. |
dest | The destination id. |
dmlite_idir* dmlite_iopendir | ( | dmlite_context * | context, |
ino_t | inode | ||
) |
Opens a directory.
context | The DM context. |
inode | The directory ID. |
struct dirent* dmlite_ireaddir | ( | dmlite_context * | context, |
dmlite_idir * | dir | ||
) |
Reads a directory.
context | The DM context. |
dir | The directory to read, as returned by dmlite_opendir. |
dmlite_xstat* dmlite_ireaddirx | ( | dmlite_context * | context, |
dmlite_idir * | dir | ||
) |
Reads a directory. Extended data.
context | The DM context. |
dir | The directory to read, as returned by dmlite_opendir. |
int dmlite_ireadlink | ( | dmlite_context * | context, |
ino_t | inode, | ||
char * | path, | ||
size_t | bufsize | ||
) |
Reads a symbolic link.
context | The DM context. |
inode | The file id. |
path | The link will be put here. |
bufsize | The size of the memory area pointed by path. |
int dmlite_irename | ( | dmlite_context * | context, |
ino_t | inode, | ||
const char * | name | ||
) |
Changes the name of an entry.
context | The DM context. |
inode | The file id. |
name | The new name. |
int dmlite_irollback | ( | dmlite_context * | context | ) |
Undo the changes.
If several ibegin were nested, all the transactions will be probable be undone, regardless on the nesting level.
context | The DM context. |
int dmlite_isetchecksum | ( | dmlite_context * | context, |
ino_t | inode, | ||
const char * | csumtype, | ||
const char * | csumvalue | ||
) |
Sets the checksum of a file.
context | The DM context. |
inode | The file id. |
csumtype | The new checksum type. |
csumvalue | The new checksum value. |
int dmlite_isetcomment | ( | dmlite_context * | context, |
ino_t | inode, | ||
const char * | comment | ||
) |
Sets the comment associated with an entry.
context | The DM context. |
inode | The file id. |
comment | The new comment. |
int dmlite_isetguid | ( | dmlite_context * | context, |
ino_t | inode, | ||
const char * | guid | ||
) |
Sets the file Grid Unique Identifier.
context | The DM context. |
inode | The entry id. |
guid | The new GUID. |
int dmlite_isetmode | ( | dmlite_context * | context, |
ino_t | inode, | ||
uid_t | uid, | ||
gid_t | gid, | ||
mode_t | mode, | ||
unsigned | nentries, | ||
dmlite_aclentry * | acl | ||
) |
Sets the mode and ACL of a file.
context | The DM context. |
inode | The file id. |
uid | The new UID. |
gid | The new GID. |
mode | The new mode. |
nentries | The number of acl entries. |
acl | The new ACL. |
int dmlite_isetsize | ( | dmlite_context * | context, |
ino_t | inode, | ||
size_t | size | ||
) |
Sets the size of a file.
context | The DM context. |
inode | The file id. |
size | The new size. |
int dmlite_istat | ( | dmlite_context * | context, |
ino_t | inode, | ||
struct stat * | buf | ||
) |
Does a stat of an entry using the inode instead of the path.
context | The DM context. |
inode | The entry inode. |
buf | Where to put the retrieved information. |
int dmlite_istatx | ( | dmlite_context * | context, |
ino_t | inode, | ||
dmlite_xstat * | buf | ||
) |
Does an extended stat of an entry using the inode instead of the path.
context | The DM context. |
inode | The entry inode. |
buf | Where to put the retrieved information. |
int dmlite_istatx_by_name | ( | dmlite_context * | context, |
ino_t | parent, | ||
const char * | name, | ||
dmlite_xstat * | buf | ||
) |
Does an extended stat using the parent inode and the entry name.
context | The DM context. |
parent | The parent id. |
name | The entry name. |
buf | Where to put the retrieved information. |
int dmlite_isymlink | ( | dmlite_context * | context, |
ino_t | inode, | ||
const char * | link | ||
) |
Associates a symlink with an existing file.
context | The DM context. |
inode | The file that will be a symlink. |
link | The destination link. |
int dmlite_iunlink | ( | dmlite_context * | context, |
ino_t | inode | ||
) |
Removes a file or directory from the database.
context | The DM context. |
inode | The id of the entry to remove. |
int dmlite_iupdate_xattr | ( | dmlite_context * | context, |
ino_t | inode, | ||
const dmlite_any_dict * | xattr | ||
) |
Updates the file extended attributes.
context | The DM context. |
inode | The entry id. |
xattr | The new set of extended attributes. |
int dmlite_iutime | ( | dmlite_context * | context, |
ino_t | inode, | ||
const struct utimbuf * | buf | ||
) |
Sets the access and modification time.
context | The DM context. |
inode | The file id. |
buf | The timestamps. |