Globus Callback API. More...
#include "globus_common_include.h"
#include "globus_module.h"
#include "globus_time.h"
Go to the source code of this file.
Defines | |
#define | GLOBUS_CALLBACK_MODULE |
Module descriptor. | |
#define | GLOBUS_POLL_MODULE |
Module descriptor. | |
#define | GLOBUS_CALLBACK_GLOBAL_SPACE |
Global callback space. | |
#define | GLOBUS_SIGNAL_INTERRUPT |
Convenience Macros | |
#define | globus_callback_poll(a) |
Poll the global callback space. | |
#define | globus_poll_blocking() |
Blocking poll of the global callback space. | |
#define | globus_poll_nonblocking() |
Nonblocking poll of the global callback space. | |
#define | globus_poll() |
Nonblocking poll of the global callback space. | |
#define | globus_signal_poll() |
Wake up callback polling thread. | |
#define | globus_callback_register_oneshot(callback_handle,delay_time,callback_func,callback_user_arg) |
Register a oneshot function in the global callback space. | |
#define | globus_callback_register_periodic(callback_handle,delay_time,period,callback_func,callback_user_arg) |
Register a periodic function in the global callback space. | |
#define | globus_callback_register_signal_handler(signum,persist,callback_func,callback_user_arg) |
Register a signal handler in the global callback space. | |
Typedefs | |
typedef int | globus_callback_handle_t |
Periodic callback handle. | |
typedef int | globus_callback_space_t |
Callback space handle. | |
typedef struct globus_l_callback_space_attr_s * | globus_callback_space_attr_t |
Callback space attribute. | |
Callback Prototypes | |
typedef void(* | globus_callback_func_t )(void *user_arg) |
Globus callback prototype. | |
Enumerations | |
enum | globus_callback_error_type_t { GLOBUS_CALLBACK_ERROR_INVALID_CALLBACK_HANDLE = 1024, GLOBUS_CALLBACK_ERROR_INVALID_SPACE, GLOBUS_CALLBACK_ERROR_MEMORY_ALLOC, GLOBUS_CALLBACK_ERROR_INVALID_ARGUMENT, GLOBUS_CALLBACK_ERROR_ALREADY_CANCELED, GLOBUS_CALLBACK_ERROR_NO_ACTIVE_CALLBACK } |
Error types. More... | |
enum | globus_callback_space_behavior_t { GLOBUS_CALLBACK_SPACE_BEHAVIOR_SINGLE, GLOBUS_CALLBACK_SPACE_BEHAVIOR_SERIALIZED, GLOBUS_CALLBACK_SPACE_BEHAVIOR_THREADED } |
Callback space behaviors describe how a space behaves. More... | |
Functions | |
globus_result_t | globus_callback_space_init (globus_callback_space_t *space, globus_callback_space_attr_t attr) |
Initialize a user space. | |
globus_result_t | globus_callback_space_reference (globus_callback_space_t space) |
Take a reference to a space. | |
globus_result_t | globus_callback_space_destroy (globus_callback_space_t space) |
Destroy a reference to a user space. | |
globus_result_t | globus_callback_space_attr_init (globus_callback_space_attr_t *attr) |
Initialize a space attr. | |
globus_result_t | globus_callback_space_attr_destroy (globus_callback_space_attr_t attr) |
Destroy a space attr. | |
globus_result_t | globus_callback_space_attr_set_behavior (globus_callback_space_attr_t attr, globus_callback_space_behavior_t behavior) |
Set the behavior of a space. | |
globus_result_t | globus_callback_space_attr_get_behavior (globus_callback_space_attr_t attr, globus_callback_space_behavior_t *behavior) |
Get the behavior associated with an attr. | |
globus_result_t | globus_callback_space_get (globus_callback_space_t *space) |
Retrieve the space of a currently running callback. | |
int | globus_callback_space_get_depth (globus_callback_space_t space) |
Retrieve the current nesting level of a space. | |
globus_bool_t | globus_callback_space_is_single (globus_callback_space_t space) |
See if the specified space is a single threaded behavior space. | |
globus_result_t | globus_callback_space_register_signal_handler (int signum, globus_bool_t persist, globus_callback_func_t callback_func, void *callback_user_arg, globus_callback_space_t space) |
Fire a callback when the specified signal is received. | |
globus_result_t | globus_callback_unregister_signal_handler (int signum, globus_callback_func_t unregister_callback, void *unreg_arg) |
Unregister a signal handling callback. | |
void | globus_callback_add_wakeup_handler (void(*wakeup)(void *), void *user_arg) |
Register a wakeup handler with callback library. | |
Oneshot Callbacks | |
globus_result_t | globus_callback_space_register_oneshot (globus_callback_handle_t *callback_handle, const globus_reltime_t *delay_time, globus_callback_func_t callback_func, void *callback_user_arg, globus_callback_space_t space) |
Register a oneshot some delay from now. | |
Periodic Callbacks | |
globus_result_t | globus_callback_space_register_periodic (globus_callback_handle_t *callback_handle, const globus_reltime_t *delay_time, const globus_reltime_t *period, globus_callback_func_t callback_func, void *callback_user_arg, globus_callback_space_t space) |
Register a periodic callback. | |
globus_result_t | globus_callback_unregister (globus_callback_handle_t callback_handle, globus_callback_func_t unregister_callback, void *unreg_arg, globus_bool_t *active) |
Unregister a callback. | |
globus_result_t | globus_callback_adjust_oneshot (globus_callback_handle_t callback_handle, const globus_reltime_t *new_delay) |
Adjust the delay of a oneshot callback. | |
globus_result_t | globus_callback_adjust_period (globus_callback_handle_t callback_handle, const globus_reltime_t *new_period) |
Adjust the period of a periodic callback. | |
Callback Polling | |
void | globus_callback_space_poll (const globus_abstime_t *timestop, globus_callback_space_t space) |
Poll for ready callbacks. | |
void | globus_callback_signal_poll () |
Signal the poll. | |
Miscellaneous | |
globus_bool_t | globus_callback_get_timeout (globus_reltime_t *time_left) |
Get the amount of time left in a callback. | |
globus_bool_t | globus_callback_has_time_expired () |
See if there is remaining time in a callback. | |
globus_bool_t | globus_callback_was_restarted () |
See if a callback has been restarted. |
Globus Callback API.