heimbase − Heimbase
− Registers a DB type for use with heim_db_create().
Registers a DB type for use with heim_db_create().
heim_db_register
Parameters
dbtype Name of DB type
data Private data argument to the dbtype’s openf
method
plugin Structure with DB type methods (function
pointers)
Backends that provide begin/commit/rollback methods must provide ACID semantics.
The registered DB type will have ACID semantics for backends that do not provide begin/commit/rollback methods but do provide lock/unlock and rdjournal/wrjournal methods (using a replay log journalling scheme).
If the registered DB type does not natively provide read vs. write transaction isolation but does provide a lock method then the DB will provide read/write transaction isolation.
Returns
ENOMEM on failure, else 0.
Open a database of the given dbtype.
Database type names can be composed of one or more pseudo-DB types and one concrete DB type joined with a ’+’ between each. For example: ’transaction+bdb’ might be a Berkeley DB with a layer above that provides transactions.
Options may be provided via a dict (an associative array). Existing options include:
• |
||
• |
||
• |
||
• |
||
• |
||
• |
Parameters
dbtype Name of DB type
dbname Name of DB (likely a file path)
options Options dict
db Output open DB handle
error Output error object
Returns
a DB handle
Clone (duplicate) an open DB handle.
This is useful for multi-threaded applications. Applications must synchronize access to any given DB handle.
Returns EBUSY if there is an open transaction for the input db.
Parameters
db Open DB handle
error Output error object
Returns
a DB handle
Open a transaction on the given db.
Parameters
db Open DB handle
error Output error object
Returns
0 on success, system error otherwise
Commit an open transaction on the given db.
Parameters
db Open DB handle
error Output error object
Returns
0 on success, system error otherwise
Rollback an open transaction on the given db.
Parameters
db Open DB handle
error Output error object
Returns
0 on success, system error otherwise
Get type ID of heim_db_t objects.
Lookup a key’s value in the DB.
Returns 0 on success, -1 if the key does not exist in the DB, or a system error number on failure.
Parameters
db Open DB handle
key Key
error Output error object
Returns
the value (retained), if there is one for the given key
Set a key’s value in the DB.
Parameters
db Open DB handle
key Key
value Value (if NULL the key will be deleted, but empty
is OK)
error Output error object
Returns
0 on success, system error otherwise
Delete a key and its value from the DB
Parameters
db Open DB handle
key Key
error Output error object
Returns
0 on success, system error otherwise
Iterate a callback function over keys and values from a DB.
Parameters
db Open DB handle
iter_data Callback function’s private data
iter_f Callback function, called once per-key/value pair
error Output error object
Get a node in a heim_object tree by path
Parameters
ptr tree
error error (output)
ap NULL-terminated va_list of heim_object_ts that form a
path
Returns
object (not retained) if found
Get a node in a tree by path, with retained reference
Parameters
ptr tree
error error (output)
ap NULL-terminated va_list of heim_object_ts that form a
path
Returns
retained object if found
Get a node in a tree by path
Parameters
ptr tree
error error (output)
... NULL-terminated va_list of heim_object_ts that form
a path
Returns
object (not retained) if found
Get a node in a tree by path, with retained reference
Parameters
ptr tree
error error (output)
... NULL-terminated va_list of heim_object_ts that form
a path
Returns
retained object if found
Create a path in a heim_object_t tree
Parameters
ptr the tree
size the size of the heim_dict_t nodes to be created
leaf leaf node to be added, if any
error error (output)
ap NULL-terminated of path component objects
Create a path of heim_dict_t interior nodes in a given heim_object_t tree, as necessary, and set/replace a leaf, if given (if leaf is NULL then the leaf is not deleted).
Returns
0 on success, else a system error
Create a path in a heim_object_t tree
Parameters
ptr the tree
size the size of the heim_dict_t nodes to be created
leaf leaf node to be added, if any
error error (output)
... NULL-terminated list of path component objects
Create a path of heim_dict_t interior nodes in a given heim_object_t tree, as necessary, and set/replace a leaf, if given (if leaf is NULL then the leaf is not deleted).
Returns
0 on success, else a system error
Delete leaf node named by a path in a heim_object_t tree
Parameters
ptr the tree
error error (output)
ap NULL-terminated list of path component objects
Dump a heimbase object to stderr (useful from the debugger!)
Parameters
obj object to dump using JSON or JSON-like format
Generated automatically by Doxygen for Heimdal base library from the source code.