hamsterdb Embedded Database 1.1.13
Data Fields

ham_key_t Struct Reference

#include <hamsterdb.h>

Data Fields

ham_u16_t size
void * data
ham_u32_t flags
ham_u32_t _flags

Detailed Description

A generic key.

A key represents key items in hamsterdb. Before using a key, it is important to initialize all key fields with zeroes, i.e. with the C library routines memset(3) or bzero(2).

hamsterdb usually uses keys to insert, delete or search for items. However, when using Database Cursors and the function ham_cursor_move, hamsterdb also returns keys. In this case, the pointer to the key data is provided in data. This pointer is only temporary and will be overwritten by subsequent calls to ham_cursor_move.

To avoid this, the calling application can allocate the data pointer. In this case, you have to set the flag HAM_KEY_USER_ALLOC. The size parameter will then return the size of the key. It's the responsibility of the caller to make sure that the data parameter is large enough for the key.

Definition at line 211 of file hamsterdb.h.


Field Documentation

For internal use

Definition at line 223 of file hamsterdb.h.

The data of the key

Definition at line 217 of file hamsterdb.h.

Referenced by ham::key::get_data(), ham::key::key(), main(), and ham::key::set_data().

The key flags; see HAM_KEY_USER_ALLOC

Definition at line 220 of file hamsterdb.h.

Referenced by ham::key::get_flags(), ham::key::key(), main(), and ham::key::set_flags().

The size of the key, in bytes

Definition at line 214 of file hamsterdb.h.

Referenced by ham::key::get_size(), ham::key::key(), main(), and ham::key::set_size().


The documentation for this struct was generated from the following file: