hamsterdb Embedded Database  2.1.7
Data Structures | Macros | Typedefs | Functions
hamsterdb.h File Reference

Include file for hamsterdb Embedded Storage. More...

#include <ham/types.h>

Go to the source code of this file.

Data Structures

struct  ham_record_t
 
struct  ham_key_t
 
struct  ham_parameter_t
 

Macros

#define HAM_API_REVISION   2
 
#define HAM_RECORD_USER_ALLOC   1
 
#define HAM_KEY_USER_ALLOC   1
 
#define HAM_TYPE_BINARY   0
 
#define HAM_TYPE_CUSTOM   1
 
#define HAM_TYPE_UINT8   3
 
#define HAM_TYPE_UINT16   5
 
#define HAM_TYPE_UINT32   7
 
#define HAM_TYPE_UINT64   9
 
#define HAM_TYPE_REAL32   11
 
#define HAM_TYPE_REAL64   12
 
#define HAM_SUCCESS   ( 0)
 
#define HAM_INV_RECORD_SIZE   ( -2)
 
#define HAM_INV_KEY_SIZE   ( -3)
 
#define HAM_INV_KEYSIZE   HAM_INV_KEY_SIZE
 
#define HAM_INV_PAGE_SIZE   ( -4)
 
#define HAM_INV_PAGESIZE   HAM_INV_PAGE_SIZE
 
#define HAM_OUT_OF_MEMORY   ( -6)
 
#define HAM_INV_PARAMETER   ( -8)
 
#define HAM_INV_FILE_HEADER   ( -9)
 
#define HAM_INV_FILE_VERSION   (-10)
 
#define HAM_KEY_NOT_FOUND   (-11)
 
#define HAM_DUPLICATE_KEY   (-12)
 
#define HAM_INTEGRITY_VIOLATED   (-13)
 
#define HAM_INTERNAL_ERROR   (-14)
 
#define HAM_WRITE_PROTECTED   (-15)
 
#define HAM_BLOB_NOT_FOUND   (-16)
 
#define HAM_IO_ERROR   (-18)
 
#define HAM_NOT_IMPLEMENTED   (-20)
 
#define HAM_FILE_NOT_FOUND   (-21)
 
#define HAM_WOULD_BLOCK   (-22)
 
#define HAM_NOT_READY   (-23)
 
#define HAM_LIMITS_REACHED   (-24)
 
#define HAM_ALREADY_INITIALIZED   (-27)
 
#define HAM_NEED_RECOVERY   (-28)
 
#define HAM_CURSOR_STILL_OPEN   (-29)
 
#define HAM_FILTER_NOT_FOUND   (-30)
 
#define HAM_TXN_CONFLICT   (-31)
 
#define HAM_KEY_ERASED_IN_TXN   (-32)
 
#define HAM_TXN_STILL_OPEN   (-33)
 
#define HAM_CURSOR_IS_NIL   (-100)
 
#define HAM_DATABASE_NOT_FOUND   (-200)
 
#define HAM_DATABASE_ALREADY_EXISTS   (-201)
 
#define HAM_DATABASE_ALREADY_OPEN   (-202)
 
#define HAM_ENVIRONMENT_ALREADY_OPEN   (-203)
 
#define HAM_LOG_INV_FILE_HEADER   (-300)
 
#define HAM_NETWORK_ERROR   (-400)
 
#define HAM_DEBUG_LEVEL_DEBUG   0
 
#define HAM_DEBUG_LEVEL_NORMAL   1
 
#define HAM_DEBUG_LEVEL_FATAL   3
 
#define HAM_DONT_LOCK   0xf0000000
 
#define HAM_TXN_READ_ONLY   1
 
#define HAM_TXN_TEMPORARY   2
 
#define HAM_ENABLE_FSYNC   0x00000001
 
#define HAM_READ_ONLY   0x00000004
 
#define HAM_IN_MEMORY   0x00000080
 
#define HAM_DISABLE_MMAP   0x00000200
 
#define HAM_RECORD_NUMBER   0x00002000
 
#define HAM_ENABLE_DUPLICATE_KEYS   0x00004000
 
#define HAM_ENABLE_DUPLICATES   HAM_ENABLE_DUPLICATE_KEYS
 
#define HAM_ENABLE_RECOVERY   0x00008000
 
#define HAM_AUTO_RECOVERY   0x00010000
 
#define HAM_ENABLE_TRANSACTIONS   0x00020000
 
#define HAM_CACHE_UNLIMITED   0x00040000
 
#define HAM_DISABLE_RECOVERY   0x00080000
 
#define HAM_IS_REMOTE_INTERNAL   0x00200000
 
#define HAM_DISABLE_RECLAIM_INTERNAL   0x00400000
 
#define HAM_FORCE_RECORDS_INLINE   0x00800000
 
#define HAM_FLUSH_WHEN_COMMITTED   0x01000000
 
#define HAM_OVERWRITE   0x0001
 
#define HAM_DUPLICATE   0x0002
 
#define HAM_DUPLICATE_INSERT_BEFORE   0x0004
 
#define HAM_DUPLICATE_INSERT_AFTER   0x0008
 
#define HAM_DUPLICATE_INSERT_FIRST   0x0010
 
#define HAM_DUPLICATE_INSERT_LAST   0x0020
 
#define HAM_DIRECT_ACCESS   0x0040
 
#define HAM_PARTIAL   0x0080
 
#define HAM_HINT_APPEND   0x00080000
 
#define HAM_HINT_PREPEND   0x00100000
 
#define HAM_HINTS_MASK   0x001F0000
 
#define HAM_ERASE_ALL_DUPLICATES   1
 
#define HAM_PARAM_CACHE_SIZE   0x00000100
 
#define HAM_PARAM_CACHESIZE   HAM_PARAM_CACHE_SIZE
 
#define HAM_PARAM_PAGE_SIZE   0x00000101
 
#define HAM_PARAM_PAGESIZE   HAM_PARAM_PAGE_SIZE
 
#define HAM_PARAM_KEY_SIZE   0x00000102
 
#define HAM_PARAM_KEYSIZE   HAM_PARAM_KEY_SIZE
 
#define HAM_PARAM_MAX_DATABASES   0x00000103
 
#define HAM_PARAM_KEY_TYPE   0x00000104
 
#define HAM_PARAM_LOG_DIRECTORY   0x00000105
 
#define HAM_PARAM_ENCRYPTION_KEY   0x00000106
 
#define HAM_PARAM_NETWORK_TIMEOUT_SEC   0x00000107
 
#define HAM_PARAM_RECORD_SIZE   0x00000108
 
#define HAM_RECORD_SIZE_UNLIMITED   ((ham_u32_t)-1)
 
#define HAM_KEY_SIZE_UNLIMITED   ((ham_u16_t)-1)
 
#define HAM_PARAM_FLAGS   0x00000200
 
#define HAM_PARAM_FILEMODE   0x00000201
 
#define HAM_PARAM_FILENAME   0x00000202
 
#define HAM_PARAM_DATABASE_NAME   0x00000203
 
#define HAM_PARAM_MAX_KEYS_PER_PAGE   0x00000204
 
#define HAM_PARAM_JOURNAL_COMPRESSION   0x1000
 
#define HAM_PARAM_RECORD_COMPRESSION   0x1001
 
#define HAM_PARAM_KEY_COMPRESSION   0x1002
 
#define HAM_COMPRESSOR_NONE   0
 
#define HAM_COMPRESSOR_ZLIB   1
 
#define HAM_COMPRESSOR_SNAPPY   2
 
#define HAM_COMPRESSOR_LZF   3
 
#define HAM_COMPRESSOR_LZO   4
 
#define HAM_AUTO_CLEANUP   1
 
#define HAM_DONT_CLEAR_LOG   2
 
#define HAM_TXN_AUTO_ABORT   4
 
#define HAM_TXN_AUTO_COMMIT   8
 
#define HAM_CURSOR_FIRST   0x0001
 
#define HAM_CURSOR_LAST   0x0002
 
#define HAM_CURSOR_NEXT   0x0004
 
#define HAM_CURSOR_PREVIOUS   0x0008
 
#define HAM_SKIP_DUPLICATES   0x0010
 
#define HAM_ONLY_DUPLICATES   0x0020
 
#define HAM_FIND_EXACT_MATCH   0x4000
 
#define HAM_FIND_LT_MATCH   0x1000
 
#define HAM_FIND_GT_MATCH   0x2000
 
#define HAM_FIND_LEQ_MATCH   (HAM_FIND_LT_MATCH | HAM_FIND_EXACT_MATCH)
 
#define HAM_FIND_GEQ_MATCH   (HAM_FIND_GT_MATCH | HAM_FIND_EXACT_MATCH)
 
#define HAM_FIND_NEAR_MATCH
 

Typedefs

typedef struct ham_db_t ham_db_t
 
typedef struct ham_env_t ham_env_t
 
typedef struct ham_cursor_t ham_cursor_t
 
typedef void HAM_CALLCONV(* ham_errhandler_fun )(int level, const char *message)
 
typedef struct ham_txn_t ham_txn_t
 
typedef int HAM_CALLCONV(* ham_compare_func_t )(ham_db_t *db, const ham_u8_t *lhs, ham_u32_t lhs_length, const ham_u8_t *rhs, ham_u32_t rhs_length)
 

Functions

HAM_EXPORT void HAM_CALLCONV ham_set_errhandler (ham_errhandler_fun f)
 
HAM_EXPORT const char *HAM_CALLCONV ham_strerror (ham_status_t status)
 
HAM_EXPORT void HAM_CALLCONV ham_get_version (ham_u32_t *major, ham_u32_t *minor, ham_u32_t *revision)
 
HAM_EXPORT void HAM_CALLCONV ham_get_license (const char **licensee, const char **product)
 
HAM_EXPORT ham_status_t
HAM_CALLCONV 
ham_env_create (ham_env_t **env, const char *filename, ham_u32_t flags, ham_u32_t mode, const ham_parameter_t *param)
 
HAM_EXPORT ham_status_t
HAM_CALLCONV 
ham_env_open (ham_env_t **env, const char *filename, ham_u32_t flags, const ham_parameter_t *param)
 
HAM_EXPORT ham_status_t
HAM_CALLCONV 
ham_env_get_parameters (ham_env_t *env, ham_parameter_t *param)
 
HAM_EXPORT ham_status_t
HAM_CALLCONV 
ham_env_create_db (ham_env_t *env, ham_db_t **db, ham_u16_t name, ham_u32_t flags, const ham_parameter_t *params)
 
HAM_EXPORT ham_status_t
HAM_CALLCONV 
ham_env_open_db (ham_env_t *env, ham_db_t **db, ham_u16_t name, ham_u32_t flags, const ham_parameter_t *params)
 
HAM_EXPORT ham_status_t
HAM_CALLCONV 
ham_env_rename_db (ham_env_t *env, ham_u16_t oldname, ham_u16_t newname, ham_u32_t flags)
 
HAM_EXPORT ham_status_t
HAM_CALLCONV 
ham_env_erase_db (ham_env_t *env, ham_u16_t name, ham_u32_t flags)
 
HAM_EXPORT ham_status_t
HAM_CALLCONV 
ham_env_flush (ham_env_t *env, ham_u32_t flags)
 
HAM_EXPORT ham_status_t
HAM_CALLCONV 
ham_env_get_database_names (ham_env_t *env, ham_u16_t *names, ham_u32_t *count)
 
HAM_EXPORT ham_status_t
HAM_CALLCONV 
ham_env_close (ham_env_t *env, ham_u32_t flags)
 
HAM_EXPORT ham_status_t ham_txn_begin (ham_txn_t **txn, ham_env_t *env, const char *name, void *reserved, ham_u32_t flags)
 
HAM_EXPORT const char * ham_txn_get_name (ham_txn_t *txn)
 
HAM_EXPORT ham_status_t ham_txn_commit (ham_txn_t *txn, ham_u32_t flags)
 
HAM_EXPORT ham_status_t ham_txn_abort (ham_txn_t *txn, ham_u32_t flags)
 
HAM_EXPORT ham_status_t
HAM_CALLCONV 
ham_db_get_error (ham_db_t *db)
 
HAM_EXPORT ham_status_t
HAM_CALLCONV 
ham_db_set_compare_func (ham_db_t *db, ham_compare_func_t foo)
 
HAM_EXPORT ham_status_t
HAM_CALLCONV 
ham_db_find (ham_db_t *db, ham_txn_t *txn, ham_key_t *key, ham_record_t *record, ham_u32_t flags)
 
HAM_EXPORT ham_status_t
HAM_CALLCONV 
ham_db_insert (ham_db_t *db, ham_txn_t *txn, ham_key_t *key, ham_record_t *record, ham_u32_t flags)
 
HAM_EXPORT ham_status_t
HAM_CALLCONV 
ham_db_erase (ham_db_t *db, ham_txn_t *txn, ham_key_t *key, ham_u32_t flags)
 
HAM_EXPORT ham_status_t
HAM_CALLCONV 
ham_db_get_key_count (ham_db_t *db, ham_txn_t *txn, ham_u32_t flags, ham_u64_t *keycount)
 
HAM_EXPORT ham_status_t
HAM_CALLCONV 
ham_db_get_parameters (ham_db_t *db, ham_parameter_t *param)
 
HAM_EXPORT ham_env_t *HAM_CALLCONV ham_db_get_env (ham_db_t *db)
 
HAM_EXPORT int HAM_CALLCONV ham_key_get_approximate_match_type (ham_key_t *key)
 
HAM_EXPORT ham_status_t
HAM_CALLCONV 
ham_db_close (ham_db_t *db, ham_u32_t flags)
 
HAM_EXPORT ham_status_t
HAM_CALLCONV 
ham_cursor_create (ham_cursor_t **cursor, ham_db_t *db, ham_txn_t *txn, ham_u32_t flags)
 
HAM_EXPORT ham_status_t
HAM_CALLCONV 
ham_cursor_clone (ham_cursor_t *src, ham_cursor_t **dest)
 
HAM_EXPORT ham_status_t
HAM_CALLCONV 
ham_cursor_move (ham_cursor_t *cursor, ham_key_t *key, ham_record_t *record, ham_u32_t flags)
 
HAM_EXPORT ham_status_t
HAM_CALLCONV 
ham_cursor_overwrite (ham_cursor_t *cursor, ham_record_t *record, ham_u32_t flags)
 
HAM_EXPORT ham_status_t
HAM_CALLCONV 
ham_cursor_find (ham_cursor_t *cursor, ham_key_t *key, ham_record_t *record, ham_u32_t flags)
 
HAM_EXPORT ham_status_t
HAM_CALLCONV 
ham_cursor_insert (ham_cursor_t *cursor, ham_key_t *key, ham_record_t *record, ham_u32_t flags)
 
HAM_EXPORT ham_status_t
HAM_CALLCONV 
ham_cursor_erase (ham_cursor_t *cursor, ham_u32_t flags)
 
HAM_EXPORT ham_status_t
HAM_CALLCONV 
ham_cursor_get_duplicate_count (ham_cursor_t *cursor, ham_u32_t *count, ham_u32_t flags)
 
HAM_EXPORT ham_status_t
HAM_CALLCONV 
ham_cursor_get_record_size (ham_cursor_t *cursor, ham_u64_t *size)
 
HAM_EXPORT ham_status_t
HAM_CALLCONV 
ham_cursor_close (ham_cursor_t *cursor)
 

Detailed Description

Include file for hamsterdb Embedded Storage.

Author
Christoph Rupp, chris.nosp@m.@cru.nosp@m.pp.de
Version
2.1.7

Definition in file hamsterdb.h.

Macro Definition Documentation

#define HAM_API_REVISION   2

The interface revision undefined: hamsterdb 1.x 1: hamsterdb 2.0 - ham_txn_begin() was changed 2: various interface updates for 2.0.6

Definition at line 122 of file hamsterdb.h.

#define HAM_KEY_USER_ALLOC   1

Flag for ham_key_t (only really useful in combination with ham_cursor_move, ham_cursor_find and ham_db_find)

Definition at line 250 of file hamsterdb.h.

Referenced by main().

#define HAM_RECORD_USER_ALLOC   1

Flag for ham_record_t (only really useful in combination with ham_cursor_move, ham_cursor_find and ham_db_find)

Definition at line 204 of file hamsterdb.h.

Typedef Documentation

typedef struct ham_cursor_t ham_cursor_t

Definition at line 152 of file hamsterdb.h.

typedef struct ham_db_t ham_db_t

Definition at line 131 of file hamsterdb.h.

typedef struct ham_env_t ham_env_t

Definition at line 140 of file hamsterdb.h.