globus_handle_table(3) | globus_common | globus_handle_table(3) |
NAME¶
globus_handle_table - Handle Table for Reference Counting Data
- Handle Table for Reference Counting Data.
SYNOPSIS¶
Macros¶
#define GLOBUS_NULL_HANDLE
Typedefs¶
typedef struct globus_l_handle_table_s *
globus_handle_table_t
Handle table abstract type. typedef int globus_handle_t
Handle abstract type. typedef void(* globus_handle_destructor_t) (void
*datum)
Handle datum destructor.
Functions¶
int globus_handle_table_init (globus_handle_table_t
*handle_table, globus_handle_destructor_t destructor)
int globus_handle_table_destroy (globus_handle_table_t
*handle_table)
Destroy a handle table. globus_handle_t
globus_handle_table_insert (globus_handle_table_t
*handle_table, void *value, int initial_refs)
globus_bool_t globus_handle_table_increment_reference_by
(globus_handle_table_t *handle_table, globus_handle_t handle,
unsigned int inc)
Increment the reference count for handle. globus_bool_t
globus_handle_table_decrement_reference (globus_handle_table_t
*handle_table, globus_handle_t handle)
Remove a reference to a handle. globus_bool_t
globus_handle_table_increment_reference (globus_handle_table_t
*handle_table, globus_handle_t handle)
Add a reference to a handle table entry. void *
globus_handle_table_lookup (globus_handle_table_t
*handle_table, globus_handle_t handle)
Resolve a handle its datum.
Detailed Description¶
Handle Table for Reference Counting Data.
The globus_handle_table_t abstraction provides a reference-counting handle table to automatically free data when there are no more references to it. Each datum in the globus_handle_table_t container has a count associated with it which may be incremented and decremented in single steps or by an increment. While a handle has any references to it, the globus_handle_table_lookup() will return the datum associated with the handle, otherwise it will return NULL. The value of a globus_handle_t is not reused until INT_MAX data have been inserted into the handle table.
Macro Definition Documentation¶
#define GLOBUS_NULL_HANDLE¶
Invalid handle value
Typedef Documentation¶
typedef void(* globus_handle_destructor_t) (void *datum)¶
Handle datum destructor.
Parameters
Function Documentation¶
globus_bool_t globus_handle_table_decrement_reference (globus_handle_table_t * handle_table, globus_handle_t handle)¶
Remove a reference to a handle. Remove a reference to a handle table entry, calling its destructor if no more references exist for the handle.
Parameters
handle
The handle to a datum to decrement the reference count for.
Returns
int globus_handle_table_destroy (globus_handle_table_t * handle_table)¶
Destroy a handle table. Destroy a handle table and call the destructor for all objects associated with it.
Parameters
globus_bool_t globus_handle_table_increment_reference (globus_handle_table_t * handle_table, globus_handle_t handle)¶
Add a reference to a handle table entry.
Parameters
handle
The handle to a datum to increment the reference count for.
Returns
globus_bool_t globus_handle_table_increment_reference_by (globus_handle_table_t * handle_table, globus_handle_t handle, unsigned int inc)¶
Increment the reference count for handle.
Parameters
handle
The handle to a datum to increment the reference count for.
inc The number of references to add the handle.
Returns
int globus_handle_table_init (globus_handle_table_t * handle_table, globus_handle_destructor_t destructor)¶
Initialize a table of unique reference counted handles.
Parameters
destructor Function to call to free the data associated with a handle when the handle's reference count reaches 0 or the handle table is destroyed.
globus_handle_t globus_handle_table_insert (globus_handle_table_t * handle_table, void * value, int initial_refs)¶
Insert a datum into a handle table
Insert a value into the handle table, and return a unique handle to it.
Parameters
value The value to insert into the table
initial_refs The initial reference count of this value in the table
Returns
void* globus_handle_table_lookup (globus_handle_table_t * handle_table, globus_handle_t handle)¶
Resolve a handle its datum.
Parameters
handle
The handle to a datum to resolve
Returns
Author¶
Generated automatically by Doxygen for globus_common from the source code.
Tue Jul 5 2022 | Version 18.13 |