hamsterdb API Documentation
hamsterdb_int.h
Go to the documentation of this file.00001
00018 #ifndef HAM_HAMSTERDB_INT_H__
00019 #define HAM_HAMSTERDB_INT_H__
00020
00021 #ifdef __cplusplus
00022 extern "C" {
00023 #endif
00024
00025 #include <ham/hamsterdb.h>
00026
00027
00042 HAM_EXPORT ham_status_t HAM_CALLCONV
00043 ham_check_integrity(ham_db_t *db, ham_txn_t *txn);
00044
00056 HAM_EXPORT void HAM_CALLCONV
00057 ham_set_context_data(ham_db_t *db, void *data);
00058
00068 HAM_EXPORT void * HAM_CALLCONV
00069 ham_get_context_data(ham_db_t *db);
00070
00071 struct ham_file_filter_t;
00072 typedef struct ham_file_filter_t ham_file_filter_t;
00073
00078 typedef ham_status_t (*ham_file_filter_before_write_cb_t)(ham_env_t *env,
00079 ham_file_filter_t *filter, ham_u8_t *file_data, ham_size_t file_size);
00080
00085 typedef ham_status_t (*ham_file_filter_after_read_cb_t)(ham_env_t *env,
00086 ham_file_filter_t *filter, ham_u8_t *file_data, ham_size_t file_size);
00087
00092 typedef void (*ham_file_filter_close_cb_t)(ham_env_t *env,
00093 ham_file_filter_t *filter);
00094
00109 struct ham_file_filter_t
00110 {
00112 void *userdata;
00113
00115 ham_file_filter_before_write_cb_t before_write_cb;
00116
00118 ham_file_filter_after_read_cb_t after_read_cb;
00119
00121 ham_file_filter_close_cb_t close_cb;
00122
00124 ham_u32_t _flags;
00125
00127 ham_file_filter_t *_next, *_prev;
00128
00129 };
00130
00143 HAM_EXPORT ham_status_t HAM_CALLCONV
00144 ham_env_add_file_filter(ham_env_t *env, ham_file_filter_t *filter);
00145
00159 HAM_EXPORT ham_status_t HAM_CALLCONV
00160 ham_env_remove_file_filter(ham_env_t *env, ham_file_filter_t *filter);
00161
00162 struct ham_record_filter_t;
00163 typedef struct ham_record_filter_t ham_record_filter_t;
00164
00169 typedef ham_status_t (*ham_record_filter_before_insert_cb_t)(ham_db_t *db,
00170 ham_record_filter_t *filter, ham_record_t *record);
00171
00176 typedef ham_status_t (*ham_record_filter_after_read_cb_t)(ham_db_t *db,
00177 ham_record_filter_t *filter, ham_record_t *record);
00178
00183 typedef void (*ham_record_filter_close_cb_t)(ham_db_t *db,
00184 ham_record_filter_t *filter);
00185
00200 struct ham_record_filter_t
00201 {
00203 void *userdata;
00204
00206 ham_record_filter_before_insert_cb_t before_insert_cb;
00207
00209 ham_record_filter_after_read_cb_t after_read_cb;
00210
00212 ham_record_filter_close_cb_t close_cb;
00213
00215 ham_u32_t _flags;
00216
00218 ham_record_filter_t *_next, *_prev;
00219
00220 };
00221
00234 HAM_EXPORT ham_status_t HAM_CALLCONV
00235 ham_add_record_filter(ham_db_t *db, ham_record_filter_t *filter);
00236
00250 HAM_EXPORT ham_status_t HAM_CALLCONV
00251 ham_remove_record_filter(ham_db_t *db, ham_record_filter_t *filter);
00252
00275 HAM_EXPORT ham_status_t HAM_CALLCONV
00276 ham_env_set_device(ham_env_t *env, void *device);
00277
00285 HAM_EXPORT ham_db_t * HAM_CALLCONV
00286 ham_cursor_get_database(ham_cursor_t *cursor);
00287
00288
00289 #ifdef __cplusplus
00290 }
00291 #endif
00292
00293 #endif