qbhdb.h man page on Scientific
[printable version]
qbhdb.h(3) libqb qbhdb.h(3)
NAME
qbhdb.h -
The handle database is for reference counting objects.
SYNOPSIS
#include <stdlib.h>
#include <stdint.h>
#include <inttypes.h>
#include <qb/qbarray.h>
Data Structures
struct qb_hdb_handle
struct qb_hdb
Defines
#define QB_HDB_D_FORMAT '%'PRIu64
#define QB_HDB_X_FORMAT '%'PRIx64
#define QB_HDB_DECLARE(database_name, destructor_function)
Convience macro for declaring a file scoped handle database.
Typedefs
typedef uint64_t qb_handle_t
Generic handle type is 64 bits.
Functions
void qb_hdb_create (struct qb_hdb *hdb)
Create a new database.
void qb_hdb_destroy (struct qb_hdb *hdb)
Destroy a handle database.
int32_t qb_hdb_handle_create (struct qb_hdb *hdb, int32_t
instance_size, qb_handle_t *handle_id_out)
Create a new handle.
int32_t qb_hdb_handle_get (struct qb_hdb *hdb, qb_handle_t handle_in,
void **instance)
Get the instance associated with this handle and increase it's
refcount.
int32_t qb_hdb_handle_get_always (struct qb_hdb *hdb, qb_handle_t
handle_in, void **instance)
Get the instance associated with this handle and increase it's
refcount.
int32_t qb_hdb_handle_put (struct qb_hdb *hdb, qb_handle_t handle_in)
Put the instance associated with this handle and decrease it's
refcount.
int32_t qb_hdb_handle_destroy (struct qb_hdb *hdb, qb_handle_t
handle_in)
Request the destruction of the object.
int32_t qb_hdb_handle_refcount_get (struct qb_hdb *hdb, qb_handle_t
handle_in)
Get the current refcount.
void qb_hdb_iterator_reset (struct qb_hdb *hdb)
Reset the iterator.
int32_t qb_hdb_iterator_next (struct qb_hdb *hdb, void **instance,
qb_handle_t *handle)
Get the next object and increament it's refcount.
uint32_t qb_hdb_base_convert (qb_handle_t handle)
uint64_t qb_hdb_nocheck_convert (uint32_t handle)
Detailed Description
The handle database is for reference counting objects.
Define Documentation
#define QB_HDB_D_FORMAT '%'PRIu64
#define QB_HDB_DECLARE(database_name, destructor_function) Value:
static struct qb_hdb (database_name) = { .handle_count = 0, .handles = NULL, .iterator = 0, .destructor = destructor_function, .first_run = QB_TRUE }; .fi
Convience macro for declaring a file scoped handle database. .PP
QB_HDB_DECLARE(my_handle_database, NULL);
#define QB_HDB_X_FORMAT '%'PRIx64
Typedef Documentation
typedef uint64_t qb_handle_t
Generic handle type is 64 bits.
Function Documentation
uint32_t qb_hdb_base_convert (qb_handle_t handle)
void qb_hdb_create (struct qb_hdb * hdb)
Create a new database. Parameters:
hdb the database to init.
void qb_hdb_destroy (struct qb_hdb * hdb)
Destroy a handle database. Parameters:
hdb the database to destroy.
int32_t qb_hdb_handle_create (struct qb_hdb * hdb, int32_t instance_size,
qb_handle_t * handle_id_out)
Create a new handle. Parameters:
hdb the database instance
instance_size size of the object to malloc
handle_id_out new handle
Returns:
(0 == ok, -errno faliure)
int32_t qb_hdb_handle_destroy (struct qb_hdb * hdb, qb_handle_t handle_in)
Request the destruction of the object. When the refcount is 0, it will
be destroyed.
Parameters:
handle_in the handle
hdb the database instance
Returns:
(0 == ok, -errno faliure)
int32_t qb_hdb_handle_get (struct qb_hdb * hdb, qb_handle_t handle_in, void
** instance)
Get the instance associated with this handle and increase it's
refcount. Parameters:
handle_in the handle
hdb the database instance
instance (out) pointer to the desired object.
Returns:
(0 == ok, -errno faliure)
int32_t qb_hdb_handle_get_always (struct qb_hdb * hdb, qb_handle_t
handle_in, void ** instance)
Get the instance associated with this handle and increase it's
refcount. Parameters:
handle_in the handle
hdb the database instance
instance (out) pointer to the desired object.
Returns:
(0 == ok, -errno faliure)
int32_t qb_hdb_handle_put (struct qb_hdb * hdb, qb_handle_t handle_in)
Put the instance associated with this handle and decrease it's
refcount. Parameters:
handle_in the handle
hdb the database instance
Returns:
(0 == ok, -errno faliure)
int32_t qb_hdb_handle_refcount_get (struct qb_hdb * hdb, qb_handle_t
handle_in)
Get the current refcount. Parameters:
handle_in the handle
hdb the database instance
Returns:
(>= 0 is the refcount, -errno faliure)
int32_t qb_hdb_iterator_next (struct qb_hdb * hdb, void ** instance,
qb_handle_t * handle)
Get the next object and increament it's refcount. Remember to call
qb_hdb_handle_put()
Parameters:
hdb the database instance
handle (out) the handle
instance (out) pointer to the desired object.
Returns:
(0 == ok, -errno faliure)
void qb_hdb_iterator_reset (struct qb_hdb * hdb)
Reset the iterator. Parameters:
hdb the database instance
uint64_t qb_hdb_nocheck_convert (uint32_t handle)
Author
Generated automatically by Doxygen for libqb from the source code.
Version 0.16.0 21 Nov 2013 qbhdb.h(3)
[top]
List of man pages available for Scientific
Copyright (c) for man pages and the logo by the respective OS vendor.
For those who want to learn more, the polarhome community provides shell access and support.
[legal]
[privacy]
[GNU]
[policy]
[cookies]
[netiquette]
[sponsors]
[FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
|
Vote for polarhome
|