DPM_COPY
Section: DPM Library Functions (3)
Updated: $Date: 2006/12/20 15:21:57 $
Index
Return to Main Contents
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.