dpns_listreplica man page

DPNS_LISTREPLICA(3)         DPNS Library Functions         DPNS_LISTREPLICA(3)

      dpns_listreplica - list replica entries for a given file

      [1m#include <sys/types.h>[0m
      [1m#include "dpns_api.h"[0m

      [1mstruct dpns_filereplica *dpns_listreplica (const char *[4m[22mpath[24m[1m, const char[0m
      [1m*[4m[22mguid[24m[1m, int [4m[22mflags[24m[1m, dpns_list *[4m[22mlistp[24m[1m)[0m

      [1mdpns_listreplica [22mlists 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];

      [4mpath[24m   specifies the logical pathname.

      [4mguid[24m   specifies the Grid Unique IDentifier.

      [4mflags[24m  may be one of the following constant:

                    the  first  call must have this flag set to allocate buf-
                    fers and initialize pointers.

                    all the following calls must have this flag set.

                    final call to terminate the list and free resources.

      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, [1mser-[0m
      [1mrno [22mis set appropriately.

      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);

      [1mENOENT       [22mThe named file does not exist.

      [1mEACCES       [22mSearch  permission  is denied on a component of the parent

      [1mENOMEM       [22mMemory could not be allocated for the output buffer.

      [1mEFAULT       [4m[22mpath[24m and [4mguid[24m  are  NULL  pointers  or  [4mlistp[24m  is  a  NULL

      [1mENOTDIR      [22mA component of [4mpath[24m prefix is not a directory.

      [1mEINVAL       [22mThe  length of [4mguid[24m exceeds [1mCA_MAXGUIDLEN [22mor path and guid
                   are both given and they point at a different file.

      [1mENAMETOOLONG [22mThe length of [4mpath[24m exceeds [1mCA_MAXPATHNAMELEN[22m.

      [1mSENOSHOST    [22mHost unknown.

      [1mSENOSSERV    [22mService unknown.

      [1mSECOMERR     [22mCommunication error.

      [1mENSNACT      [22mName server is not running or is being shutdown.

[1mSEE ALSO[0m
      [1mCastor_limits(4)[22m, [1mdpns_addreplica(3)[0m

DPNS         $Date: 2010-09-14 13:37:49 +0200 (Tue, 14 Sep 2D0P1N0S)_L$ISTREPLICA(3)