Provided by: liblfc-dev_1.8.2-1_amd64 bug

NAME

       lfc_registerfiles - register list of files with their corresponding replica entry

SYNOPSIS

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

       int  lfc_registerfiles  (int  nbfiles,  struct  lfc_filereg  *files,  int *nbstatuses, int
       **statuses)

DESCRIPTION

       lfc_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 lfc_filereg structures provided by the application.

       struct lfc_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 or lfn and
                    guid are both given and they point at a different file.

       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), lfc_addreplica(3), lfc_creatg(3), lfc_setfsize(3)

AUTHOR

       LCG Grid Deployment Team