Provided by: libdpm-dev_1.8.7-3_amd64 bug

NAME

       dpm_copy - copy a set of existing files

SYNOPSIS

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

       int  dpm_copy (int nbreqfiles, struct dpm_copyfilereq *reqfiles, char *u_token, int flags,
       time_t retrytime, char *r_token, int *nbreplies, struct dpm_copyfilestatus **filestatuses)

DESCRIPTION

       dpm_copy copies a set of existing files.

       The input arguments are:

       nbreqfiles
              specifies the number of files belonging to the request.

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

       struct dpm_copyfilereq {
            char      *from_surl;
            char      *to_surl;
            time_t    lifetime;
            char      f_type;
            char      s_token[CA_MAXDPMTOKENLEN+1];
            char      ret_policy;
            char      ac_latency;
            int       flags;
       };

       u_token
              specifies the user provided description associated with the request.

       flags  if set to non zero, 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_copyfilestatus structures allocated
              by the API. The client application is responsible for freeing the  array  when  not
              needed anymore.

       struct dpm_copyfilestatus {
            char      *from_surl;
            char      *to_surl;
            u_signed64     filesize;
            int       status;
            char      *errstring;
            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, r_token, nbreplies or filestatuses is a NULL pointer.

       ENOMEM       Memory could not be allocated for marshalling the request.

       EINVAL       nbreqfiles  is  not  strictly  positive,  the  length  of  the  user  request
                    description is greater than 255 or all file requests have errors.

       SENOSHOST    Host unknown.

       SEINTERNAL   Database error.

       SECOMERR     Communication error.