DPM_GET
Section: DPM Library Functions (3)
Updated: $Date: 2006/12/20 15:21:57 $
Index
Return to Main Contents
 
NAME
dpm_get - make a set of existing files available for I/O
 
SYNOPSIS
#include <sys/types.h>
#include "dpm_api.h"
int dpm_get (int nbreqfiles,
struct dpm_getfilereq *reqfiles,
int nbprotocols,
char **protocols,
char *u_token,
time_t retrytime,
char *r_token,
int *nbreplies,
struct dpm_getfilestatus **filestatuses)
 
DESCRIPTION
dpm_get
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_getfilereq structures).
struct dpm_getfilereq {
        char            *from_surl;
        time_t  lifetime;
        char            f_type;
        char            s_token[CA_MAXDPMTOKENLEN+1];
        char            ret_policy;
        int             flags;
};
- nbprotocols
- 
specifies the number of protocols.
- protocols
- 
specifies the array of protocols.
- u_token
- 
specifies the user provided description associated with the request.
- 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_getfilestatus structures allocated
by the API. The client application is responsible for freeing the array when not
needed anymore.
struct dpm_getfilestatus {
        char            *from_surl;
        char            *turl;
        u_signed64      filesize;
        int             status;
        char            *errstring;
        time_t  pintime;
};
 
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.