NAME¶
dpns_listreplica - list replica entries for a given file
SYNOPSIS¶
#include <sys/types.h>
#include "dpns_api.h"
struct dpns_filereplica *dpns_listreplica (const char
*path, const char *guid,int
flags,dpns_list *listp)
DESCRIPTION¶
dpns_listreplicalists replica entries for a given file.This routine
returns a pointer to a structure containing the current replica entry.
struct dpns_filereplica {
u_signed64 fileid;
u_signed64 nbaccesses;
time_t atime; /* last access to replica */
time_t ptime; /* replica pin time */
char status;
char f_type; /* 'V' for Volatile, 'P' for Permanent */
char poolname[CA_MAXPOOLNAMELEN+1];
char host[CA_MAXHOSTNAMELEN+1];
char fs[80];
char sfn[CA_MAXSFNLEN+1];
};
- path
- specifies the logical pathname.
- guid
- specifies the Grid Unique IDentifier.
- flags
- may be one of the following constant:
- CNS_LIST_BEGIN
- the first call must have this flag set to allocate buffers
and initialize pointers.
- CNS_LIST_CONTINUE
- all the following calls must have this flag set.
- CNS_LIST_END
- final call to terminate the list and free resources.
RETURNVALUE¶
This routine returns a pointer to a structure containing the current replica
entry if the operation was successful or NULL if all entries have been
returned or if the operation failed. In the latter case,
serrnois set
appropriately.
EXAMPLES¶
A C program listing the replicas fo a given sfn could look like:
int flags;
dpns_list list;
struct dpns_filereplica *lp;
flags = CNS_LIST_BEGIN;
while ((lp = dpns_listreplica (sfn, NULL, flags, &list)) != NULL) {
flags = CNS_LIST_CONTINUE;
/* process the entry */
.....
}
(void) dpns_listreplica (sfn, NULL, CNS_LIST_END, &list);
ERRORS¶
- ENOENT
- The named file does not exist.
- EACCES
- Search permission is denied on a component of the parent
directory.
- ENOMEM
- Memory could not be allocated for the output buffer.
- EFAULT
- pathandguidare NULL pointers orlistpis
a NULL pointer.
- ENOTDIR
- A component ofpathprefix is not a directory.
- EINVAL
- The length ofguidexceedsCA_MAXGUIDLENor path
and guid are both given and they point at a different file.
- ENAMETOOLONG
- The length
ofpathexceedsCA_MAXPATHNAMELEN.
- SENOSHOST
- Host unknown.
- SENOSSERV
- Service unknown.
- SECOMERR
- Communication error.
- ENSNACT
- Name server is not running or is being shutdown.
SEEALSO¶
Castor_limits(4),
dpns_addreplica(3)