libqb
2.0.0
|
The handle database is for reference counting objects. More...
Data Structures | |
struct | qb_hdb_handle |
struct | qb_hdb |
Macros | |
#define | _GNU_SOURCE |
#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. More... | |
Typedefs | |
typedef uint64_t | qb_handle_t |
Generic handle type is 64 bits. More... | |
Functions | |
void | qb_hdb_create (struct qb_hdb *hdb) |
Create a new database. More... | |
void | qb_hdb_destroy (struct qb_hdb *hdb) |
Destroy a handle database. More... | |
int32_t | qb_hdb_handle_create (struct qb_hdb *hdb, int32_t instance_size, qb_handle_t *handle_id_out) |
Create a new handle. More... | |
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. More... | |
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. More... | |
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. More... | |
int32_t | qb_hdb_handle_destroy (struct qb_hdb *hdb, qb_handle_t handle_in) |
Request the destruction of the object. More... | |
int32_t | qb_hdb_handle_refcount_get (struct qb_hdb *hdb, qb_handle_t handle_in) |
Get the current refcount. More... | |
void | qb_hdb_iterator_reset (struct qb_hdb *hdb) |
Reset the iterator. More... | |
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. More... | |
uint32_t | qb_hdb_base_convert (qb_handle_t handle) |
uint64_t | qb_hdb_nocheck_convert (uint32_t handle) |
The handle database is for reference counting objects.
#define _GNU_SOURCE |
#define QB_HDB_D_FORMAT "%" PRIu64 |
#define QB_HDB_DECLARE | ( | database_name, | |
destructor_function | |||
) |
Convience macro for declaring a file scoped handle database.
#define QB_HDB_X_FORMAT "%" PRIx64 |
typedef uint64_t qb_handle_t |
Generic handle type is 64 bits.
uint32_t qb_hdb_base_convert | ( | qb_handle_t | handle | ) |
void qb_hdb_create | ( | struct qb_hdb * | hdb | ) |
Create a new database.
hdb | the database to init. |
void qb_hdb_destroy | ( | struct qb_hdb * | hdb | ) |
Destroy a handle database.
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.
hdb | the database instance |
instance_size | size of the object to malloc |
handle_id_out | new handle |
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.
handle_in | the handle |
hdb | the database instance |
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.
handle_in | the handle |
hdb | the database instance |
instance | (out) pointer to the desired object. |
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.
handle_in | the handle |
hdb | the database instance |
instance | (out) pointer to the desired object. |
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.
handle_in | the handle |
hdb | the database instance |
int32_t qb_hdb_handle_refcount_get | ( | struct qb_hdb * | hdb, |
qb_handle_t | handle_in | ||
) |
Get the current refcount.
handle_in | the handle |
hdb | the database instance |
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()
hdb | the database instance |
handle | (out) the handle |
instance | (out) pointer to the desired object. |
void qb_hdb_iterator_reset | ( | struct qb_hdb * | hdb | ) |
Reset the iterator.
hdb | the database instance |
uint64_t qb_hdb_nocheck_convert | ( | uint32_t | handle | ) |