.TH "globus_callback.h" 3 "Version 18.14" "globus_common" \" -*- nroff -*- .ad l .nh .SH NAME globus_callback.h \- Globus Callback API\&. .SH SYNOPSIS .br .PP \fC#include 'globus_common_include\&.h'\fP .br \fC#include 'globus_module\&.h'\fP .br \fC#include 'globus_time\&.h'\fP .br .SS "Macros" .in +1c .ti -1c .RI "#define \fBGLOBUS_CALLBACK_MODULE\fP" .br .RI "Module descriptor\&. " .ti -1c .RI "#define \fBGLOBUS_POLL_MODULE\fP" .br .RI "Module descriptor\&. " .in -1c .PP .RI "\fBConvenience Macros\fP" .br .in +1c .in +1c .ti -1c .RI "#define \fBglobus_callback_poll\fP(a)" .br .RI "Poll the global callback space\&. " .ti -1c .RI "#define \fBglobus_poll_blocking\fP()" .br .RI "Blocking poll of the global callback space\&. " .ti -1c .RI "#define \fBglobus_poll_nonblocking\fP()" .br .RI "Nonblocking poll of the global callback space\&. " .ti -1c .RI "#define \fBglobus_poll\fP()" .br .RI "Nonblocking poll of the global callback space\&. " .ti -1c .RI "#define \fBglobus_signal_poll\fP()" .br .RI "Wake up callback polling thread\&. " .ti -1c .RI "#define \fBglobus_callback_register_oneshot\fP( callback_handle, delay_time, callback_func, callback_user_arg)" .br .RI "Register a oneshot function in the global callback space\&. " .ti -1c .RI "#define \fBglobus_callback_register_periodic\fP( callback_handle, delay_time, period, callback_func, callback_user_arg)" .br .RI "Register a periodic function in the global callback space\&. " .ti -1c .RI "#define \fBglobus_callback_register_signal_handler\fP( signum, persist, callback_func, callback_user_arg)" .br .RI "Register a signal handler in the global callback space\&. " .in -1c .in -1c .SS "Typedefs" .in +1c .ti -1c .RI "typedef int \fBglobus_callback_handle_t\fP" .br .RI "Periodic callback handle\&. " .ti -1c .RI "typedef int \fBglobus_callback_space_t\fP" .br .RI "Callback space handle\&. " .ti -1c .RI "typedef struct globus_l_callback_space_attr_s * \fBglobus_callback_space_attr_t\fP" .br .RI "Callback space attribute\&. " .in -1c .PP .RI "\fBCallback Prototypes\fP" .br .in +1c .in +1c .ti -1c .RI "typedef void(* \fBglobus_callback_func_t\fP) (void *user_arg)" .br .RI "Globus callback prototype\&. " .in -1c .in -1c .SS "Enumerations" .in +1c .ti -1c .RI "enum \fBglobus_callback_error_type_t\fP { \fBGLOBUS_CALLBACK_ERROR_INVALID_CALLBACK_HANDLE\fP = 1024, \fBGLOBUS_CALLBACK_ERROR_INVALID_SPACE\fP, \fBGLOBUS_CALLBACK_ERROR_MEMORY_ALLOC\fP, \fBGLOBUS_CALLBACK_ERROR_INVALID_ARGUMENT\fP, \fBGLOBUS_CALLBACK_ERROR_ALREADY_CANCELED\fP, \fBGLOBUS_CALLBACK_ERROR_NO_ACTIVE_CALLBACK\fP }" .br .RI "Error types\&. " .in -1c .SS "Functions" .PP .RI "\fBOneshot Callbacks\fP" .br .in +1c .in +1c .ti -1c .RI "\fBglobus_result_t\fP \fBglobus_callback_space_register_oneshot\fP (\fBglobus_callback_handle_t\fP *callback_handle, const globus_reltime_t *delay_time, \fBglobus_callback_func_t\fP callback_func, void *callback_user_arg, \fBglobus_callback_space_t\fP space)" .br .RI "Register a oneshot some delay from now\&. " .in -1c .in -1c .PP .RI "\fBPeriodic Callbacks\fP" .br .in +1c .in +1c .ti -1c .RI "\fBglobus_result_t\fP \fBglobus_callback_space_register_periodic\fP (\fBglobus_callback_handle_t\fP *callback_handle, const globus_reltime_t *delay_time, const globus_reltime_t *period, \fBglobus_callback_func_t\fP callback_func, void *callback_user_arg, \fBglobus_callback_space_t\fP space)" .br .RI "Register a periodic callback\&. " .ti -1c .RI "\fBglobus_result_t\fP \fBglobus_callback_unregister\fP (\fBglobus_callback_handle_t\fP callback_handle, \fBglobus_callback_func_t\fP unregister_callback, void *unreg_arg, \fBglobus_bool_t\fP *active)" .br .RI "Unregister a callback\&. " .ti -1c .RI "\fBglobus_result_t\fP \fBglobus_callback_adjust_oneshot\fP (\fBglobus_callback_handle_t\fP callback_handle, const globus_reltime_t *new_delay)" .br .RI "Adjust the delay of a oneshot callback\&. " .ti -1c .RI "\fBglobus_result_t\fP \fBglobus_callback_adjust_period\fP (\fBglobus_callback_handle_t\fP callback_handle, const globus_reltime_t *new_period)" .br .RI "Adjust the period of a periodic callback\&. " .in -1c .in -1c .PP .RI "\fBCallback Polling\fP" .br .in +1c .in +1c .ti -1c .RI "void \fBglobus_callback_space_poll\fP (const globus_abstime_t *timestop, \fBglobus_callback_space_t\fP space)" .br .RI "Poll for ready callbacks\&. " .ti -1c .RI "void \fBglobus_callback_signal_poll\fP ()" .br .RI "Signal the poll\&. " .in -1c .in -1c .SS "Miscellaneous" .in +1c .ti -1c .RI "#define \fBGLOBUS_CALLBACK_GLOBAL_SPACE\fP" .br .RI "Global callback space\&. " .ti -1c .RI "#define \fBGLOBUS_SIGNAL_INTERRUPT\fP" .br .ti -1c .RI "enum \fBglobus_callback_space_behavior_t\fP { \fBGLOBUS_CALLBACK_SPACE_BEHAVIOR_SINGLE\fP, \fBGLOBUS_CALLBACK_SPACE_BEHAVIOR_SERIALIZED\fP, \fBGLOBUS_CALLBACK_SPACE_BEHAVIOR_THREADED\fP }" .br .RI "Callback space behaviors describe how a space behaves\&. " .ti -1c .RI "\fBglobus_bool_t\fP \fBglobus_callback_get_timeout\fP (globus_reltime_t *time_left)" .br .RI "Get the amount of time left in a callback\&. " .ti -1c .RI "\fBglobus_bool_t\fP \fBglobus_callback_has_time_expired\fP ()" .br .RI "See if there is remaining time in a callback\&. " .ti -1c .RI "\fBglobus_bool_t\fP \fBglobus_callback_was_restarted\fP ()" .br .RI "See if a callback has been restarted\&. " .ti -1c .RI "\fBglobus_result_t\fP \fBglobus_callback_space_init\fP (\fBglobus_callback_space_t\fP *space, \fBglobus_callback_space_attr_t\fP attr)" .br .RI "Initialize a user space\&. " .ti -1c .RI "\fBglobus_result_t\fP \fBglobus_callback_space_reference\fP (\fBglobus_callback_space_t\fP space)" .br .RI "Take a reference to a space\&. " .ti -1c .RI "\fBglobus_result_t\fP \fBglobus_callback_space_destroy\fP (\fBglobus_callback_space_t\fP space)" .br .RI "Destroy a reference to a user space\&. " .ti -1c .RI "\fBglobus_result_t\fP \fBglobus_callback_space_attr_init\fP (\fBglobus_callback_space_attr_t\fP *attr)" .br .RI "Initialize a space attr\&. " .ti -1c .RI "\fBglobus_result_t\fP \fBglobus_callback_space_attr_destroy\fP (\fBglobus_callback_space_attr_t\fP attr)" .br .RI "Destroy a space attr\&. " .ti -1c .RI "\fBglobus_result_t\fP \fBglobus_callback_space_attr_set_behavior\fP (\fBglobus_callback_space_attr_t\fP attr, \fBglobus_callback_space_behavior_t\fP behavior)" .br .RI "Set the behavior of a space\&. " .ti -1c .RI "\fBglobus_result_t\fP \fBglobus_callback_space_attr_get_behavior\fP (\fBglobus_callback_space_attr_t\fP attr, \fBglobus_callback_space_behavior_t\fP *behavior)" .br .RI "Get the behavior associated with an attr\&. " .ti -1c .RI "\fBglobus_result_t\fP \fBglobus_callback_space_get\fP (\fBglobus_callback_space_t\fP *space)" .br .RI "Retrieve the space of a currently running callback\&. " .ti -1c .RI "int \fBglobus_callback_space_get_depth\fP (\fBglobus_callback_space_t\fP space)" .br .RI "Retrieve the current nesting level of a space\&. " .ti -1c .RI "\fBglobus_bool_t\fP \fBglobus_callback_space_is_single\fP (\fBglobus_callback_space_t\fP space)" .br .RI "See if the specified space is a single threaded behavior space\&. " .ti -1c .RI "\fBglobus_result_t\fP \fBglobus_callback_space_register_signal_handler\fP (int signum, \fBglobus_bool_t\fP persist, \fBglobus_callback_func_t\fP callback_func, void *callback_user_arg, \fBglobus_callback_space_t\fP space)" .br .RI "Fire a callback when the specified signal is received\&. " .ti -1c .RI "\fBglobus_result_t\fP \fBglobus_callback_unregister_signal_handler\fP (int signum, \fBglobus_callback_func_t\fP unregister_callback, void *unreg_arg)" .br .RI "Unregister a signal handling callback\&. " .ti -1c .RI "void \fBglobus_callback_add_wakeup_handler\fP (void(*wakeup)(void *), void *user_arg)" .br .RI "Register a wakeup handler with callback library\&. " .in -1c .SH "Detailed Description" .PP Globus Callback API\&. .SH "Author" .PP Generated automatically by Doxygen for globus_common from the source code\&.