Globus XIO GRIDFTP Client Driver

## 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

## Detailed Description

# Handles

An XIO handle with the gridftp client driver can be created with globus_xio_handle_create()

The GridFTP client driver makes use of globus ftp client library. globus_xio_register_open() call creates a new ftp client handle (unless one is set on the attr passed), establishes connection with the GridFTP server. The contact string must contain the scheme, host name, and the resource, optionally it might contain port and subject also.

When the XIO handle is closed, the GridFTP driver will destroy its internal resources and the ftp client handle (unless this handle was set on an attr).

# Reading/Writing

The globus_xio_register_read() enforce that the waitforbytes parameter should be one. When multiple TCP streams are used between the client and the server, data might not be delivered in order. globus_xio_data_descriptor_cntl() can be used to get the offset of the data.

globus_xio_register_write() does not enforce any restriction on the waitforbytes parameter.

In any case, when an error or EOF occurs before the waitforbytes request has been met, the outgoing nbytes is set to the amount of data actually read/written before the error or EOF occurred.

# Environment Variables

- GLOBUS_XIO_GRIDFTP_DEBUG Available if using a debug build. See globus_debug.h for format.

# Attributes and Cntls

GridFTP driver specific attrs and cntls.

See also
  globus_xio_attr_cntl ()
  globus_xio_handle_cntl ()
  globus_xio_data_descriptor_cntl ()

# Types

The errors reported by the GRIDFTP driver include GLOBUS_XIO_ERROR_EOF, GLOBUS_XIO_ERROR_CANCELED, GLOBUS_XIO_GRIDFTP_ERROR_OUTSTANDING_READ, GLOBUS_XIO_GRIDFTP_ERROR_SEEK, 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

See also
  globus_xio_driver_error_match()
  globus_error_errno_match()

## Typedef Documentation

## globus_l_xio_gridftp_mode_t

typedef enum globus_l_xio_gridftp_mode_e globus_l_xio_gridftp_mode_t

GRIDFTP driver specific types

## Enumeration Type Documentation

## globus_l_xio_gridftp_mode_e

enum globus_l_xio_gridftp_mode_e

GRIDFTP driver specific types

## globus_xio_gridftp_cmd_t

enum globus_xio_gridftp_cmd_t

doxygen varargs filter stuff GRIDFTP driver specific cntls

Enumerator
GLOBUS_XIO_GRIDFTP_SEEK | See usage for: globus_xio_gridftp_handle_cntl
GLOBUS_XIO_GRIDFTP_SET_HANDLE | See usage for: globus_xio_gridftp_attr_cntl
GLOBUS_XIO_GRIDFTP_GET_HANDLE | See usage for: globus_xio_gridftp_attr_cntl
GLOBUS_XIO_GRIDFTP_SET_APPEND | See usage for: globus_xio_gridftp_attr_cntl
GLOBUS_XIO_GRIDFTP_GET_APPEND | See usage for: globus_xio_gridftp_attr_cntl
GLOBUS_XIO_GRIDFTP_SET_ERET | See usage for: globus_xio_gridftp_attr_cntl
GLOBUS_XIO_GRIDFTP_GET_ERET | See usage for: globus_xio_gridftp_attr_cntl
GLOBUS_XIO_GRIDFTP_SET_ESTO | See usage for: globus_xio_gridftp_attr_cntl
GLOBUS_XIO_GRIDFTP_GET_ESTO | See usage for: globus_xio_gridftp_attr_cntl
GLOBUS_XIO_GRIDFTP_SET_PARTIAL_TRANSFER | See usage for: globus_xio_gridftp_attr_cntl
GLOBUS_XIO_GRIDFTP_GET_PARTIAL_TRANSFER | See usage for: globus_xio_gridftp_attr_cntl
GLOBUS_XIO_GRIDFTP_SET_NUM_STREAMS | See usage for: globus_xio_gridftp_attr_cntl
GLOBUS_XIO_GRIDFTP_GET_NUM_STREAMS | See usage for: globus_xio_gridftp_attr_cntl
GLOBUS_XIO_GRIDFTP_SET_TCP_BUFFER | See usage for: globus_xio_gridftp_attr_cntl
GLOBUS_XIO_GRIDFTP_GET_TCP_BUFFER | See usage for: globus_xio_gridftp_attr_cntl
GLOBUS_XIO_GRIDFTP_SET_MODE | See usage for: globus_xio_gridftp_attr_cntl
GLOBUS_XIO_GRIDFTP_GET_MODE | See usage for: globus_xio_gridftp_attr_cntl
GLOBUS_XIO_GRIDFTP_SET_AUTH | See usage for: globus_xio_gridftp_attr_cntl
GLOBUS_XIO_GRIDFTP_GET_AUTH | See usage for: globus_xio_gridftp_attr_cntl
GLOBUS_XIO_GRIDFTP_SET_DCAU | See usage for: globus_xio_gridftp_attr_cntl
GLOBUS_XIO_GRIDFTP_GET_DCAU | See usage for: globus_xio_gridftp_attr_cntl
GLOBUS_XIO_GRIDFTP_SET_DATA_PROTECTION | See usage for: globus_xio_gridftp_attr_cntl
GLOBUS_XIO_GRIDFTP_GET_DATA_PROTECTION | See usage for: globus_xio_gridftp_attr_cntl
GLOBUS_XIO_GRIDFTP_SET_CONTROL_PROTECTION | See usage for: globus_xio_gridftp_attr_cntl
GLOBUS_XIO_GRIDFTP_GET_CONTROL_PROTECTION | See usage for: globus_xio_gridftp_attr_cntl

## globus_xio_gridftp_error_type_t

enum globus_xio_gridftp_error_type_t

GridFTP driver specific error types

Enumerator
GLOBUS_XIO_GRIDFTP_ERROR_ATTR | Indicates that an error occurred in the attribute control
GLOBUS_XIO_GRIDFTP_ERROR_SEEK | Indicates that a seek has been called while there is an outstanding I/O
GLOBUS_XIO_GRIDFTP_ERROR_OUTSTANDING_READ | Indicates that a write has been called while there is an outstanding read
GLOBUS_XIO_GRIDFTP_ERROR_OUTSTANDING_WRITE | Indicates that a read has been called while there is an outstanding write
GLOBUS_XIO_GRIDFTP_ERROR_PENDING_READ | Indicates that a write has been called while there is a read pending
GLOBUS_XIO_GRIDFTP_ERROR_PENDING_WRITE | Indicates that a read has been called while there is a write pending
GLOBUS_XIO_GRIDFTP_ERROR_OUTSTANDING_PARTIAL_XFER | Indicates that a second partial xfer has been initiated while the first one is still outstanding