heimbase(3)

NAME
heimbase - Heimbase

 - Registers a DB type for use with heim_db_create().

SYNOPSIS

Detailed Description

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

Author

Generated automatically by Doxygen for Heimdal base library from the source code.