Provided by: libdpm-dev_1.10.0-2_amd64 bug

NAME

       dpm_putx - make a set of existing files available for I/O

SYNOPSIS

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

       int  dpm_putx  (int nbreqfiles, struct dpm_putfilereqx *reqfiles, int nbprotocols, char **protocols, char
       *u_token, int overwrite, time_t  retrytime,  char  *r_token,  int  *nbreplies,  struct  dpm_putfilestatus
       **filestatuses)

DESCRIPTION

       dpm_putx  makes  a set of existing files available for I/O. Compared to dpm_put there is control over the
       destination within the DPM available.

       The input arguments are:

       nbreqfiles
              specifies the number of files belonging to the request.

       reqfiles
              specifies the array of file requests (dpm_putfilereqx structures).

       struct dpm_putfilereqx {
            char      *to_surl;
            time_t    lifetime;
            time_t    f_lifetime;
            char      f_type;
            char      s_token[CA_MAXDPMTOKENLEN+1];
            char      ret_policy;
            char      ac_latency;
            u_signed64     requested_size;
            int       reserved; /* must be zero */
            char      server[CA_MAXHOSTNAMELEN+1];
            char      pfnhint[CA_MAXSFNLEN+1];
       };

       nbprotocols
              specifies the number of protocols.

       protocols
              specifies the array of protocols.

       u_token
              specifies the user provided description associated with the request.

       overwrite
              if set to 1, it allows to overwrite an existing file.

       retrytime
              This field is currently ignored.

       The output arguments are:

       r_token
              Address of a buffer to  receive  the  system  allocated  token.   The  buffer  must  be  at  least
              CA_MAXDPMTOKENLEN+1 characters long.

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

       filestatuses
              will  be  set to the address of an array of dpm_putfilestatus structures allocated by the API. The
              client application is responsible for freeing the array when not needed anymore.

       struct dpm_putfilestatus {
            char      *to_surl;
            char      *turl;
            u_signed64     filesize;
            int       status;
            char      *errstring;
            time_t    pintime;
            time_t    f_lifetime;
       };

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

       EFAULT       reqfiles, protocols, r_token, nbreplies or filestatuses is a NULL pointer.

       ENOMEM       Memory could not be allocated for marshalling the request.

       EINVAL       nbreqfiles  or  nbprotocols  is  not strictly positive, the protocols are not supported, the
                    length of the user request description is greater than 255, reserved is not zero or all file
                    requests have errors.

       SENOSHOST    Host unknown.

       SEINTERNAL   Database error.

       SECOMERR     Communication error.