Grid Community Toolkit  6.2.1705709074 (tag: v6.2.20240202)
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Typedefs | Enumerations | Functions
globus_xio_gridftp_driver.h File Reference

XIO GRIDFTP Client Driver. More...

#include "globus_xio_system.h"
#include "globus_common.h"

Go to the source code of this file.

Typedefs

typedef enum
globus_l_xio_gridftp_mode_e 
globus_l_xio_gridftp_mode_t
 

Enumerations

enum  globus_xio_gridftp_error_type_t {
  GLOBUS_XIO_GRIDFTP_ERROR_ATTR, GLOBUS_XIO_GRIDFTP_ERROR_SEEK, GLOBUS_XIO_GRIDFTP_ERROR_OUTSTANDING_READ, GLOBUS_XIO_GRIDFTP_ERROR_OUTSTANDING_WRITE,
  GLOBUS_XIO_GRIDFTP_ERROR_PENDING_READ, GLOBUS_XIO_GRIDFTP_ERROR_PENDING_WRITE, GLOBUS_XIO_GRIDFTP_ERROR_OUTSTANDING_PARTIAL_XFER
}
 
enum  globus_xio_gridftp_cmd_t {
  GLOBUS_XIO_GRIDFTP_SEEK, GLOBUS_XIO_GRIDFTP_SET_HANDLE, GLOBUS_XIO_GRIDFTP_GET_HANDLE, GLOBUS_XIO_GRIDFTP_SET_APPEND,
  GLOBUS_XIO_GRIDFTP_GET_APPEND, GLOBUS_XIO_GRIDFTP_SET_ERET, GLOBUS_XIO_GRIDFTP_GET_ERET, GLOBUS_XIO_GRIDFTP_SET_ESTO,
  GLOBUS_XIO_GRIDFTP_GET_ESTO, GLOBUS_XIO_GRIDFTP_SET_PARTIAL_TRANSFER, GLOBUS_XIO_GRIDFTP_GET_PARTIAL_TRANSFER, GLOBUS_XIO_GRIDFTP_SET_NUM_STREAMS,
  GLOBUS_XIO_GRIDFTP_GET_NUM_STREAMS, GLOBUS_XIO_GRIDFTP_SET_TCP_BUFFER, GLOBUS_XIO_GRIDFTP_GET_TCP_BUFFER, GLOBUS_XIO_GRIDFTP_SET_MODE,
  GLOBUS_XIO_GRIDFTP_GET_MODE, GLOBUS_XIO_GRIDFTP_SET_AUTH, GLOBUS_XIO_GRIDFTP_GET_AUTH, GLOBUS_XIO_GRIDFTP_SET_DCAU,
  GLOBUS_XIO_GRIDFTP_GET_DCAU, GLOBUS_XIO_GRIDFTP_SET_DATA_PROTECTION, GLOBUS_XIO_GRIDFTP_GET_DATA_PROTECTION, GLOBUS_XIO_GRIDFTP_SET_CONTROL_PROTECTION,
  GLOBUS_XIO_GRIDFTP_GET_CONTROL_PROTECTION
}
 
enum  globus_l_xio_gridftp_mode_e
 

Functions

globus_result_t globus_xio_gridftp_handle_cntl (handle, driver, GLOBUS_XIO_GRIDFTP_SEEK, globus_off_t seek_offset)
 
globus_result_t globus_xio_gridftp_attr_cntl (attr, driver, GLOBUS_XIO_GRIDFTP_SET_HANDLE, globus_ftp_client_handle_t *ftp_handle)
 
globus_result_t globus_xio_gridftp_attr_cntl (attr, driver, GLOBUS_XIO_GRIDFTP_GET_HANDLE, globus_ftp_client_handle_t **ftp_handle_out)
 
globus_result_t globus_xio_gridftp_attr_cntl (attr, driver, GLOBUS_XIO_GRIDFTP_SET_APPEND, globus_bool_t append)
 
globus_result_t globus_xio_gridftp_attr_cntl (attr, driver, GLOBUS_XIO_GRIDFTP_GET_APPEND, globus_bool_t *append_out)
 
globus_result_t globus_xio_gridftp_attr_cntl (attr, driver, GLOBUS_XIO_GRIDFTP_SET_ERET, const char *eret_alg_str)
 
globus_result_t globus_xio_gridftp_attr_cntl (attr, driver, GLOBUS_XIO_GRIDFTP_GET_ERET, char **eret_alg_str_out)
 
globus_result_t globus_xio_gridftp_attr_cntl (attr, driver, GLOBUS_XIO_GRIDFTP_SET_ESTO, const char *esto_alg_str)
 
globus_result_t globus_xio_gridftp_attr_cntl (attr, driver, GLOBUS_XIO_GRIDFTP_GET_ESTO, char **esto_alg_str_out)
 
globus_result_t globus_xio_gridftp_attr_cntl (attr, driver, GLOBUS_XIO_GRIDFTP_SET_PARTIAL_TRANSFER, globus_bool_t partial_xfer)
 
globus_result_t globus_xio_gridftp_attr_cntl (attr, driver, GLOBUS_XIO_GRIDFTP_GET_PARTIAL_TRANSFER, globus_bool_t *partial_xfer_out)
 
globus_result_t globus_xio_gridftp_attr_cntl (attr, driver, GLOBUS_XIO_GRIDFTP_SET_NUM_STREAMS, int num_streams)
 
globus_result_t globus_xio_gridftp_attr_cntl (attr, driver, GLOBUS_XIO_GRIDFTP_GET_NUM_STREAMS, int *num_streams_out)
 
globus_result_t globus_xio_gridftp_attr_cntl (attr, driver, GLOBUS_XIO_GRIDFTP_SET_TCP_BUFFER, int buf_size)
 
globus_result_t globus_xio_gridftp_attr_cntl (attr, driver, GLOBUS_XIO_GRIDFTP_GET_TCP_BUFFER, int *buf_size_out)
 
globus_result_t globus_xio_gridftp_attr_cntl (attr, driver, GLOBUS_XIO_GRIDFTP_SET_MODE, int mode)
 
globus_result_t globus_xio_gridftp_attr_cntl (attr, driver, GLOBUS_XIO_GRIDFTP_GET_MODE, int *mode_out)
 
globus_result_t globus_xio_gridftp_attr_cntl (attr, driver, GLOBUS_XIO_GRIDFTP_SET_AUTH, gss_cred_id_t credential, const char *user, const char *password, const char *account, const char *subject)
 
globus_result_t globus_xio_gridftp_attr_cntl (attr, driver, GLOBUS_XIO_GRIDFTP_GET_AUTH, gss_cred_id_t *credential_out, const char **user_out, const char **password_out, const char **account_out, const char **subject_out)
 
globus_result_t globus_xio_gridftp_attr_cntl (attr, driver, GLOBUS_XIO_GRIDFTP_SET_DCAU, int dcau_mode)
 
globus_result_t globus_xio_gridftp_attr_cntl (attr, driver, GLOBUS_XIO_GRIDFTP_GET_DCAU, int *dcau_mode_out)
 
globus_result_t globus_xio_gridftp_attr_cntl (attr, driver, GLOBUS_XIO_GRIDFTP_SET_DATA_PROTECTION, int protection)
 
globus_result_t globus_xio_gridftp_attr_cntl (attr, driver, GLOBUS_XIO_GRIDFTP_GET_DATA_PROTECTION, int *protection_out)
 
globus_result_t globus_xio_gridftp_attr_cntl (attr, driver, GLOBUS_XIO_GRIDFTP_SET_CONTROL_PROTECTION, int protection)
 
globus_result_t globus_xio_gridftp_attr_cntl (attr, driver, GLOBUS_XIO_GRIDFTP_GET_CONTROL_PROTECTION, int *protection_out)
 

Detailed Description

XIO GRIDFTP Client Driver.

Function Documentation

globus_result_t globus_xio_gridftp_attr_cntl ( attr  ,
driver  ,
GLOBUS_XIO_GRIDFTP_SET_HANDLE  ,
globus_ftp_client_handle_t ftp_handle 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Set the ftp client handle to use.

Do not create a new ftp client handle, use this handle instead.

Parameters
ftp_handleSpecifies the pointer to globus ftp client handle. Note: this handle will not be destroyed.
globus_result_t globus_xio_gridftp_attr_cntl ( attr  ,
driver  ,
GLOBUS_XIO_GRIDFTP_GET_HANDLE  ,
globus_ftp_client_handle_t **  ftp_handle_out 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Get the ftp client handle on the attr.

Parameters
ftp_handle_outThe ftp client handle pointer will be stored here. If none is set, NULL will be set.
globus_result_t globus_xio_gridftp_attr_cntl ( attr  ,
driver  ,
GLOBUS_XIO_GRIDFTP_SET_APPEND  ,
globus_bool_t  append 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Enable or disable opening the file in append mode.

Parameters
appendGLOBUS_TRUE to enable, GLOBUS_FALSE to disable (default).
globus_result_t globus_xio_gridftp_attr_cntl ( attr  ,
driver  ,
GLOBUS_XIO_GRIDFTP_GET_APPEND  ,
globus_bool_t append_out 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Get the append flag on the attr.

Parameters
append_outThe append flag will be stored here.
globus_result_t globus_xio_gridftp_attr_cntl ( attr  ,
driver  ,
GLOBUS_XIO_GRIDFTP_SET_ERET  ,
const char *  eret_alg_str 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Set the ERET algorithm string. This string contains information needed to invoke a server-specific data reduction algorithm on the file being retrieved.

Parameters
eret_alg_strSpecifies the ERET algorithm string.
globus_result_t globus_xio_gridftp_attr_cntl ( attr  ,
driver  ,
GLOBUS_XIO_GRIDFTP_GET_ERET  ,
char **  eret_alg_str_out 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Get the ERET algorithm string.

Parameters
eret_alg_str_outThe ERET algorithm string will be stored here. It is the responsibility of the user to free the memory allocated for this string.
globus_result_t globus_xio_gridftp_attr_cntl ( attr  ,
driver  ,
GLOBUS_XIO_GRIDFTP_SET_ESTO  ,
const char *  esto_alg_str 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Set the ESTO algorithm string. This string contains information needed to invoke a server-specific data reduction algorithm on the file being stored.

Parameters
esto_alg_strSpecifies the ESTO algorithm string.
globus_result_t globus_xio_gridftp_attr_cntl ( attr  ,
driver  ,
GLOBUS_XIO_GRIDFTP_GET_ESTO  ,
char **  esto_alg_str_out 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Get the ESTO algorithm string.

Parameters
esto_alg_str_outThe ESTO algorithm string will be stored here. It is the responsibility of the user to free the memory allocated for this string.
globus_result_t globus_xio_gridftp_attr_cntl ( attr  ,
driver  ,
GLOBUS_XIO_GRIDFTP_SET_PARTIAL_TRANSFER  ,
globus_bool_t  partial_xfer 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Enable or disable partial transfer (associate a transfer with each read/write) on the GridFTP handle.

Parameters
partial_xferGLOBUS_TRUE to enable, GLOBUS_FALSE to disable (default).
globus_result_t globus_xio_gridftp_attr_cntl ( attr  ,
driver  ,
GLOBUS_XIO_GRIDFTP_GET_PARTIAL_TRANSFER  ,
globus_bool_t partial_xfer_out 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Get the partial transfer flag on the attr.

Parameters
partial_xfer_outThe partial xfer flag will be stored here.
globus_result_t globus_xio_gridftp_attr_cntl ( attr  ,
driver  ,
GLOBUS_XIO_GRIDFTP_SET_NUM_STREAMS  ,
int  num_streams 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Set the number of TCP streams to be used between the client and the server.

Parameters
num_streamsSpecifies the number of streams to use.
globus_result_t globus_xio_gridftp_attr_cntl ( attr  ,
driver  ,
GLOBUS_XIO_GRIDFTP_GET_NUM_STREAMS  ,
int *  num_streams_out 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Get the number of TCP streams on the attr.

Parameters
num_streams_outThe stream count will be stored here.
globus_result_t globus_xio_gridftp_attr_cntl ( attr  ,
driver  ,
GLOBUS_XIO_GRIDFTP_SET_TCP_BUFFER  ,
int  buf_size 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Set the TCP socket send/recv buffer size.

Parameters
buf_sizeThe send/recv buffer size in bytes to use. (default is system specific)
globus_result_t globus_xio_gridftp_attr_cntl ( attr  ,
driver  ,
GLOBUS_XIO_GRIDFTP_GET_TCP_BUFFER  ,
int *  buf_size_out 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Get the TCP socket send/recv buffer size on the attr.

Parameters
buf_size_outThe send/recv buffer size will be stored here.
globus_result_t globus_xio_gridftp_attr_cntl ( attr  ,
driver  ,
GLOBUS_XIO_GRIDFTP_SET_MODE  ,
int  mode 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Set the transmission mode used for data transfer

Parameters
modeSpecifies the data transmission mode. (default is stream mode)
See Also
globus_l_xio_gridftp_mode_t
globus_result_t globus_xio_gridftp_attr_cntl ( attr  ,
driver  ,
GLOBUS_XIO_GRIDFTP_GET_MODE  ,
int *  mode_out 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Get the data transmission mode on the attr.

Parameters
mode_outThe data transmission mode will be stored here.
See Also
globus_l_xio_gridftp_mode_t
globus_result_t globus_xio_gridftp_attr_cntl ( attr  ,
driver  ,
GLOBUS_XIO_GRIDFTP_SET_AUTH  ,
gss_cred_id_t  credential,
const char *  user,
const char *  password,
const char *  account,
const char *  subject 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Set the authentication information used to authenticate with the GridFTP server

Parameters
credentialThe credential to use for authenticating with a GridFTP server. This may be GSS_C_NO_CREDENTIAL to use the default credential.
userThe user name to send to the GridFTP server. When doing a GSI transfer, this may be set to NULL, and the default gridmap entry for the user's GSI identity will be used
passwordThe password to send to the GridFTP server. When doing a GSI transfer, this may be set to NULL.
accountThe account to use for the data transfer.
subjectThe subject name of the GridFTP server. This is only used when doing a GSI transfer, and then only when the security subject name does not match the hostname of the server (ie, when the server is being run by a user).
globus_result_t globus_xio_gridftp_attr_cntl ( attr  ,
driver  ,
GLOBUS_XIO_GRIDFTP_GET_AUTH  ,
gss_cred_id_t *  credential_out,
const char **  user_out,
const char **  password_out,
const char **  account_out,
const char **  subject_out 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Get the authentication information on the attr.

Parameters
credential_outThe credential will be stored here.
user_outThe user name will be stored here.
password_outThe password will be stored here.
account_outThe account information will be stored here.
subject_outThe subject name will be stored here.
globus_result_t globus_xio_gridftp_attr_cntl ( attr  ,
driver  ,
GLOBUS_XIO_GRIDFTP_SET_DCAU  ,
int  dcau_mode 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Set the mode of authentication to be performed on GridFTP data channels.

Parameters
dcau_modeSpecifies the authentication mode.
See Also
globus_l_xio_gridftp_dcau_mode_t
globus_result_t globus_xio_gridftp_attr_cntl ( attr  ,
driver  ,
GLOBUS_XIO_GRIDFTP_GET_DCAU  ,
int *  dcau_mode_out 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Get the data channel authentication mode on the attr.

Parameters
dcau_mode_outThe data channel authentication mode will be stored here.
See Also
globus_l_xio_gridftp_dcau_mode_t
globus_result_t globus_xio_gridftp_attr_cntl ( attr  ,
driver  ,
GLOBUS_XIO_GRIDFTP_SET_DATA_PROTECTION  ,
int  protection 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Set protection level on the data channel.

Parameters
protectionSpecifies the protection level.
See Also
globus_l_xio_gridftp_protection_t
globus_result_t globus_xio_gridftp_attr_cntl ( attr  ,
driver  ,
GLOBUS_XIO_GRIDFTP_GET_DATA_PROTECTION  ,
int *  protection_out 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Get the data channel protection level on the attr.

Parameters
protection_outThe data channel protection level will be stored here.
See Also
globus_l_xio_gridftp_dcau_mode_t
globus_result_t globus_xio_gridftp_attr_cntl ( attr  ,
driver  ,
GLOBUS_XIO_GRIDFTP_SET_CONTROL_PROTECTION  ,
int  protection 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Set protection level on the control channel.

Parameters
protectionSpecifies the protection level.
See Also
globus_l_xio_gridftp_protection_t
globus_result_t globus_xio_gridftp_attr_cntl ( attr  ,
driver  ,
GLOBUS_XIO_GRIDFTP_GET_CONTROL_PROTECTION  ,
int *  protection_out 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Get the control channel protection level on the attr.

Parameters
protection_outThe control channel protection level will be stored here.
See Also
globus_l_xio_gridftp_protection_t
globus_result_t globus_xio_gridftp_handle_cntl ( handle  ,
driver  ,
GLOBUS_XIO_GRIDFTP_SEEK  ,
globus_off_t  seek_offset 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Reposition the offset of the file being read/written.

Parameters
seek_offsetSpecifies the desired offset.