Typedefs | |
typedef struct _MicrofeedDatabaseEnvironment | MicrofeedDatabaseEnvironment |
Opaque data type representing Microfeed database environment which contains the actual databases. | |
typedef struct _MicrofeedDatabase | MicrofeedDatabase |
Opaque data type representing Microfeed database. | |
typedef struct _MicrofeedDatabaseIndex | MicrofeedDatabaseIndex |
Opaque data type representing a secondary index of Microfeed database. | |
typedef struct _MicrofeedDatabaseIterator | MicrofeedDatabaseIterator |
Opaque data type representing Microfeed 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) |
typedef int(* | MicrofeedDatabaseCompareFunction )(const void *key1, const size_t key1_size, const void *key2, const size_t key2_size) |
Functions | |
MicrofeedDatabaseEnvironment * | microfeed_database_environment_new (const char *name, const char *directory) |
void | microfeed_database_environment_free (MicrofeedDatabaseEnvironment *database_environment) |
MicrofeedDatabaseEnvironment * | microfeed_database_environment_ref (MicrofeedDatabaseEnvironment *database_environment) |
void | microfeed_database_environment_unref (MicrofeedDatabaseEnvironment *database_environment) |
MicrofeedDatabase * | microfeed_database_environment_get_database (MicrofeedDatabaseEnvironment *database_environment, const char *name, MicrofeedDatabaseCompareFunction) |
MicrofeedDatabaseIndex * | microfeed_database_get_index (MicrofeedDatabase *database, const char *name, MicrofeedDatabaseIndexFunction index_function) |
void | microfeed_database_free (MicrofeedDatabase *database) |
MicrofeedDatabase * | microfeed_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) |
MicrofeedDatabaseIterator * | microfeed_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) |
MicrofeedDatabase * | microfeed_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) |
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) |
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) |
typedef struct _MicrofeedDatabase MicrofeedDatabase |
Opaque data type representing Microfeed database.
Definition at line 23 of file microfeeddatabase.h.
typedef int(* MicrofeedDatabaseCompareFunction)(const void *key1, const size_t key1_size, const void *key2, const size_t key2_size) |
Definition at line 36 of file microfeeddatabase.h.
typedef struct _MicrofeedDatabaseEnvironment MicrofeedDatabaseEnvironment |
Opaque data type representing Microfeed database environment which contains the actual databases.
Definition at line 18 of file microfeeddatabase.h.
typedef struct _MicrofeedDatabaseIndex MicrofeedDatabaseIndex |
Opaque data type representing a secondary index of Microfeed database.
Definition at line 28 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) |
Definition at line 35 of file microfeeddatabase.h.
typedef struct _MicrofeedDatabaseIterator MicrofeedDatabaseIterator |
Opaque data type representing Microfeed database iterator that iterates over the keys of the database.
Definition at line 33 of file microfeeddatabase.h.
void microfeed_database_environment_free | ( | MicrofeedDatabaseEnvironment * | database_environment | ) |
Definition at line 81 of file microfeeddatabase.c.
References _MicrofeedDatabaseEnvironment::db_env, microfeed_memory_free(), and _MicrofeedDatabaseEnvironment::name.
Referenced by microfeed_database_environment_unref().
MicrofeedDatabase* microfeed_database_environment_get_database | ( | MicrofeedDatabaseEnvironment * | database_environment, | |
const char * | name, | |||
MicrofeedDatabaseCompareFunction | ||||
) |
Definition at line 110 of file microfeeddatabase.c.
References _MicrofeedDatabase::compare_function, _MicrofeedDatabase::database_environment, _MicrofeedDatabaseEnvironment::databases, _MicrofeedDatabase::db, _MicrofeedDatabaseEnvironment::db_env, _MicrofeedDatabase::indices, _MicrofeedDatabase::iterators, microfeed_database_ref(), microfeed_memory_allocate, microfeed_memory_free(), microfeed_mutex_lock(), microfeed_mutex_new(), microfeed_mutex_unlock(), microfeed_store_get, microfeed_store_insert(), _MicrofeedDatabase::mutex, _MicrofeedDatabaseEnvironment::mutex, _MicrofeedDatabase::name, _MicrofeedDatabaseEnvironment::name, _MicrofeedDatabaseEnvironment::reference_count, and _MicrofeedDatabase::reference_count.
Referenced by microfeed_feed_new().
MicrofeedDatabaseEnvironment* microfeed_database_environment_new | ( | const char * | name, | |
const char * | directory | |||
) |
Definition at line 63 of file microfeeddatabase.c.
References _MicrofeedDatabaseEnvironment::databases, _MicrofeedDatabaseEnvironment::db_env, microfeed_database_get_name(), microfeed_memory_allocate, microfeed_memory_free(), microfeed_mutex_new(), microfeed_store_new_sorted(), _MicrofeedDatabaseEnvironment::mutex, _MicrofeedDatabaseEnvironment::name, and _MicrofeedDatabaseEnvironment::reference_count.
Referenced by microfeed_publisher_new().
MicrofeedDatabaseEnvironment* microfeed_database_environment_ref | ( | MicrofeedDatabaseEnvironment * | database_environment | ) |
Definition at line 88 of file microfeeddatabase.c.
References microfeed_mutex_lock(), microfeed_mutex_unlock(), _MicrofeedDatabaseEnvironment::mutex, and _MicrofeedDatabaseEnvironment::reference_count.
void microfeed_database_environment_unref | ( | MicrofeedDatabaseEnvironment * | database_environment | ) |
Definition at line 98 of file microfeeddatabase.c.
References microfeed_database_environment_free(), microfeed_mutex_lock(), microfeed_mutex_unlock(), _MicrofeedDatabaseEnvironment::mutex, and _MicrofeedDatabaseEnvironment::reference_count.
Referenced by microfeed_database_free().
void microfeed_database_free | ( | MicrofeedDatabase * | database | ) |
Definition at line 183 of file microfeeddatabase.c.
References _MicrofeedDatabase::database_environment, _MicrofeedDatabaseEnvironment::databases, _MicrofeedDatabase::db, _MicrofeedDatabaseIndex::db, _MicrofeedDatabase::indices, microfeed_database_environment_unref(), microfeed_memory_free(), microfeed_mutex_free(), microfeed_mutex_lock(), microfeed_mutex_unlock(), microfeed_store_remove(), _MicrofeedDatabase::mutex, _MicrofeedDatabaseEnvironment::mutex, _MicrofeedDatabase::name, _MicrofeedDatabaseIndex::name, and _MicrofeedDatabaseIndex::next.
Referenced by microfeed_database_unref().
int microfeed_database_get_data | ( | MicrofeedDatabase * | database, | |
const void * | key, | |||
size_t | key_size, | |||
void ** | data, | |||
size_t * | data_size | |||
) |
Definition at line 241 of file microfeeddatabase.c.
References _MicrofeedDatabase::db, microfeed_mutex_lock(), microfeed_mutex_unlock(), and _MicrofeedDatabase::mutex.
Referenced by microfeed_feed_replace_item(), microfeed_feed_send_item_data(), and microfeed_feed_unset_item_status().
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 | |||
) |
Definition at line 265 of file microfeeddatabase.c.
References _MicrofeedDatabase::db, microfeed_mutex_lock(), microfeed_mutex_unlock(), and _MicrofeedDatabase::mutex.
Referenced by microfeed_feed_ref_item_data(), and microfeed_feed_unref_item_data().
MicrofeedDatabaseIndex* microfeed_database_get_index | ( | MicrofeedDatabase * | database, | |
const char * | name, | |||
MicrofeedDatabaseIndexFunction | index_function | |||
) |
Definition at line 144 of file microfeeddatabase.c.
References _MicrofeedDatabaseIndex::database, _MicrofeedDatabase::database_environment, _MicrofeedDatabase::db, _MicrofeedDatabaseIndex::db, _MicrofeedDatabaseEnvironment::db_env, _MicrofeedDatabaseIndex::index_function, _MicrofeedDatabase::indices, microfeed_memory_allocate, microfeed_memory_free(), microfeed_mutex_lock(), microfeed_mutex_unlock(), microfeed_util_string_concatenate(), _MicrofeedDatabase::mutex, _MicrofeedDatabaseEnvironment::name, _MicrofeedDatabase::name, _MicrofeedDatabaseIndex::name, and _MicrofeedDatabaseIndex::next.
Referenced by microfeed_feed_new().
const char* microfeed_database_get_name | ( | MicrofeedDatabase * | database | ) |
Definition at line 236 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 | |||
) |
Definition at line 410 of file microfeeddatabase.c.
References _MicrofeedDatabaseIndex::database, _MicrofeedDatabaseIndex::db, microfeed_mutex_lock(), microfeed_mutex_unlock(), and _MicrofeedDatabase::mutex.
Referenced by microfeed_feed_get_item(), microfeed_feed_iterator_jump_and_remove_previous_items(), microfeed_feed_remove_item(), microfeed_feed_replace_item(), and microfeed_feed_send_item_data().
MicrofeedDatabase* microfeed_database_index_get_database | ( | MicrofeedDatabaseIndex * | database_index | ) |
const char* microfeed_database_index_get_name | ( | MicrofeedDatabaseIndex * | database_index | ) |
MicrofeedDatabaseIterator* microfeed_database_index_iterate | ( | MicrofeedDatabaseIndex * | database_index, | |
const void * | start_key, | |||
const size_t | start_key_size, | |||
int | backwards | |||
) |
Definition at line 440 of file microfeeddatabase.c.
References _MicrofeedDatabaseIterator::backwards, _MicrofeedDatabaseIterator::data, _MicrofeedDatabaseIterator::database, _MicrofeedDatabaseIndex::database, _MicrofeedDatabaseIndex::db, _MicrofeedDatabaseIterator::index_db, _MicrofeedDatabaseIterator::index_key, _MicrofeedDatabase::iterators, _MicrofeedDatabaseIterator::key, microfeed_memory_allocate, microfeed_mutex_lock(), microfeed_mutex_unlock(), _MicrofeedDatabase::mutex, _MicrofeedDatabaseIterator::next, _MicrofeedDatabaseIterator::next_function, and _MicrofeedDatabaseIterator::previous.
Referenced by microfeed_feed_iterate().
void microfeed_database_index_remove_data | ( | MicrofeedDatabaseIndex * | database_index, | |
const void * | key, | |||
size_t | key_size | |||
) |
Definition at line 480 of file microfeeddatabase.c.
References _MicrofeedDatabaseIndex::database, and _MicrofeedDatabaseIndex::db.
Referenced by microfeed_feed_remove_item(), microfeed_feed_replace_item(), and microfeed_feed_unref_item_data().
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 | |||
) |
Definition at line 484 of file microfeeddatabase.c.
References _MicrofeedDatabaseIndex::database, and _MicrofeedDatabaseIndex::db.
Referenced by microfeed_feed_iterator_jump_and_remove_previous_items().
MicrofeedDatabaseIterator* microfeed_database_iterate | ( | MicrofeedDatabase * | database, | |
const void * | start_key, | |||
size_t | start_key_size, | |||
int | backwards | |||
) |
Definition at line 293 of file microfeeddatabase.c.
References _MicrofeedDatabaseIterator::backwards, _MicrofeedDatabaseIterator::data, _MicrofeedDatabaseIterator::database, _MicrofeedDatabaseIterator::index_db, _MicrofeedDatabase::iterators, _MicrofeedDatabaseIterator::key, microfeed_memory_allocate, microfeed_mutex_lock(), microfeed_mutex_unlock(), _MicrofeedDatabase::mutex, _MicrofeedDatabaseIterator::next, _MicrofeedDatabaseIterator::next_function, and _MicrofeedDatabaseIterator::previous.
Referenced by microfeed_feed_iterate_timeline(), and microfeed_feed_unset_item_statuses().
void microfeed_database_iterator_free | ( | MicrofeedDatabaseIterator * | iterator | ) |
Definition at line 488 of file microfeeddatabase.c.
References _MicrofeedDatabaseIterator::database, _MicrofeedDatabase::iterators, microfeed_memory_free(), microfeed_mutex_lock(), microfeed_mutex_unlock(), _MicrofeedDatabase::mutex, _MicrofeedDatabaseIterator::next, and _MicrofeedDatabaseIterator::previous.
Referenced by microfeed_feed_iterator_free(), and microfeed_feed_unset_item_statuses().
int microfeed_database_iterator_get | ( | MicrofeedDatabaseIterator * | iterator, | |
const void ** | key, | |||
size_t * | key_size, | |||
const void ** | data, | |||
size_t * | data_size | |||
) |
Definition at line 507 of file microfeeddatabase.c.
References _MicrofeedDatabaseIterator::data, _MicrofeedDatabaseIterator::database, _MicrofeedDatabaseIterator::key, microfeed_mutex_lock(), microfeed_mutex_unlock(), and _MicrofeedDatabase::mutex.
Referenced by microfeed_feed_iterator_get_item(), microfeed_feed_iterator_jump_and_remove_previous_items(), and microfeed_feed_unset_item_statuses().
void microfeed_database_iterator_next | ( | MicrofeedDatabaseIterator * | iterator | ) |
Definition at line 525 of file microfeeddatabase.c.
References _MicrofeedDatabaseIterator::database, microfeed_mutex_lock(), microfeed_mutex_unlock(), _MicrofeedDatabase::mutex, and _MicrofeedDatabaseIterator::next_function.
Referenced by microfeed_feed_iterator_jump_and_remove_previous_items(), microfeed_feed_iterator_next(), and microfeed_feed_unset_item_statuses().
MicrofeedDatabase* microfeed_database_ref | ( | MicrofeedDatabase * | database | ) |
Definition at line 214 of file microfeeddatabase.c.
References microfeed_mutex_lock(), microfeed_mutex_unlock(), _MicrofeedDatabase::mutex, and _MicrofeedDatabase::reference_count.
Referenced by microfeed_database_environment_get_database().
void microfeed_database_remove_data | ( | MicrofeedDatabase * | database, | |
const void * | key, | |||
const size_t | key_size | |||
) |
Definition at line 392 of file microfeeddatabase.c.
References _MicrofeedDatabase::db.
Referenced by microfeed_feed_remove_item(), microfeed_feed_unref_item_data(), microfeed_feed_unset_item_status(), and microfeed_feed_unset_item_statuses().
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 | |||
) |
Definition at line 396 of file microfeeddatabase.c.
References _MicrofeedDatabase::db.
Referenced by microfeed_feed_iterator_jump_and_remove_previous_items().
void microfeed_database_replace_data | ( | MicrofeedDatabase * | database, | |
const void * | key, | |||
size_t | key_size, | |||
const void * | data, | |||
size_t | data_size | |||
) |
Definition at line 345 of file microfeeddatabase.c.
References _MicrofeedDatabase::database_environment, and _MicrofeedDatabase::db.
Referenced by microfeed_feed_ref_item_data(), microfeed_feed_replace_item(), microfeed_feed_unset_item_status(), and microfeed_feed_unset_item_statuses().
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 | |||
) |
Definition at line 367 of file microfeeddatabase.c.
References _MicrofeedDatabase::database_environment, and _MicrofeedDatabase::db.
Referenced by microfeed_feed_ref_item_data(), and microfeed_feed_unref_item_data().
void microfeed_database_unref | ( | MicrofeedDatabase * | database | ) |
Definition at line 224 of file microfeeddatabase.c.
References microfeed_database_free(), microfeed_mutex_lock(), microfeed_mutex_unlock(), _MicrofeedDatabase::mutex, and _MicrofeedDatabase::reference_count.
Referenced by microfeed_feed_free().