| 
    Grid Community Toolkit
    6.2.1541705016
    
   | 
 
Macros | |
| #define | GLOBUS_CALLBACK_GLOBAL_SPACE | 
| Global callback space.  More... | |
Enumerations | |
| 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... | |
| #define GLOBUS_CALLBACK_GLOBAL_SPACE | 
Global callback space.
The 'global' space handle.
This is the default space handle implied if no spaces are explicitly created.
Callback space behaviors describe how a space behaves.
In a non-threaded build all spaces exhibit a behavior == _BEHAVIOR_SINGLE. Setting a specific behavior in this case is ignored.
In a threaded build, _BEHAVIOR_SINGLE retains all the rules and behaviors of a non-threaded build while _BEHAVIOR_THREADED makes the space act as the global space.
Setting a space's behavior to _BEHAVIOR_SINGLE guarantees that the poll protection will always be there and all callbacks are serialized and only kicked out when polled for. In a threaded build, it is still necessary to poll for callbacks in a _BEHAVIOR_SINGLE space. (globus_cond_wait() will take care of this for you also)
Setting a space's behavior to _BEHAVIOR_SERIALIZED guarantees that the poll protection will always be there and all callbacks are serialized. In a threaded build, it is NOT necessary to poll for callbacks in a _BEHAVIOR_SERIALIZED space. Callbacks in this space will be delivered as soon as possible, but only one outstanding (and unblocked) callback will be allowed at any time.
Setting a space's behavior to _BEHAVIOR_THREADED allows the user to have the poll protection provided by spaces when built non-threaded, yet, be fully threaded when built threaded (where poll protection is not needed)
| globus_result_t globus_callback_space_attr_destroy | ( | globus_callback_space_attr_t | attr | ) | 
Destroy a space attr.
| attr | attr to destroy, previously initialized with globus_callback_space_attr_init() | 
| 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.
Note: for a non-threaded build, this will always pass back a behavior == GLOBUS_CALLBACK_SPACE_BEHAVIOR_SINGLE.
| attr | attr on which to query behavior | 
| behavior | storage for the behavior | 
| globus_result_t globus_callback_space_attr_init | ( | globus_callback_space_attr_t * | attr | ) | 
Initialize a space attr.
Currently, the only attr to set is the behavior. The default behavior associated with this attr is GLOBUS_CALLBACK_SPACE_BEHAVIOR_SINGLE
| attr | storage for the intialized attr. Must be destroyed with globus_callback_space_attr_destroy() | 
| 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.
| attr | attr to associate behavior with | 
| behavior | desired behavior | 
| globus_result_t globus_callback_space_destroy | ( | globus_callback_space_t | space | ) | 
Destroy a reference to a user space.
This will destroy a reference to a previously initialized space. Space will not actually be destroyed until all callbacks registered with this space have been run and unregistered (if the user has a handle to that callback) AND all references (from globus_callback_space_reference()) have been destroyed.
| space | space to destroy, previously initialized by globus_callback_space_init() or referenced with globus_callback_space_reference() | 
| globus_result_t globus_callback_space_get | ( | globus_callback_space_t * | space | ) | 
Retrieve the space of a currently running callback.
| space | storage for the handle to the space currently running | 
| int globus_callback_space_get_depth | ( | globus_callback_space_t | space | ) | 
Retrieve the current nesting level of a space.
| space | The space to query. | 
| globus_result_t globus_callback_space_init | ( | globus_callback_space_t * | space, | 
| globus_callback_space_attr_t | attr | ||
| ) | 
Initialize a user space.
This creates a user space.
| space | storage for the initialized space handle. This must be destroyed with globus_callback_space_destroy() | 
| attr | a space attr descibing desired behaviors. If GLOBUS_NULL, the default behavior of GLOBUS_CALLBACK_SPACE_BEHAVIOR_SINGLE is assumed. This attr is copied into the space, so it is acceptable to destroy the attr as soon as it is no longer needed | 
| globus_bool_t globus_callback_space_is_single | ( | globus_callback_space_t | space | ) | 
See if the specified space is a single threaded behavior space.
| space | the space to query | 
| globus_result_t globus_callback_space_reference | ( | globus_callback_space_t | space | ) | 
Take a reference to a space.
A library which has been 'given' a space to provide callbacks on would use this to take a reference on the user's space. This prevents mayhem should a user destroy a space before the library is done with it. This reference should be destroyed with globus_callback_space_destroy() (think dup())
| space | space to reference | 
 1.8.14