.TH "The globus_xio user API." 3 "Mon Apr 30 2012" "Version 3.3" "globus xio" \" -*- nroff -*- .ad l .nh .SH NAME The globus_xio user 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 "EXTERN_C_END 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)" .br .in -1c .SH "Typedef Documentation" .PP .SS "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)" .PP Callback signature for accept\&. 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(* \fBglobus_xio_server_callback_t\fP)(globus_xio_server_t server, void *user_arg)" .PP Server callback signature\&. This is the generic server callback signature\&. It is currently only used for the register close operation\&. .SS "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)" .PP The timeout callback function signature\&. \fBParameters:\fP .RS 4 \fIhandle\fP The handle the handle on which the timeout operation was requested\&. .br \fItype\fP The type of opperation 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 throw to the callback\&. .RE .PP .SS "typedef void(* \fBglobus_xio_callback_t\fP)(globus_xio_handle_t handle, globus_result_t result, void *user_arg)" .PP globus_xio_callback_t .PP This callback is used for the open and close asynchronous operations\&. .SS "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)" .PP globus_xio_data_callback_t .PP This callback is used for asychronous operations that send or receive data\&. on eof, result_t will be of type GLOBUS_XIO_ERROR_EOF .SS "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)" .PP globus_xio_iovec_callback_t .PP This callback is used for asychronous operations that send or receive data with an ivec structure\&. 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" .PP Operation types\&. An enumeration of operation types\&. Used in the timeout callback to indicate what operation typed timedout\&. .SH "Enumeration Type Documentation" .PP .SS "enum \fBglobus_i_xio_op_type_e\fP" .PP Operation types\&. An enumeration of operation types\&. Used in the timeout callback to indicate what operation typed timedout\&. .SS "enum \fBglobus_xio_handle_cmd_t\fP" .PP 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 \fBglobus_xio_attr_init\fP (globus_xio_attr_t *attr)" .PP Intialize a globus xio attribute\&. \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 .PP References globus_xio_attr_init()\&. .SS "globus_result_t \fBglobus_xio_attr_cntl\fP (globus_xio_attr_tattr, globus_xio_driver_tdriver, intcmd, \&.\&.\&.)" .PP Manipulate the values associated in the attr\&. 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 patameter 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 resonsible 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 attribure 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 .PP References globus_xio_attr_cntl()\&. .SS "globus_result_t \fBglobus_xio_attr_copy\fP (globus_xio_attr_t *dst, globus_xio_attr_tsrc)" .PP Copy an attribute structure\&. .PP References globus_xio_attr_copy()\&. .SS "globus_result_t \fBglobus_xio_attr_destroy\fP (globus_xio_attr_tattr)" .PP Clean up resources associated with an attribute\&. \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 .PP References globus_xio_attr_destroy()\&. .SS "globus_result_t \fBglobus_xio_stack_init\fP (globus_xio_stack_t *stack, globus_xio_attr_tstack_attr)" .PP Initialize a stack object\&. .PP References globus_xio_stack_init()\&. .SS "globus_result_t \fBglobus_xio_stack_push_driver\fP (globus_xio_stack_tstack, globus_xio_driver_tdriver)" .PP Push a driver onto a stack\&. 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\&. .PP References globus_xio_stack_push_driver()\&. .SS "globus_result_t \fBglobus_xio_stack_copy\fP (globus_xio_stack_t *dst, globus_xio_stack_tsrc)" .PP Copy a stack object\&. .PP References globus_xio_stack_push_driver()\&. .SS "globus_result_t \fBglobus_xio_stack_destroy\fP (globus_xio_stack_tstack)" .PP Destroy a stack object\&. .PP References globus_xio_stack_destroy()\&. .SS "globus_result_t \fBglobus_xio_server_create\fP (globus_xio_server_t *server, globus_xio_attr_tserver_attr, globus_xio_stack_tstack)" .PP Create a server object\&. 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 attributre structure used to alter the default server intialization\&. This will mostly be used in a driver specific manner\&. can be NULL\&. .br \fIstack\fP .RE .PP .PP References globus_xio_server_create()\&. .SS "globus_result_t \fBglobus_xio_server_get_contact_string\fP (globus_xio_server_tserver, char **contact_string)" .PP get contact string 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 varibale\&. Will point to a newly allocated string on success\&. must be freed by the caller\&. .RE .PP .SS "globus_result_t \fBglobus_xio_server_register_close\fP (globus_xio_server_tserver, \fBglobus_xio_server_callback_t\fPcb, void *user_arg)" .PP post a close on a server object 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\&. .PP References globus_xio_server_register_close()\&. .SS "globus_result_t \fBglobus_xio_server_close\fP (globus_xio_server_tserver)" .PP A blocking server close\&. .PP References globus_xio_server_close(), and globus_xio_server_register_close()\&. .SS "globus_result_t \fBglobus_xio_server_cntl\fP (globus_xio_server_tserver, globus_xio_driver_tdriver, intcmd, \&.\&.\&.)" .PP Touch driver specific information in a server object\&. This function allows the user to comunicate directly with a driver in association with a server object\&. The driver defines what operations can be preformed\&. .PP References globus_xio_server_cntl()\&. .SS "globus_result_t \fBglobus_xio_server_accept\fP (globus_xio_handle_t *out_handle, globus_xio_server_tserver)" .PP Accept a connection\&. This function will accept a connetion on the given server object and the parameter out_handle will be valid if the function returns successfully\&. .SS "globus_result_t \fBglobus_xio_server_register_accept\fP (globus_xio_server_tserver, \fBglobus_xio_accept_callback_t\fPcb, void *user_arg)" .PP Asynchronous accept\&. This function posts an nonblocking accept\&. Once the operation has completed the user function pointed to by the parameter cb is called\&. .PP References globus_xio_server_register_accept()\&. .SS "globus_result_t \fBglobus_xio_handle_create\fP (globus_xio_handle_t *handle, globus_xio_stack_tstack)" .PP Initialize a handle for client opens\&. This funtion will initialize a handle for active opens (client side connections)\&. .PP References globus_xio_handle_create()\&. .SS "globus_result_t \fBglobus_xio_data_descriptor_init\fP (globus_xio_data_descriptor_t *data_desc, globus_xio_handle_thandle)" .PP Initialize a data descriptor\&. \fBParameters:\fP .RS 4 \fIdata_desc\fP An out parameter\&. The data descriptor to be intialized\&. .br \fIhandle\fP The handle this data descriptor will be used with\&. This parametter is require in order to optimize the code handling the data descriptors use\&. .RE .PP .PP References globus_xio_data_descriptor_init()\&. .SS "globus_result_t \fBglobus_xio_data_descriptor_destroy\fP (globus_xio_data_descriptor_tdata_desc)" .PP clean up a data descriptor\&. .PP References globus_xio_data_descriptor_destroy()\&. .SS "globus_result_t \fBglobus_xio_data_descriptor_cntl\fP (globus_xio_data_descriptor_tdata_desc, globus_xio_driver_tdriver, intcmd, \&.\&.\&.)" .PP Touch driver specific data in data descriptors .PP This function allows the user to comunicate directly with a driver in association with a data descriptors\&. The driver defines what operations can be preformed\&. .PP References globus_xio_data_descriptor_cntl()\&. .SS "globus_result_t \fBglobus_xio_handle_cntl\fP (globus_xio_handle_thandle, globus_xio_driver_tdriver, intcmd, \&.\&.\&.)" .PP Touch driver specific information in a handle object\&. This function allows the user to comunicate 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 .PP References globus_xio_handle_cntl()\&. .SS "globus_result_t \fBglobus_xio_register_open\fP (globus_xio_handle_thandle, const char *contact_string, globus_xio_attr_tattr, \fBglobus_xio_callback_t\fPcb, void *user_arg)" .PP Open a handle .PP Creates an open handle based on the state contained in the given stack\&. No operation can be preformed on a handle until it is initialized and then opened\&. If an already open handle used the information contaned in that handle will be destoyed\&. .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 descibed 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 delimeters, 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 .PP References globus_xio_register_open()\&. .SS "globus_result_t \fBglobus_xio_open\fP (globus_xio_handle_thandle, const char *contact_string, globus_xio_attr_tattr)" .PP blocking open .PP References globus_xio_open()\&. .SS "globus_result_t \fBglobus_xio_register_read\fP (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)" .PP Read data from a handle\&. .PP References globus_xio_register_read()\&. .SS "globus_result_t \fBglobus_xio_read\fP (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)" .PP Read data from a handle\&. .PP References globus_xio_read()\&. .SS "globus_result_t \fBglobus_xio_register_readv\fP (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)" .PP Read data from a handle into a globus_xio_iovec_t (struct iovec) .PP References globus_xio_register_readv()\&. .SS "globus_result_t \fBglobus_xio_readv\fP (globus_xio_handle_thandle, globus_xio_iovec_t *iovec, intiovec_count, globus_size_twaitforbytes, globus_size_t *nbytes, globus_xio_data_descriptor_tdata_desc)" .PP Read data from a handle into a globus_xio_iovec_t (struct iovec) .PP References globus_xio_readv()\&. .SS "globus_result_t \fBglobus_xio_register_write\fP (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)" .PP Write data to a handle\&. .PP References globus_xio_register_write()\&. .SS "globus_result_t \fBglobus_xio_write\fP (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)" .PP Write data to a handle\&. .PP References globus_xio_write()\&. .SS "globus_result_t \fBglobus_xio_register_writev\fP (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)" .PP Write data to a handle from a globus_xio_iovec_t (struct iovec) .PP References globus_xio_register_writev()\&. .SS "globus_result_t \fBglobus_xio_writev\fP (globus_xio_handle_thandle, globus_xio_iovec_t *iovec, intiovec_count, globus_size_twaitforbytes, globus_size_t *nbytes, globus_xio_data_descriptor_tdata_desc)" .PP Write data to a handle from a globus_xio_iovec_t (struct iovec) .PP References globus_xio_writev()\&. .SS "globus_result_t \fBglobus_xio_register_close\fP (globus_xio_handle_thandle, globus_xio_attr_tattr, \fBglobus_xio_callback_t\fPcb, void *user_arg)" .PP Close a handle .PP This functions servers as a destoy 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 .PP References globus_xio_register_close()\&. .SS "globus_result_t \fBglobus_xio_close\fP (globus_xio_handle_thandle, globus_xio_attr_tattr)" .PP Blocking close\&. .PP References globus_xio_close()\&. .SS "globus_result_t \fBglobus_xio_handle_create_from_url\fP (globus_xio_handle_t *out_h, const char *scheme, globus_xio_attr_tattr, char *param_string)" .PP Initializes a handle based on the scheme given\&. \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 .PP References globus_xio_attr_cntl(), globus_xio_handle_create(), GLOBUS_XIO_SET_STRING_OPTIONS, globus_xio_stack_destroy(), globus_xio_stack_init(), and globus_xio_stack_push_driver()\&. .SS "EXTERN_C_END globus_result_t \fBglobus_xio_handle_cntl\fP (handle, driver, \fBGLOBUS_XIO_GET_LOCAL_CONTACT\fP, char **contact_string_out)" .PP 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\&. \fBParameters:\fP .RS 4 \fIcontact_string_out\fP A pointer to a contact string for the local end of a connected handle\&. Where possible, it will be in symbolic form (FQDN)\&. .RE .PP The user must free the returned string\&. .PP \fBSee also:\fP .RS 4 \fBglobus_xio_server_get_contact_string()\fP .RE .PP .SS "globus_result_t \fBglobus_xio_handle_cntl\fP (handle, driver, \fBGLOBUS_XIO_GET_LOCAL_NUMERIC_CONTACT\fP, char **contact_string_out)" .PP 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\&. \fBParameters:\fP .RS 4 \fIcontact_string_out\fP A pointer to a contact string for the local end of a connected handle\&. Where possible, it will be in numeric form\&. (IP) .RE .PP The user must free the returned string\&. .SS "globus_result_t \fBglobus_xio_handle_cntl\fP (handle, driver, \fBGLOBUS_XIO_GET_REMOTE_CONTACT\fP, char **contact_string_out)" .PP 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\&. \fBParameters:\fP .RS 4 \fIcontact_string_out\fP A pointer to a contact string for the remote end of a connected handle\&. Where possible, it will be in symbolic form (FQDN)\&. .RE .PP The user must free the returned string\&. .SS "globus_result_t \fBglobus_xio_handle_cntl\fP (handle, driver, \fBGLOBUS_XIO_GET_REMOTE_NUMERIC_CONTACT\fP, char **contact_string_out)" .PP 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\&. \fBParameters:\fP .RS 4 \fIcontact_string_out\fP A pointer to a contact string for the remote end of a connected handle\&. Where possible, it will be in numeric form\&. (IP) .RE .PP The user must free the returned string\&. .SS "globus_result_t \fBglobus_xio_handle_cntl\fP (handle, driver, \fBGLOBUS_XIO_SEEK\fP, globus_off_toffset)" .PP 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\&. \fBParameters:\fP .RS 4 \fIoffset\fP Specify the desired offset\&. .RE .PP .SS "globus_result_t \fBglobus_xio_handle_cntl\fP (handle, driver, \fBGLOBUS_XIO_SET_STRING_OPTIONS\fP)" .PP 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 .SH "Author" .PP Generated automatically by Doxygen for globus xio from the source code\&.