Provided by: libglobus-common-doc_18.14-1.1build1_all bug

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
           datum Datum to destroy

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_table The table that the handle was created in.
           handle
            The handle to a datum to decrement the reference count for.

       Returns
           The globus_handle_table_decrement_reference() function returns a boolean value
           indicating whether the handle still references a valid datum.

   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
           handle_table Pointer to the handle table to destroy

   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_table The table that the handle was created in.
           handle
            The handle to a datum to increment the reference count for.

       Returns
           The globus_handle_table_increment_reference() function returns a boolean value
           indicating whether the handle still references a valid datum.

   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_table The table that the handle was created in.
           handle
            The handle to a datum to increment the reference count for.
           inc The number of references to add the handle.

       Returns
           The globus_handle_table_increment_reference_by() function returns a boolean value
           indicating whether the handle still references a valid datum.

   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
           handle_table the table of unique handles we want to use.
           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
           handle_table Handle table to add the value to
           value The value to insert into the table
           initial_refs The initial reference count of this value in the table

       Returns
           The globus_handle_table_insert() function returns a unique handle to value.

   void * globus_handle_table_lookup (globus_handle_table_t * handle_table, globus_handle_t
       handle)
       Resolve a handle its datum.

       Parameters
           handle_table The table that the handle was created in.
           handle
            The handle to a datum to resolve

       Returns
           The globus_handle_table_lookup() function returns the datum associated with the handle
           in the handle table, or NULL if the handle does not reference valid data.

Author

       Generated automatically by Doxygen for globus_common from the source code.