Man Linux: Main Page and Category List


       dpns_listreplicax    -    list    replica    entries    for   a   given


       #include <sys/types.h>
       #include "dpns_api.h"

       struct dpns_filereplica *dpns_listreplicax (const char *poolname, const
       char *server, const char *fs, int flags, dpns_list *listp)


       dpns_listreplicax     lists     replica    entries    for    a    given
       pool/server/filesystem.  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];

              specifies the disk pool (only meaningful for the DPM).

       server specifies the Storage Element or disk server hostname.

       fs     specifies the file system (only meaningful for the DPM).

       flags  may be one of the following constant:

                     the  first  call  must  have  this  flag  set to allocate
                     buffers 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,
       serrno is set appropriately.


       A  C  program  listing  the files residing on a given server could look

            int flags;
            dpns_list list;
            struct dpns_filereplica *lp;

            flags = CNS_LIST_BEGIN;
            while ((lp = dpns_listreplicax (NULL, server, NULL, flags, &list))) {
                 flags = CNS_LIST_CONTINUE;
                 /* process the entry */
            (void) dpns_listreplicax (NULL, server, NULL, CNS_LIST_END, &list);


       ENOMEM       Memory could not be allocated for the output buffer.

       EFAULT       poolname, server and fs are NULL pointers or  listp  is  a
                    NULL pointer.

       EINVAL       The  length  of  poolname exceeds CA_MAXPOOLNAMELEN or the
                    length of server exceeds CA_MAXHOSTNAMELEN or  the  length
                    of fs exceeds 79.

       SENOSHOST    Host unknown.

       SENOSSERV    Service unknown.

       SECOMERR     Communication error.

       ENSNACT      Name server is not running or is being shutdown.


       Castor_limits(4), dpns_addreplica(3)