17 #if !defined(GLOBUS_XIO_DRIVER_H) 18 #define GLOBUS_XIO_DRIVER_H 1 21 #include "globus_xio_load.h" 23 #include "globus_xio_types.h" 24 #include "globus_xio.h" 25 #include "globus_xio_util.h" 35 #define GlobusIXIOAttrGetDS(_out_ds, _in_attr, _in_driver) \ 39 globus_i_xio_attr_t * _attr; \ 40 globus_xio_driver_t _driver; \ 41 globus_i_xio_attr_ent_t * _entry; \ 45 _driver = (_in_driver); \ 47 if(_in_attr == NULL) \ 53 _entry = _attr->entry; \ 54 for(_ctr = 0; _ctr < _attr->ndx && _ds == NULL; _ctr++) \ 56 if(_entry[_ctr].driver == _driver) \ 58 _ds = _entry[_ctr].driver_data; \ 273 globus_xio_operation_t op,
301 globus_xio_operation_t op,
308 (*globus_xio_driver_push_driver_t)(
309 globus_xio_driver_t driver,
310 globus_xio_stack_t stack);
313 globus_xio_driver_attr_cntl(
314 globus_xio_operation_t op,
315 globus_xio_driver_t driver,
320 globus_xio_driver_data_descriptor_cntl(
321 globus_xio_operation_t op,
322 globus_xio_driver_t driver,
337 globus_xio_driver_handle_t handle,
338 globus_xio_driver_t driver,
346 (*globus_xio_driver_get_driver_t)(
347 globus_xio_driver_t * out_driver);
358 void ** out_driver_attr);
436 const globus_xio_contact_t * contact_info,
437 globus_xio_operation_t op);
465 globus_xio_driver_pass_server_init(
466 globus_xio_operation_t op,
467 const globus_xio_contact_t * contact_info,
468 void * driver_server);
486 void * driver_server);
510 void * driver_server,
511 globus_xio_operation_t op);
514 globus_xio_driver_pass_accept(
515 globus_xio_operation_t op,
523 (*globus_xio_driver_cancel_callback_t)(
524 globus_xio_operation_t op,
526 globus_xio_error_type_t reason);
549 globus_xio_operation_t op,
572 void * driver_server,
581 (*globus_xio_driver_link_cntl_t)(
634 const globus_xio_contact_t * contact_info,
637 globus_xio_operation_t op);
645 const globus_xio_contact_t * contact_info,
648 globus_xio_operation_t op);
680 globus_xio_operation_t op,
681 const globus_xio_contact_t * contact_info,
706 void * driver_handle,
707 globus_xio_operation_t op,
733 globus_xio_operation_t * operation,
734 globus_xio_driver_handle_t handle);
740 globus_xio_driver_operation_destroy(
741 globus_xio_operation_t operation);
747 globus_xio_driver_operation_cancel(
748 globus_xio_driver_handle_t handle,
749 globus_xio_operation_t operation);
761 globus_xio_operation_t operation);
782 globus_xio_driver_merge_handle(
783 globus_xio_operation_t op,
784 globus_xio_driver_handle_t handle);
810 void * driver_handle,
812 globus_xio_operation_t op);
832 globus_xio_operation_t op,
834 void * callback_arg);
853 globus_xio_operation_t op,
884 void * driver_specific_handle,
885 const globus_xio_iovec_t * iovec,
887 globus_xio_operation_t op);
922 globus_xio_operation_t op,
923 globus_xio_iovec_t * iovec,
948 globus_xio_operation_t op,
978 globus_xio_operation_t op);
1004 globus_xio_operation_t op);
1034 void * driver_specific_handle,
1035 const globus_xio_iovec_t * iovec,
1037 globus_xio_operation_t op);
1073 globus_xio_operation_t op,
1074 globus_xio_iovec_t * iovec,
1099 globus_xio_operation_t op,
1129 globus_xio_operation_t top_op,
1130 globus_xio_operation_t bottom_op);
1194 globus_xio_driver_init(
1195 globus_xio_driver_t * driver,
1196 const char * driver_name,
1203 globus_xio_driver_get_user_data(
1204 globus_xio_driver_t in_driver,
1205 void ** out_user_data);
1208 globus_xio_operation_attr_cntl(
1209 globus_xio_operation_t op,
1210 globus_xio_attr_cmd_t cmd,
1217 globus_xio_driver_destroy(
1218 globus_xio_driver_t driver);
1224 globus_xio_driver_set_transport(
1225 globus_xio_driver_t driver,
1236 globus_xio_driver_set_transform(
1237 globus_xio_driver_t driver,
1243 globus_xio_driver_push_driver_t push_driver_func);
1249 globus_xio_driver_set_server(
1250 globus_xio_driver_t driver,
1255 globus_xio_driver_link_cntl_t link_cntl_func,
1260 globus_xio_driver_t driver,
1266 globus_xio_driver_set_attr(
1267 globus_xio_driver_t driver,
1277 globus_xio_operation_block_timeout(
1278 globus_xio_operation_t op);
1281 globus_xio_operation_unblock_timeout(
1282 globus_xio_operation_t op);
1285 globus_xio_operation_refresh_timeout(
1286 globus_xio_operation_t op);
1290 globus_xio_operation_enable_cancel(
1291 globus_xio_operation_t op,
1292 globus_xio_driver_cancel_callback_t cb,
1296 globus_xio_operation_disable_cancel(
1297 globus_xio_operation_t op);
1300 globus_xio_operation_is_canceled(
1301 globus_xio_operation_t op);
1304 globus_xio_operation_get_wait_for(
1305 globus_xio_operation_t op);
1308 globus_xio_operation_get_driver_specific(
1309 globus_xio_operation_t op);
1312 globus_xio_operation_get_user_driver(
1313 globus_xio_operation_t op);
1316 globus_xio_operation_get_transport_user_driver(
1317 globus_xio_operation_t op);
1320 globus_xio_driver_handle_t
1321 globus_xio_operation_get_driver_handle(
1322 globus_xio_operation_t op);
1328 globus_xio_driver_handle_t
1329 globus_xio_operation_get_driver_self_handle(
1330 globus_xio_operation_t op);
1333 globus_xio_operation_get_data_descriptor(
1334 globus_xio_operation_t op,
1338 globus_xio_operation_copy_stack(
1339 globus_xio_operation_t op,
1340 globus_xio_stack_t * stack);
1347 (*globus_xio_string_cntl_parse_func_t)(
1357 typedef struct globus_xio_string_cntl_table_s
1361 globus_xio_string_cntl_parse_func_t parse_func;
1362 } globus_xio_string_cntl_table_t;
1419 globus_xio_driver_t driver,
1420 globus_xio_string_cntl_table_t * table);
1428 globus_xio_driver_t driver,
1429 globus_xio_string_cntl_table_t * table);
1510 globus_xio_string_cntl_formated_off(
1518 globus_xio_string_cntl_formated_int(
1526 globus_xio_string_cntl_string_list(
void(* globus_xio_driver_callback_t)(globus_xio_operation_t op, globus_result_t result, void *user_arg)
Open and Close Callback Signature.
Definition: globus_xio_driver.h:272
void globus_xio_driver_finished_accept(globus_xio_operation_t op, void *driver_link, globus_result_t result)
Definition: globus_xio_pass.c:1603
void globus_xio_driver_finished_open(void *driver_handle, globus_xio_operation_t op, globus_result_t result)
Definition: globus_xio_pass.c:156
globus_result_t(* globus_xio_driver_server_cntl_t)(void *driver_server, int cmd, va_list ap)
Definition: globus_xio_driver.h:571
void(* globus_xio_driver_data_callback_t)(globus_xio_operation_t op, globus_result_t result, globus_size_t nbytes, void *user_arg)
Definition: globus_xio_driver.h:300
globus_result_t(* globus_xio_driver_transform_open_t)(const globus_xio_contact_t *contact_info, void *driver_link, void *driver_attr, globus_xio_operation_t op)
Open a handle.
Definition: globus_xio_driver.h:633
globus_result_t(* globus_xio_driver_server_accept_t)(void *driver_server, globus_xio_operation_t op)
Definition: globus_xio_driver.h:509
globus_result_t(* globus_xio_driver_link_destroy_t)(void *driver_link)
Definition: globus_xio_driver.h:597
globus_result_t globus_xio_driver_handle_string_cntl_set_table(globus_xio_driver_t driver, globus_xio_string_cntl_table_t *table)
Definition: globus_xio_driver.c:2220
globus_result_t(* globus_xio_driver_close_t)(void *driver_handle, void *driver_attr, globus_xio_operation_t op)
Close a handle.
Definition: globus_xio_driver.h:809
globus_result_t(* globus_xio_driver_handle_cntl_t)(void *handle, int cmd, va_list ap)
Definition: globus_xio_driver.h:775
globus_result_t globus_xio_string_cntl_string(void *attr, const char *key, const char *val, int cmd, globus_xio_driver_attr_cntl_t cntl_func)
Definition: globus_xio_attr.c:1428
globus_bool_t globus_xio_driver_eof_received(globus_xio_operation_t op)
Definition: globus_xio_driver.c:1902
int globus_bool_t
Boolean type.
Definition: globus_types.h:93
globus_result_t globus_xio_driver_handle_cntl(globus_xio_driver_handle_t handle, globus_xio_driver_t driver, int cmd,...)
Definition: globus_xio_driver.c:1762
globus_result_t globus_xio_driver_pass_close(globus_xio_operation_t op, globus_xio_driver_callback_t cb, void *callback_arg)
Pass the close operation down the driver stack.
Definition: globus_xio_pass.c:394
globus_result_t globus_xio_driver_pass_read(globus_xio_operation_t op, globus_xio_iovec_t *iovec, int iovec_count, globus_size_t wait_for, globus_xio_driver_data_callback_t cb, void *user_arg)
Definition: globus_xio_pass.c:933
globus_result_t globus_xio_driver_operation_create(globus_xio_operation_t *operation, globus_xio_driver_handle_t handle)
Definition: globus_xio_driver.c:1062
globus_result_t(* globus_xio_driver_attr_cntl_t)(void *attr, int cmd, va_list ap)
Definition: globus_xio_driver.h:403
globus_result_t globus_xio_string_cntl_float(void *attr, const char *key, const char *val, int cmd, globus_xio_driver_attr_cntl_t cntl_func)
Definition: globus_xio_attr.c:1400
void globus_xio_driver_finished_write(globus_xio_operation_t op, globus_result_t result, globus_size_t nwritten)
Definition: globus_xio_pass.c:759
globus_result_t(* globus_xio_driver_server_init_t)(void *driver_attr, const globus_xio_contact_t *contact_info, globus_xio_operation_t op)
Definition: globus_xio_driver.h:434
globus_result_t globus_xio_string_cntl_int(void *attr, const char *key, const char *val, int cmd, globus_xio_driver_attr_cntl_t cntl_func)
Definition: globus_xio_attr.c:1323
globus_result_t(* globus_xio_driver_write_t)(void *driver_specific_handle, const globus_xio_iovec_t *iovec, int iovec_count, globus_xio_operation_t op)
Definition: globus_xio_driver.h:1033
void globus_xio_driver_finished_close(globus_xio_operation_t op, globus_result_t result)
Definition: globus_xio_pass.c:537
globus_result_t(* globus_xio_driver_transport_open_t)(const globus_xio_contact_t *contact_info, void *driver_link, void *driver_attr, globus_xio_operation_t op)
Open a handle.
Definition: globus_xio_driver.h:644
size_t globus_size_t
Standard size of memory objectThe globus_size_t is the size of a memory object. It is identical to si...
Definition: globus_types.h:48
globus_result_t globus_xio_string_cntl_bool(void *attr, const char *key, const char *val, int cmd, globus_xio_driver_attr_cntl_t cntl_func)
Definition: globus_xio_attr.c:1447
globus_result_t globus_xio_driver_pass_open(globus_xio_operation_t op, const globus_xio_contact_t *contact_info, globus_xio_driver_callback_t cb, void *user_arg)
Definition: globus_xio_pass.c:27
globus_bool_t globus_xio_driver_operation_is_blocking(globus_xio_operation_t operation)
Definition: globus_xio_driver.c:2340
void globus_xio_driver_finished_read(globus_xio_operation_t op, globus_result_t result, globus_size_t nread)
Definition: globus_xio_pass.c:1120
Headers common to all of Globus.
uint32_t globus_result_t
Definition: globus_types.h:99
globus_result_t globus_xio_driver_set_server_pre_init(globus_xio_driver_t driver, globus_xio_driver_server_init_t server_pre_init_func)
Server Pre-Init.
Definition: globus_xio_driver.c:2128
globus_result_t(* globus_xio_driver_server_destroy_t)(void *driver_server)
Definition: globus_xio_driver.h:485
globus_result_t globus_xio_string_cntl_int_int(void *attr, const char *key, const char *val, int cmd, globus_xio_driver_attr_cntl_t cntl_func)
Definition: globus_xio_attr.c:1351
globus_result_t(* globus_xio_driver_attr_destroy_t)(void *driver_attr)
Definition: globus_xio_driver.h:380
globus_result_t(* globus_xio_driver_attr_init_t)(void **out_driver_attr)
Definition: globus_xio_driver.h:357
globus_result_t globus_xio_string_cntl_bouncer(globus_xio_driver_attr_cntl_t cntl_func, void *attr, int cmd,...)
Definition: globus_xio_attr.c:1190
void globus_xio_driver_set_eof_received(globus_xio_operation_t op)
Definition: globus_xio_driver.c:1867
globus_result_t globus_xio_driver_string_cntl_set_table(globus_xio_driver_t driver, globus_xio_string_cntl_table_t *table)
Definition: globus_xio_driver.c:2190
globus_result_t globus_xio_driver_merge_operation(globus_xio_operation_t top_op, globus_xio_operation_t bottom_op)
globus_result_t globus_xio_driver_pass_write(globus_xio_operation_t op, globus_xio_iovec_t *iovec, int iovec_count, globus_size_t wait_for, globus_xio_driver_data_callback_t cb, void *user_arg)
Definition: globus_xio_pass.c:610
globus_result_t(* globus_xio_driver_read_t)(void *driver_specific_handle, const globus_xio_iovec_t *iovec, int iovec_count, globus_xio_operation_t op)
Definition: globus_xio_driver.h:883
globus_result_t(* globus_xio_driver_attr_copy_t)(void **dst, void *src)
Definition: globus_xio_driver.h:368