Man Linux: Main Page and Category List

NAME

       dpns_registerfiles  -  register  list of files with their corresponding
       replica entry

SYNOPSIS

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

       int dpns_registerfiles (int nbfiles, struct  dpns_filereg  *files,  int
       *nbstatuses, int **statuses)

DESCRIPTION

       dpns_registerfiles  registers  a list of files with their corresponding
       replica entry.  If the lfn is already registered, the guid is  optional
       and  only  the  replica  is  added  (after  checking  that filesize and
       possibly checksum match).  If the lfn is not registered yet,  the  guid
       is mandatory for the LFC.  The lfn and the replica get registered.

       nbfiles
              specifies the number of files in the array files.

       files  is  a pointer to an array of dpns_filereg structures provided by
              the application.

       struct dpns_filereg {
            char      *lfn;
            char      *guid;
            mode_t         mode;
            u_signed64     size;
            char      *csumtype;
            char      *csumvalue;
            char      *server;
            char      *sfn;
       };

       nbstatuses
              will be set to the number of replies in the array of statuses.

       statuses
              will be set to the address  of  an  array  of  integer  statuses
              allocated  by the API. The client application is responsible for
              freeing the array when not needed anymore.  Individual  statuses
              are 0 if the operation was successful or set to the serrno value
              in case of error.

RETURN VALUE

       This routine returns 0 if the operation was successful  or  -1  if  the
       operation failed. In the latter case, serrno is set appropriately.

ERRORS

       ENOENT       A  component of lfn prefix does not exist or lfn is a null
                    pathname.

       E2BIG        Request too large (max 1 MB).

       ENOMEM       Memory could not be allocated for marshalling the  request
                    or unmarshalling the reply.

       EACCES       Search  permission  is  denied  on  a component of the lfn
                    prefix or the file does not exist and write permission  on
                    the  parent directory is denied or write permission on the
                    file itself is denied.

       EFAULT       files, nbstatuses or statuses is a NULL pointer.

       EEXIST       The sfn exists already.

       ENOTDIR      A component of lfn prefix is not a directory.

       EISDIR       The lfn exists already and is not a regular file.

       EINVAL       nbfiles is not strictly positive, the length of one of the
                    guids  exceeds  CA_MAXGUIDLEN  or  the  length  of  server
                    exceeds CA_MAXHOSTNAMELEN.

       ENOSPC       The name server database is full.

       ENAMETOOLONG The length of lfn exceeds CA_MAXPATHLEN or the  length  of
                    an  lfn  component  exceeds CA_MAXNAMELEN or the length of
                    sfn exceeds CA_MAXSFNLEN.

       SENOSSERV    Service unknown.

       SEINTERNAL   Database error.

       SECOMERR     Communication error.

       ENSNACT      Name server is not running or is being shutdown.

SEE ALSO

       Castor_limits(4), dpns_addreplica(3), dpns_creat(3), dpns_setfsize(3)

AUTHOR

       LCG Grid Deployment Team