SYNOPSIS
#include <sys/types.h>#include "dpm_api.h"
int dpm_put (int nbreqfiles, struct dpm_putfilereq *reqfiles, int nbprotocols, char **protocols, char *u_token, int overwrite, time_t retrytime, char *r_token, int *nbreplies, struct dpm_putfilestatus **filestatuses)
DESCRIPTION
dpm_put makes a set of existing files available for I/O.The input arguments are:
- nbreqfiles
- specifies the number of files belonging to the request.
- reqfiles
- specifies the array of file requests (dpm_putfilereq structures).
struct dpm_putfilereq { 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; };
- 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 or all file requests have errors.
- SENOSHOST
- Host unknown.
- SEINTERNAL
- Database error.
- SECOMERR
-
Communication error.