contact | forum | legal | impressum | privacy

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 } // extern "C"
00291 #endif 
00292 
00293 #endif /* HAM_HAMSTERDB_INT_H__ */
 
 

The hamsterdb API

 

Help us!

Found an information that is missing on this page? Please send a mail.