MicrofeedDatabase
[libmicrofeed-provider - Modules that are used in the provider side]

A database layer. More...

Typedefs

typedef struct
_MicrofeedDatabaseEnvironment 
MicrofeedDatabaseEnvironment
 Opaque data type representing a database environment which contains actual databases.
typedef struct _MicrofeedDatabase MicrofeedDatabase
 Opaque data type representing a database.
typedef struct
_MicrofeedDatabaseIndex 
MicrofeedDatabaseIndex
 Opaque data type representing a secondary index of a database.
typedef struct
_MicrofeedDatabaseIterator 
MicrofeedDatabaseIterator
 Opaque data type representing database iterator that iterates over the keys of the database.
typedef void(* MicrofeedDatabaseIndexFunction )(void *key, const size_t key_size, void *data, const size_t data_size, void **index_key, size_t *index_key_size)
 This function is called when a new item is added into a database.
typedef int(* MicrofeedDatabaseCompareFunction )(const void *key1, const size_t key1_size, const void *key2, const size_t key2_size)
 This function is called when two keys in a database are compared by the database engine.

Functions

MicrofeedDatabaseEnvironmentmicrofeed_database_environment_new (const char *name, const char *directory)
void microfeed_database_environment_free (MicrofeedDatabaseEnvironment *database_environment)
MicrofeedDatabaseEnvironmentmicrofeed_database_environment_ref (MicrofeedDatabaseEnvironment *database_environment)
void microfeed_database_environment_unref (MicrofeedDatabaseEnvironment *database_environment)
MicrofeedDatabasemicrofeed_database_environment_get_database (MicrofeedDatabaseEnvironment *database_environment, const char *name, MicrofeedDatabaseCompareFunction)
MicrofeedDatabaseIndexmicrofeed_database_get_index (MicrofeedDatabase *database, const char *name, MicrofeedDatabaseIndexFunction index_function)
void microfeed_database_free (MicrofeedDatabase *database)
MicrofeedDatabasemicrofeed_database_ref (MicrofeedDatabase *database)
void microfeed_database_unref (MicrofeedDatabase *database)
const char * microfeed_database_get_name (MicrofeedDatabase *database)
int microfeed_database_get_data (MicrofeedDatabase *database, const void *key, size_t key_size, void **data, size_t *data_size)
MicrofeedDatabaseIteratormicrofeed_database_iterate (MicrofeedDatabase *database, const void *start_key, size_t start_key_size, int backwards)
void microfeed_database_replace_data (MicrofeedDatabase *database, const void *key, size_t key_size, const void *data, size_t data_size)
void microfeed_database_replace_data_partial (MicrofeedDatabase *database, const void *key, size_t key_size, const void *data, size_t data_size, size_t offset)
void microfeed_database_remove_data (MicrofeedDatabase *database, const void *key, const size_t key_size)
void microfeed_database_remove_data_range (MicrofeedDatabase *database, const void *start_key, size_t start_key_size, const void *end_key, size_t end_key_size)
MicrofeedDatabasemicrofeed_database_index_get_database (MicrofeedDatabaseIndex *database_index)
const char * microfeed_database_index_get_name (MicrofeedDatabaseIndex *database_index)
int microfeed_database_index_get_data (MicrofeedDatabaseIndex *database_index, const void *index_key, size_t index_key_size, void **key, size_t *key_size, void **data, size_t *data_size)
int microfeed_database_get_data_partial (MicrofeedDatabase *database, const void *key, const size_t key_size, void *data, size_t *data_size, size_t offset)
MicrofeedDatabaseIteratormicrofeed_database_index_iterate (MicrofeedDatabaseIndex *database_index, const void *start_key, const size_t start_key_size, int backwards)
void microfeed_database_index_remove_data (MicrofeedDatabaseIndex *database_index, const void *key, size_t key_size)
void microfeed_database_index_remove_data_range (MicrofeedDatabaseIndex *database_index, const void *start_key, const size_t start_key_size, const void *end_key, const size_t end_key_size)
void microfeed_database_iterator_free (MicrofeedDatabaseIterator *iterator)
int microfeed_database_iterator_get (MicrofeedDatabaseIterator *iterator, const void **key, size_t *key_size, const void **data, size_t *data_size)
void microfeed_database_iterator_next (MicrofeedDatabaseIterator *iterator)

Detailed Description

A database layer.

This module is used internally by MicrofeedFeed. It is not accessed directly when developing a provider. However, it can be also utilized outside of the library implementation.


Typedef Documentation

Opaque data type representing a database.

Definition at line 27 of file microfeeddatabase.h.

typedef int(* MicrofeedDatabaseCompareFunction)(const void *key1, const size_t key1_size, const void *key2, const size_t key2_size)

This function is called when two keys in a database are compared by the database engine.

The function must return negative integer if key1 is less than key2, zero if key1 is equal than key2, and positive integer if key1 is greater than key2.

Parameters:
key1 The first key to compare.
key1_size The size of the first key.
key2 The second key to compare.
key2_size The size of the second key.
Returns:
Negative integer, zero or positive integer depending of the order of the keys.

Definition at line 66 of file microfeeddatabase.h.

Opaque data type representing a database environment which contains actual databases.

Definition at line 22 of file microfeeddatabase.h.

Opaque data type representing a secondary index of a database.

Definition at line 32 of file microfeeddatabase.h.

typedef void(* MicrofeedDatabaseIndexFunction)(void *key, const size_t key_size, void *data, const size_t data_size, void **index_key, size_t *index_key_size)

This function is called when a new item is added into a database.

The function must extract the index key from the given primary key and data and return it using the index_key and index_key_size parameters.

Parameters:
key The primary key of the added item.
key_size The size of the key.
data The data of the added item.
data_size The size of the data.
index_key [return] The index key of the item.
index_key_size [return] The size of the index key.

Definition at line 52 of file microfeeddatabase.h.

Opaque data type representing database iterator that iterates over the keys of the database.

Definition at line 37 of file microfeeddatabase.h.


Function Documentation

void microfeed_database_environment_free ( MicrofeedDatabaseEnvironment database_environment  ) 

MicrofeedDatabase* microfeed_database_environment_get_database ( MicrofeedDatabaseEnvironment database_environment,
const char *  name,
MicrofeedDatabaseCompareFunction   
)

MicrofeedDatabaseEnvironment* microfeed_database_environment_new ( const char *  name,
const char *  directory 
)

MicrofeedDatabaseEnvironment* microfeed_database_environment_ref ( MicrofeedDatabaseEnvironment database_environment  ) 

void microfeed_database_environment_unref ( MicrofeedDatabaseEnvironment database_environment  ) 

void microfeed_database_free ( MicrofeedDatabase database  ) 

int microfeed_database_get_data ( MicrofeedDatabase database,
const void *  key,
size_t  key_size,
void **  data,
size_t *  data_size 
)

int microfeed_database_get_data_partial ( MicrofeedDatabase database,
const void *  key,
const size_t  key_size,
void *  data,
size_t *  data_size,
size_t  offset 
)

MicrofeedDatabaseIndex* microfeed_database_get_index ( MicrofeedDatabase database,
const char *  name,
MicrofeedDatabaseIndexFunction  index_function 
)

const char* microfeed_database_get_name ( MicrofeedDatabase database  ) 

Definition at line 237 of file microfeeddatabase.c.

References _MicrofeedDatabase::name.

Referenced by microfeed_database_environment_new().

int microfeed_database_index_get_data ( MicrofeedDatabaseIndex database_index,
const void *  index_key,
size_t  index_key_size,
void **  key,
size_t *  key_size,
void **  data,
size_t *  data_size 
)

MicrofeedDatabase* microfeed_database_index_get_database ( MicrofeedDatabaseIndex database_index  ) 

Definition at line 403 of file microfeeddatabase.c.

References _MicrofeedDatabaseIndex::database.

const char* microfeed_database_index_get_name ( MicrofeedDatabaseIndex database_index  ) 

Definition at line 408 of file microfeeddatabase.c.

References _MicrofeedDatabaseIndex::name.

MicrofeedDatabaseIterator* microfeed_database_index_iterate ( MicrofeedDatabaseIndex database_index,
const void *  start_key,
const size_t  start_key_size,
int  backwards 
)

void microfeed_database_index_remove_data ( MicrofeedDatabaseIndex database_index,
const void *  key,
size_t  key_size 
)

void microfeed_database_index_remove_data_range ( MicrofeedDatabaseIndex database_index,
const void *  start_key,
const size_t  start_key_size,
const void *  end_key,
const size_t  end_key_size 
)

MicrofeedDatabaseIterator* microfeed_database_iterate ( MicrofeedDatabase database,
const void *  start_key,
size_t  start_key_size,
int  backwards 
)

void microfeed_database_iterator_free ( MicrofeedDatabaseIterator iterator  ) 

int microfeed_database_iterator_get ( MicrofeedDatabaseIterator iterator,
const void **  key,
size_t *  key_size,
const void **  data,
size_t *  data_size 
)

void microfeed_database_iterator_next ( MicrofeedDatabaseIterator iterator  ) 

MicrofeedDatabase* microfeed_database_ref ( MicrofeedDatabase database  ) 

void microfeed_database_remove_data ( MicrofeedDatabase database,
const void *  key,
const size_t  key_size 
)

void microfeed_database_remove_data_range ( MicrofeedDatabase database,
const void *  start_key,
size_t  start_key_size,
const void *  end_key,
size_t  end_key_size 
)

void microfeed_database_replace_data ( MicrofeedDatabase database,
const void *  key,
size_t  key_size,
const void *  data,
size_t  data_size 
)

void microfeed_database_replace_data_partial ( MicrofeedDatabase database,
const void *  key,
size_t  key_size,
const void *  data,
size_t  data_size,
size_t  offset 
)

void microfeed_database_unref ( MicrofeedDatabase database  ) 


Generated on Fri Jun 26 21:48:57 2009 for Microfeed by  doxygen 1.5.6