|
libqb
0.16.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. | |
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) |
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 | ) |
1.8.3