dpm_put3
Make a set of existing files available for i/o
Usage
#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)
Overview
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.
Releases
Unchanged in 5 releases since Debian 6.0 (Squeeze).