Man Linux: Main Page and Category List

NAME

       dpm_put - make a set of existing files available for I/O

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.