.TH "Globus XIO API" 3 "Sun Nov 9 2014" "Version 4.15" "globus_xio" \" -*- nroff -*- .ad l .nh .SH NAME Globus XIO API \- .SS "Typedefs" .in +1c .ti -1c .RI "typedef void(* \fBglobus_xio_accept_callback_t\fP )(globus_xio_server_t server, globus_xio_handle_t handle, globus_result_t result, void *user_arg)" .br .ti -1c .RI "typedef void(* \fBglobus_xio_server_callback_t\fP )(globus_xio_server_t server, void *user_arg)" .br .ti -1c .RI "typedef globus_bool_t(* \fBglobus_xio_timeout_callback_t\fP )(globus_xio_handle_t handle, \fBglobus_xio_operation_type_t\fP type, void *user_arg)" .br .ti -1c .RI "typedef void(* \fBglobus_xio_callback_t\fP )(globus_xio_handle_t handle, globus_result_t result, void *user_arg)" .br .ti -1c .RI "typedef void(* \fBglobus_xio_data_callback_t\fP )(globus_xio_handle_t handle, globus_result_t result, globus_byte_t *buffer, globus_size_t len, globus_size_t nbytes, globus_xio_data_descriptor_t data_desc, void *user_arg)" .br .ti -1c .RI "typedef void(* \fBglobus_xio_iovec_callback_t\fP )(globus_xio_handle_t handle, globus_result_t result, globus_xio_iovec_t *iovec, int count, globus_size_t nbytes, globus_xio_data_descriptor_t data_desc, void *user_arg)" .br .ti -1c .RI "typedef enum \fBglobus_i_xio_op_type_e\fP \fBglobus_xio_operation_type_t\fP" .br .in -1c .SS "Enumerations" .in +1c .ti -1c .RI "enum \fBglobus_i_xio_op_type_e\fP " .br .ti -1c .RI "enum \fBglobus_xio_handle_cmd_t\fP { \fBGLOBUS_XIO_GET_LOCAL_CONTACT\fP = 12345, \fBGLOBUS_XIO_GET_LOCAL_NUMERIC_CONTACT\fP, \fBGLOBUS_XIO_GET_REMOTE_CONTACT\fP, \fBGLOBUS_XIO_GET_REMOTE_NUMERIC_CONTACT\fP, \fBGLOBUS_XIO_SEEK\fP, \fBGLOBUS_XIO_SET_STRING_OPTIONS\fP }" .br .in -1c .SS "Functions" .in +1c .ti -1c .RI "globus_result_t \fBglobus_xio_attr_init\fP (globus_xio_attr_t *attr)" .br .ti -1c .RI "globus_result_t \fBglobus_xio_attr_cntl\fP (globus_xio_attr_t attr, globus_xio_driver_t driver, int cmd,\&.\&.\&.)" .br .ti -1c .RI "globus_result_t \fBglobus_xio_attr_copy\fP (globus_xio_attr_t *dst, globus_xio_attr_t src)" .br .ti -1c .RI "globus_result_t \fBglobus_xio_attr_destroy\fP (globus_xio_attr_t attr)" .br .ti -1c .RI "globus_result_t \fBglobus_xio_stack_init\fP (globus_xio_stack_t *stack, globus_xio_attr_t stack_attr)" .br .ti -1c .RI "globus_result_t \fBglobus_xio_stack_push_driver\fP (globus_xio_stack_t stack, globus_xio_driver_t driver)" .br .ti -1c .RI "globus_result_t \fBglobus_xio_stack_copy\fP (globus_xio_stack_t *dst, globus_xio_stack_t src)" .br .ti -1c .RI "globus_result_t \fBglobus_xio_stack_destroy\fP (globus_xio_stack_t stack)" .br .ti -1c .RI "globus_result_t \fBglobus_xio_server_create\fP (globus_xio_server_t *server, globus_xio_attr_t server_attr, globus_xio_stack_t stack)" .br .ti -1c .RI "globus_result_t \fBglobus_xio_server_get_contact_string\fP (globus_xio_server_t server, char **contact_string)" .br .ti -1c .RI "globus_result_t \fBglobus_xio_server_register_close\fP (globus_xio_server_t server, \fBglobus_xio_server_callback_t\fP cb, void *user_arg)" .br .ti -1c .RI "globus_result_t \fBglobus_xio_server_close\fP (globus_xio_server_t server)" .br .ti -1c .RI "globus_result_t \fBglobus_xio_server_cntl\fP (globus_xio_server_t server, globus_xio_driver_t driver, int cmd,\&.\&.\&.)" .br .ti -1c .RI "globus_result_t \fBglobus_xio_server_accept\fP (globus_xio_handle_t *out_handle, globus_xio_server_t server)" .br .ti -1c .RI "globus_result_t \fBglobus_xio_server_register_accept\fP (globus_xio_server_t server, \fBglobus_xio_accept_callback_t\fP cb, void *user_arg)" .br .ti -1c .RI "globus_result_t \fBglobus_xio_handle_create\fP (globus_xio_handle_t *handle, globus_xio_stack_t stack)" .br .ti -1c .RI "globus_result_t \fBglobus_xio_data_descriptor_init\fP (globus_xio_data_descriptor_t *data_desc, globus_xio_handle_t handle)" .br .ti -1c .RI "globus_result_t \fBglobus_xio_data_descriptor_destroy\fP (globus_xio_data_descriptor_t data_desc)" .br .ti -1c .RI "globus_result_t \fBglobus_xio_data_descriptor_cntl\fP (globus_xio_data_descriptor_t data_desc, globus_xio_driver_t driver, int cmd,\&.\&.\&.)" .br .ti -1c .RI "globus_result_t \fBglobus_xio_handle_cntl\fP (globus_xio_handle_t handle, globus_xio_driver_t driver, int cmd,\&.\&.\&.)" .br .ti -1c .RI "globus_result_t \fBglobus_xio_register_open\fP (globus_xio_handle_t handle, const char *contact_string, globus_xio_attr_t attr, \fBglobus_xio_callback_t\fP cb, void *user_arg)" .br .ti -1c .RI "globus_result_t \fBglobus_xio_open\fP (globus_xio_handle_t handle, const char *contact_string, globus_xio_attr_t attr)" .br .ti -1c .RI "globus_result_t \fBglobus_xio_register_read\fP (globus_xio_handle_t handle, globus_byte_t *buffer, globus_size_t buffer_length, globus_size_t waitforbytes, globus_xio_data_descriptor_t data_desc, \fBglobus_xio_data_callback_t\fP cb, void *user_arg)" .br .ti -1c .RI "globus_result_t \fBglobus_xio_read\fP (globus_xio_handle_t handle, globus_byte_t *buffer, globus_size_t buffer_length, globus_size_t waitforbytes, globus_size_t *nbytes, globus_xio_data_descriptor_t data_desc)" .br .ti -1c .RI "globus_result_t \fBglobus_xio_register_readv\fP (globus_xio_handle_t handle, globus_xio_iovec_t *iovec, int iovec_count, globus_size_t waitforbytes, globus_xio_data_descriptor_t data_desc, \fBglobus_xio_iovec_callback_t\fP cb, void *user_arg)" .br .ti -1c .RI "globus_result_t \fBglobus_xio_readv\fP (globus_xio_handle_t handle, globus_xio_iovec_t *iovec, int iovec_count, globus_size_t waitforbytes, globus_size_t *nbytes, globus_xio_data_descriptor_t data_desc)" .br .ti -1c .RI "globus_result_t \fBglobus_xio_register_write\fP (globus_xio_handle_t handle, globus_byte_t *buffer, globus_size_t buffer_length, globus_size_t waitforbytes, globus_xio_data_descriptor_t data_desc, \fBglobus_xio_data_callback_t\fP cb, void *user_arg)" .br .ti -1c .RI "globus_result_t \fBglobus_xio_write\fP (globus_xio_handle_t handle, globus_byte_t *buffer, globus_size_t buffer_length, globus_size_t waitforbytes, globus_size_t *nbytes, globus_xio_data_descriptor_t data_desc)" .br .ti -1c .RI "globus_result_t \fBglobus_xio_register_writev\fP (globus_xio_handle_t handle, globus_xio_iovec_t *iovec, int iovec_count, globus_size_t waitforbytes, globus_xio_data_descriptor_t data_desc, \fBglobus_xio_iovec_callback_t\fP cb, void *user_arg)" .br .ti -1c .RI "globus_result_t \fBglobus_xio_writev\fP (globus_xio_handle_t handle, globus_xio_iovec_t *iovec, int iovec_count, globus_size_t waitforbytes, globus_size_t *nbytes, globus_xio_data_descriptor_t data_desc)" .br .ti -1c .RI "globus_result_t \fBglobus_xio_register_close\fP (globus_xio_handle_t handle, globus_xio_attr_t attr, \fBglobus_xio_callback_t\fP cb, void *user_arg)" .br .ti -1c .RI "globus_result_t \fBglobus_xio_close\fP (globus_xio_handle_t handle, globus_xio_attr_t attr)" .br .ti -1c .RI "globus_result_t \fBglobus_xio_handle_create_from_url\fP (globus_xio_handle_t *out_h, const char *scheme, globus_xio_attr_t attr, char *param_string)" .br .ti -1c .RI "globus_result_t \fBglobus_xio_handle_cntl\fP (handle, driver, \fBGLOBUS_XIO_GET_LOCAL_CONTACT\fP, char **contact_string_out)" .br .ti -1c .RI "globus_result_t \fBglobus_xio_handle_cntl\fP (handle, driver, \fBGLOBUS_XIO_GET_LOCAL_NUMERIC_CONTACT\fP, char **contact_string_out)" .br .ti -1c .RI "globus_result_t \fBglobus_xio_handle_cntl\fP (handle, driver, \fBGLOBUS_XIO_GET_REMOTE_CONTACT\fP, char **contact_string_out)" .br .ti -1c .RI "globus_result_t \fBglobus_xio_handle_cntl\fP (handle, driver, \fBGLOBUS_XIO_GET_REMOTE_NUMERIC_CONTACT\fP, char **contact_string_out)" .br .ti -1c .RI "globus_result_t \fBglobus_xio_handle_cntl\fP (handle, driver, \fBGLOBUS_XIO_SEEK\fP, globus_off_t offset)" .br .ti -1c .RI "globus_result_t \fBglobus_xio_handle_cntl\fP (handle, driver, \fBGLOBUS_XIO_SET_STRING_OPTIONS\fP, char *config_string)" .br .in -1c .SH "Detailed Description" .PP .SH "Typedef Documentation" .PP .SS "typedef void(* globus_xio_accept_callback_t)(globus_xio_server_t server, globus_xio_handle_t handle, globus_result_t result, void *user_arg)" Callback signature for accept\&. .PP When a registered accept operation completes the users function of this signature is called\&. .PP \fBParameters:\fP .RS 4 \fIserver\fP The server object on which the accept was registered\&. .br \fIhandle\fP The newly created handle that was created by the accept operation\&. .br \fIresult\fP A result code indicating the success of the accept operation\&. GLOBUS_SUCCESS indicates a successful accept\&. .br \fIuser_arg\fP A user argument that is threaded from the registration to the callback\&. .RE .PP .SS "typedef void(* globus_xio_callback_t)(globus_xio_handle_t handle, globus_result_t result, void *user_arg)" globus_xio_callback_t .PP This callback is used for the open and close asynchronous operations\&. .SS "typedef void(* globus_xio_data_callback_t)(globus_xio_handle_t handle, globus_result_t result, globus_byte_t *buffer, globus_size_t len, globus_size_t nbytes, globus_xio_data_descriptor_t data_desc, void *user_arg)" globus_xio_data_callback_t .PP This callback is used for asynchronous operations that send or receive data\&. .PP On EOF, result_t will be of type GLOBUS_XIO_ERROR_EOF .SS "typedef void(* globus_xio_iovec_callback_t)(globus_xio_handle_t handle, globus_result_t result, globus_xio_iovec_t *iovec, int count, globus_size_t nbytes, globus_xio_data_descriptor_t data_desc, void *user_arg)" globus_xio_iovec_callback_t .PP This callback is used for asynchronous operations that send or receive data with an iovec structure\&. .PP On EOF, result_t will be of type GLOBUS_XIO_ERROR_EOF .SS "typedef enum \fBglobus_i_xio_op_type_e\fP \fBglobus_xio_operation_type_t\fP" Operation types .PP An enumeration of operation types\&. Used in the timeout callback to indicate what operation typed timedout\&. .SS "typedef void(* globus_xio_server_callback_t)(globus_xio_server_t server, void *user_arg)" Server callback signature\&. .PP This is the generic server callback signature\&. It is currently only used for the register close operation\&. .SS "typedef globus_bool_t(* globus_xio_timeout_callback_t)(globus_xio_handle_t handle, \fBglobus_xio_operation_type_t\fP type, void *user_arg)" The timeout callback function signature\&. .PP \fBParameters:\fP .RS 4 \fIhandle\fP The handle the handle on which the timeout operation was requested\&. .br \fItype\fP The type of operation that timed out: GLOBUS_XIO_OPERATION_OPEN GLOBUS_XIO_OPERATION_CLOSE GLOBUS_XIO_OPERATION_READ GLOBUS_XIO_OPERATION_WRITE .br \fIarg\fP A user arg threaded through to the callback\&. .RE .PP .SH "Enumeration Type Documentation" .PP .SS "enum \fBglobus_i_xio_op_type_e\fP" Operation types .PP An enumeration of operation types\&. Used in the timeout callback to indicate what operation typed timedout\&. .SS "enum \fBglobus_xio_handle_cmd_t\fP" doxygen varargs filter stuff Common driver handle cntls\&. .PP \fBEnumerator\fP .in +1c .TP \fB\fIGLOBUS_XIO_GET_LOCAL_CONTACT \fP\fP See usage for: \fBglobus_xio_handle_cntl \fP .TP \fB\fIGLOBUS_XIO_GET_LOCAL_NUMERIC_CONTACT \fP\fP See usage for: \fBglobus_xio_handle_cntl \fP .TP \fB\fIGLOBUS_XIO_GET_REMOTE_CONTACT \fP\fP See usage for: \fBglobus_xio_handle_cntl \fP .TP \fB\fIGLOBUS_XIO_GET_REMOTE_NUMERIC_CONTACT \fP\fP See usage for: \fBglobus_xio_handle_cntl \fP .TP \fB\fIGLOBUS_XIO_SEEK \fP\fP See usage for: \fBglobus_xio_handle_cntl \fP .TP \fB\fIGLOBUS_XIO_SET_STRING_OPTIONS \fP\fP See usage for: \fBglobus_xio_handle_cntl \fP .SH "Function Documentation" .PP .SS "globus_result_t globus_xio_attr_cntl (globus_xio_attr_tattr, globus_xio_driver_tdriver, intcmd, \&.\&.\&.)" Manipulate the values associated in the attr\&. .PP This function provides a means to access the attr structure\&. What exactly this function does is determined by the value in the parameter cmd and the value of the parameter driver\&. When the driver parameter is NULL it indicates that this function applies to general Globus XIO values\&. If it is not NULL it indicates that the function will effect driver specific values\&. Each driver is responsible for defining its own enumeration of values for cmd and the var args associated with that command\&. .PP \fBParameters:\fP .RS 4 \fIattr\fP the attribute structure to be manipulated\&. .br \fIdriver\fP This parameter indicates which driver the user would like to perform the requested operation\&. If this parameter is NULL this request will be scoped to general attribute functions\&. .br \fIcmd\fP an enum that determines what specific operation the user is requesting\&. Each driver will determine the value for this enumeration\&. .RE .PP .SS "globus_result_t globus_xio_attr_copy (globus_xio_attr_t *dst, globus_xio_attr_tsrc)" Copy an attribute structure\&. .SS "globus_result_t globus_xio_attr_destroy (globus_xio_attr_tattr)" Clean up resources associated with an attribute\&. .PP \fBParameters:\fP .RS 4 \fIattr\fP Upon completion of this function all resources associated with this structure will returned to the system and the attr will no longer be valid\&. .RE .PP .SS "globus_result_t globus_xio_attr_init (globus_xio_attr_t *attr)" Initialize a Globus XIO attribute\&. .PP \fBParameters:\fP .RS 4 \fIattr\fP upon return from this function this out parameter will be initialized\&. Once the user is finished with the attribute they should make sure they destroy it in order to free resources associated with it\&. .RE .PP .SS "globus_result_t globus_xio_close (globus_xio_handle_thandle, globus_xio_attr_tattr)" Blocking close .SS "globus_result_t globus_xio_data_descriptor_cntl (globus_xio_data_descriptor_tdata_desc, globus_xio_driver_tdriver, intcmd, \&.\&.\&.)" Touch driver specific data in data descriptors .PP This function allows the user to communicate directly with a driver in association with a data descriptors\&. The driver defines what operations can be preformed\&. .SS "globus_result_t globus_xio_data_descriptor_destroy (globus_xio_data_descriptor_tdata_desc)" clean up a data descriptor\&. .SS "globus_result_t globus_xio_data_descriptor_init (globus_xio_data_descriptor_t *data_desc, globus_xio_handle_thandle)" Initialize a data descriptor .PP \fBParameters:\fP .RS 4 \fIdata_desc\fP An out parameter\&. The data descriptor to be initialized\&. .br \fIhandle\fP The handle this data descriptor will be used with\&. This parameter is require in order to optimize the code handling the data descriptors use\&. .RE .PP .SS "globus_result_t globus_xio_handle_cntl (handle, driver, \fBGLOBUS_XIO_GET_LOCAL_CONTACT\fP, char **contact_string_out)" This is an overloaded member function, provided for convenience\&. It differs from the above function only in what argument(s) it accepts\&. Get local connection info\&. .PP .PP .nf @param contact_string_out A pointer to a contact string for the local end of a connected handle. Where possible, it will be in symbolic form (FQDN). The user must free the returned string. @see globus_xio_server_get_contact_string().fi .PP .SS "globus_result_t globus_xio_handle_cntl (handle, driver, \fBGLOBUS_XIO_GET_LOCAL_NUMERIC_CONTACT\fP, char **contact_string_out)" This is an overloaded member function, provided for convenience\&. It differs from the above function only in what argument(s) it accepts\&. Get local connection info\&. .PP .PP .nf @param contact_string_out A pointer to a contact string for the local end of a connected handle. Where possible, it will be in numeric form. (IP) The user must free the returned string..fi .PP .SS "globus_result_t globus_xio_handle_cntl (handle, driver, \fBGLOBUS_XIO_GET_REMOTE_CONTACT\fP, char **contact_string_out)" This is an overloaded member function, provided for convenience\&. It differs from the above function only in what argument(s) it accepts\&. Get remote connection info\&. .PP .PP .nf @param contact_string_out A pointer to a contact string for the remote end of a connected handle. Where possible, it will be in symbolic form (FQDN). The user must free the returned string..fi .PP .SS "globus_result_t globus_xio_handle_cntl (handle, driver, \fBGLOBUS_XIO_GET_REMOTE_NUMERIC_CONTACT\fP, char **contact_string_out)" This is an overloaded member function, provided for convenience\&. It differs from the above function only in what argument(s) it accepts\&. Get remote connection info\&. .PP .PP .nf @param contact_string_out A pointer to a contact string for the remote end of a connected handle. Where possible, it will be in numeric form. (IP) The user must free the returned string..fi .PP .SS "globus_result_t globus_xio_handle_cntl (handle, driver, \fBGLOBUS_XIO_SEEK\fP, globus_off_toffset)" This is an overloaded member function, provided for convenience\&. It differs from the above function only in what argument(s) it accepts\&. Reposition read/write offset\&. .PP \fBParameters:\fP .RS 4 \fIoffset\fP Specify the desired offset\&. .RE .PP .SS "globus_result_t globus_xio_handle_cntl (handle, driver, \fBGLOBUS_XIO_SET_STRING_OPTIONS\fP, char *config_string)" This is an overloaded member function, provided for convenience\&. It differs from the above function only in what argument(s) it accepts\&. Set the driver specific configuration string\&. The format of the string is defined by the driver\&. It is typically a set of key=value pairs .PP \fBParameters:\fP .RS 4 \fIconfig_string\fP The driver specific parameter string\&. .RE .PP .SS "globus_result_t globus_xio_handle_cntl (globus_xio_handle_thandle, globus_xio_driver_tdriver, intcmd, \&.\&.\&.)" Touch driver specific information in a handle object\&. .PP This function allows the user to communicate directly with a driver in association with a handle object\&. The driver defines what operations can be preformed\&. .PP pass the driver to control a specific driver pass NULL for driver for XIO specific cntls pass GLOBUS_XIO_QUERY for driver to try each driver in order until success .SS "globus_result_t globus_xio_handle_create (globus_xio_handle_t *handle, globus_xio_stack_tstack)" Initialize a handle for client opens .PP This function will initialize a handle for active opens (client side connections)\&. .SS "globus_result_t globus_xio_handle_create_from_url (globus_xio_handle_t *out_h, const char *scheme, globus_xio_attr_tattr, char *param_string)" Initializes a handle based on the scheme given\&. .PP \fBParameters:\fP .RS 4 \fIout_h\fP An uninitialized handle that will be initialized in the function to correspond to the scheme given\&. This handle should be used for any I/O operations\&. .br \fIscheme\fP A string containing the protocol which the handle should be initialized to\&. The string can either be a protocol by itself, for example, 'http', or a complete scheme such as 'http://www\&.example\&.com'\&. .br \fIattr\fP Attribute to be used for setting parameter string\&. It is initialized by the function\&. Can be NULL if attributes are not being used\&. .br \fIparam_string\fP A string containing attributes to be set for the drivers associated with the scheme\&. This should be in the form 'protocol1:option1=value1;option2=value2,protocol2:option1=value1; option2=value2' Can be NULL if attributes are not being used\&. .RE .PP .SS "globus_result_t globus_xio_open (globus_xio_handle_thandle, const char *contact_string, globus_xio_attr_tattr)" blocking open .SS "globus_result_t globus_xio_read (globus_xio_handle_thandle, globus_byte_t *buffer, globus_size_tbuffer_length, globus_size_twaitforbytes, globus_size_t *nbytes, globus_xio_data_descriptor_tdata_desc)" Read data from a handle .SS "globus_result_t globus_xio_readv (globus_xio_handle_thandle, globus_xio_iovec_t *iovec, intiovec_count, globus_size_twaitforbytes, globus_size_t *nbytes, globus_xio_data_descriptor_tdata_desc)" Read data from a handle into a globus_xio_iovec_t (struct iovec) .SS "globus_result_t globus_xio_register_close (globus_xio_handle_thandle, globus_xio_attr_tattr, \fBglobus_xio_callback_t\fPcb, void *user_arg)" Close a handle .PP This functions servers as a destroy for the handle\&. As soon as the operations completes (the callback is called)\&. The handle is destroyed\&. .PP \fBParameters:\fP .RS 4 \fIhandle\fP the handle to be closed\&. .br \fIattr\fP how to close attribute .br \fIcb\fP The function to be called when the close operation completes\&. .br \fIuser_arg\fP A user pointer that will be threaded through to the callback\&. .RE .PP .SS "globus_result_t globus_xio_register_open (globus_xio_handle_thandle, const char *contact_string, globus_xio_attr_tattr, \fBglobus_xio_callback_t\fPcb, void *user_arg)" Open a handle .PP Creates an open handle based on the state contained in the given stack\&. .PP No operation can be preformed on a handle until it is initialized and then opened\&. If an already open handle used the information contained in that handle will be destroyed\&. .PP \fBParameters:\fP .RS 4 \fIhandle\fP The handle created with \fBglobus_xio_handle_create()\fP or \fBglobus_xio_server_register_accept()\fP that is to be opened\&. .br \fIattr\fP how to open attribute\&. can be NULL .br \fIcb\fP The function to be called when the open operation completes\&. .br \fIuser_arg\fP A user pointer that will be threaded through to the callback\&. .br \fIcontact_string\fP An url describing the resource\&. NULL is allowed\&. Drivers interpret the various parts of this url as described in their documentation\&. An alternative form is also supported: if contact_string does not specify a scheme (e\&.g\&. http://) and it contains a ':', it will be parsed as a host:port pair\&. if it does not contain a ':', it will be parsed as the path .RE .PP the following are examples of valid formats: .PP .nf host-name ':' 'file:' '://' [ '/' [ ] ] '://' location [ '/' [ ] ] location: [ auth-part ] host-part auth-part: [ ':' ] '@' host-part: [ '<' '>' ] host-name [ ':' ] host-name: | | '[' ']' .fi .PP .PP Except for use as the above delimiters, the following special characters MUST be encoded with the %HH format where H == hex char\&. .PP .PP .nf '/' and '@' in location except subject '<' and '>' in location ':' everywhere except ipv6 address and subject '%' everywhere (can be encoded with %HH or %%) .fi .PP .SS "globus_result_t globus_xio_register_read (globus_xio_handle_thandle, globus_byte_t *buffer, globus_size_tbuffer_length, globus_size_twaitforbytes, globus_xio_data_descriptor_tdata_desc, \fBglobus_xio_data_callback_t\fPcb, void *user_arg)" Read data from a handle .SS "globus_result_t globus_xio_register_readv (globus_xio_handle_thandle, globus_xio_iovec_t *iovec, intiovec_count, globus_size_twaitforbytes, globus_xio_data_descriptor_tdata_desc, \fBglobus_xio_iovec_callback_t\fPcb, void *user_arg)" Read data from a handle into a globus_xio_iovec_t (struct iovec) .SS "globus_result_t globus_xio_register_write (globus_xio_handle_thandle, globus_byte_t *buffer, globus_size_tbuffer_length, globus_size_twaitforbytes, globus_xio_data_descriptor_tdata_desc, \fBglobus_xio_data_callback_t\fPcb, void *user_arg)" Write data to a handle .SS "globus_result_t globus_xio_register_writev (globus_xio_handle_thandle, globus_xio_iovec_t *iovec, intiovec_count, globus_size_twaitforbytes, globus_xio_data_descriptor_tdata_desc, \fBglobus_xio_iovec_callback_t\fPcb, void *user_arg)" Write data to a handle from a globus_xio_iovec_t (struct iovec) .SS "globus_result_t globus_xio_server_accept (globus_xio_handle_t *out_handle, globus_xio_server_tserver)" Accept a connection .PP This function will accept a connection on the given server object and the parameter out_handle will be valid if the function returns successfully\&. .SS "globus_result_t globus_xio_server_close (globus_xio_server_tserver)" A blocking server close .SS "globus_result_t globus_xio_server_cntl (globus_xio_server_tserver, globus_xio_driver_tdriver, intcmd, \&.\&.\&.)" Touch driver specific information in a server object\&. .PP This function allows the user to communicate directly with a driver in association with a server object\&. The driver defines what operations can be preformed\&. .SS "globus_result_t globus_xio_server_create (globus_xio_server_t *server, globus_xio_attr_tserver_attr, globus_xio_stack_tstack)" Create a server object\&. .PP This function allows the user to create a server object which can then be used to accept connections\&. .PP \fBParameters:\fP .RS 4 \fIserver\fP An out parameter\&. Once the function successfully returns this will point to a valid server object\&. .br \fIserver_attr\fP an attribute structure used to alter the default server initialization\&. This will mostly be used in a driver specific manner\&. can be NULL\&. .br \fIstack\fP .RE .PP .SS "globus_result_t globus_xio_server_get_contact_string (globus_xio_server_tserver, char **contact_string)" get contact string .PP This function allows the user to get the contact string for a server\&. this string could be used as the contact string for the client side\&. .PP \fBParameters:\fP .RS 4 \fIserver\fP An initialized server handle created with \fBglobus_xio_server_create()\fP .br \fIcontact_string\fP an out variable\&. Will point to a newly allocated string on success\&. must be freed by the caller\&. .RE .PP .SS "globus_result_t globus_xio_server_register_accept (globus_xio_server_tserver, \fBglobus_xio_accept_callback_t\fPcb, void *user_arg)" Asynchronous accept\&. .PP This function posts an nonblocking accept\&. Once the operation has completed the user function pointed to by the parameter cb is called\&. .SS "globus_result_t globus_xio_server_register_close (globus_xio_server_tserver, \fBglobus_xio_server_callback_t\fPcb, void *user_arg)" post a close on a server object .PP This function registers a close operation on a server\&. When the user function pointed to by parameter cb is called the server object is closed\&. .SS "globus_result_t globus_xio_stack_copy (globus_xio_stack_t *dst, globus_xio_stack_tsrc)" Copy a stack object .SS "globus_result_t globus_xio_stack_destroy (globus_xio_stack_tstack)" Destroy a stack object\&. .SS "globus_result_t globus_xio_stack_init (globus_xio_stack_t *stack, globus_xio_attr_tstack_attr)" Initialize a stack object .SS "globus_result_t globus_xio_stack_push_driver (globus_xio_stack_tstack, globus_xio_driver_tdriver)" Push a driver onto a stack\&. .PP No attrs are associated with a driver\&. The stack represents the ordered lists of transform drivers and 1 transport driver\&. The transport driver must be pushed on first\&. .SS "globus_result_t globus_xio_write (globus_xio_handle_thandle, globus_byte_t *buffer, globus_size_tbuffer_length, globus_size_twaitforbytes, globus_size_t *nbytes, globus_xio_data_descriptor_tdata_desc)" Write data to a handle .SS "globus_result_t globus_xio_writev (globus_xio_handle_thandle, globus_xio_iovec_t *iovec, intiovec_count, globus_size_twaitforbytes, globus_size_t *nbytes, globus_xio_data_descriptor_tdata_desc)" Write data to a handle from a globus_xio_iovec_t (struct iovec) .SH "Author" .PP Generated automatically by Doxygen for globus_xio from the source code\&.