logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

globus_handle_table - Handle Table for Reference Counting Data

Author

       Generated automatically by Doxygen for globus_common from the source code.

globus_common                                     Version 18.14                           globus_handle_table(3)

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.

Function Documentation

globus_bool_tglobus_handle_table_decrement_reference(globus_handle_table_t*handle_table,globus_handle_thandle)
       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.

       Parametershandle_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.

   intglobus_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.

       Parametershandle_table Pointer to the handle table to destroy

   globus_bool_tglobus_handle_table_increment_reference(globus_handle_table_t*handle_table,globus_handle_thandle)
       Add a reference to a handle table entry.

       Parametershandle_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_tglobus_handle_table_increment_reference_by(globus_handle_table_t*handle_table,globus_handle_thandle,unsignedintinc)
       Increment the reference count for handle.

       Parametershandle_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.

   intglobus_handle_table_init(globus_handle_table_t*handle_table,globus_handle_destructor_tdestructor)
       Initialize a table of unique reference counted handles.

       Parametershandle_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_tglobus_handle_table_insert(globus_handle_table_t*handle_table,void*value,intinitial_refs)
       Insert a datum into a handle table

       Insert a value into the handle table, and return a unique handle to it.

       Parametershandle_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_thandle)
       Resolve a handle its datum.

       Parametershandle_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.

Macro Definition Documentation

#defineGLOBUS_NULL_HANDLE
       Invalid handle value

Name

       globus_handle_table - Handle Table for Reference Counting Data

        - Handle Table for Reference Counting Data.

Synopsis

Macros
       #define GLOBUS_NULL_HANDLETypedefs
       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_tglobus_handle_table_insert (globus_handle_table_t *handle_table, void *value, int
           initial_refs)
       globus_bool_tglobus_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_tglobus_handle_table_decrement_reference (globus_handle_table_t *handle_table,
           globus_handle_t handle)
           Remove a reference to a handle.
       globus_bool_tglobus_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.

Typedef Documentation

typedefvoid(*globus_handle_destructor_t)(void*datum)
       Handle datum destructor.

       Parametersdatum Datum to destroy

See Also