diff options
Diffstat (limited to 'libglusterfs/src/gfdb/gfdb_data_store_types.h')
-rw-r--r-- | libglusterfs/src/gfdb/gfdb_data_store_types.h | 554 |
1 files changed, 247 insertions, 307 deletions
diff --git a/libglusterfs/src/gfdb/gfdb_data_store_types.h b/libglusterfs/src/gfdb/gfdb_data_store_types.h index f20ae4ded78..5ee050d4fab 100644 --- a/libglusterfs/src/gfdb/gfdb_data_store_types.h +++ b/libglusterfs/src/gfdb/gfdb_data_store_types.h @@ -16,70 +16,67 @@ * Helps in dynamically choosing log level * */ static inline gf_loglevel_t -_gfdb_log_level (gf_loglevel_t given_level, - gf_boolean_t ignore_level) +_gfdb_log_level(gf_loglevel_t given_level, gf_boolean_t ignore_level) { - return (ignore_level) ? GF_LOG_DEBUG : given_level; + return (ignore_level) ? GF_LOG_DEBUG : given_level; } typedef enum gf_db_operation { - GFDB_INVALID_DB_OP = -1, - /* Query DB OPS : All the Query DB_OP should be added */ - /* in between START and END */ - GFDB_QUERY_DB_OP_START, /* Start of Query DB_OP */ - GFDB_QUERY_DB_OP, - GF_FTABLE_EXISTS_DB_OP, - GFDB_QUERY_DB_OP_END, /* End of Query DB_OP */ - /* Non-Query DB OPS */ - GFDB_DB_CREATE_DB_OP, - GFDB_GFID_EXIST_DB_OP, - GFDB_W_INSERT_DB_OP, - GFDB_WU_INSERT_DB_OP, - GFDB_W_UPDATE_DB_OP, - GFDB_WU_UPDATE_DB_OP, - GFDB_W_DELETE_DB_OP, - GFDB_UW_DELETE_DB_OP, - GFDB_WFC_UPDATE_DB_OP, - GFDB_RFC_UPDATE_DB_OP, - GFDB_DB_COMPACT_DB_OP /* Added for VACUUM/manual compaction support */ + GFDB_INVALID_DB_OP = -1, + /* Query DB OPS : All the Query DB_OP should be added */ + /* in between START and END */ + GFDB_QUERY_DB_OP_START, /* Start of Query DB_OP */ + GFDB_QUERY_DB_OP, + GF_FTABLE_EXISTS_DB_OP, + GFDB_QUERY_DB_OP_END, /* End of Query DB_OP */ + /* Non-Query DB OPS */ + GFDB_DB_CREATE_DB_OP, + GFDB_GFID_EXIST_DB_OP, + GFDB_W_INSERT_DB_OP, + GFDB_WU_INSERT_DB_OP, + GFDB_W_UPDATE_DB_OP, + GFDB_WU_UPDATE_DB_OP, + GFDB_W_DELETE_DB_OP, + GFDB_UW_DELETE_DB_OP, + GFDB_WFC_UPDATE_DB_OP, + GFDB_RFC_UPDATE_DB_OP, + GFDB_DB_COMPACT_DB_OP /* Added for VACUUM/manual compaction support */ } gf_db_operation_t; - -#define GF_COL_MAX_NUM 2 -#define GF_COL_ALL " * " +#define GF_COL_MAX_NUM 2 +#define GF_COL_ALL " * " /* Column/fields names used in the DB. * If any new field is added should be updated here*/ -#define GF_COL_GF_ID "GF_ID" -#define GF_COL_GF_PID "GF_PID" -#define GF_COL_FILE_NAME "FNAME" -#define GF_COL_WSEC "W_SEC" -#define GF_COL_WMSEC "W_MSEC" -#define GF_COL_UWSEC "UW_SEC" -#define GF_COL_UWMSEC "UW_MSEC" -#define GF_COL_WSEC_READ "W_READ_SEC" -#define GF_COL_WMSEC_READ "W_READ_MSEC" -#define GF_COL_UWSEC_READ "UW_READ_SEC" -#define GF_COL_UWMSEC_READ "UW_READ_MSEC" -#define GF_COL_WDEL_FLAG "W_DEL_FLAG" -#define GF_COL_WRITE_FREQ_CNTR "WRITE_FREQ_CNTR" -#define GF_COL_READ_FREQ_CNTR "READ_FREQ_CNTR" -#define GF_COL_LINK_UPDATE "LINK_UPDATE" - +#define GF_COL_GF_ID "GF_ID" +#define GF_COL_GF_PID "GF_PID" +#define GF_COL_FILE_NAME "FNAME" +#define GF_COL_WSEC "W_SEC" +#define GF_COL_WMSEC "W_MSEC" +#define GF_COL_UWSEC "UW_SEC" +#define GF_COL_UWMSEC "UW_MSEC" +#define GF_COL_WSEC_READ "W_READ_SEC" +#define GF_COL_WMSEC_READ "W_READ_MSEC" +#define GF_COL_UWSEC_READ "UW_READ_SEC" +#define GF_COL_UWMSEC_READ "UW_READ_MSEC" +#define GF_COL_WDEL_FLAG "W_DEL_FLAG" +#define GF_COL_WRITE_FREQ_CNTR "WRITE_FREQ_CNTR" +#define GF_COL_READ_FREQ_CNTR "READ_FREQ_CNTR" +#define GF_COL_LINK_UPDATE "LINK_UPDATE" /***********************Time related********************************/ /*1 sec = 1000000 microsec*/ -#define GFDB_MICROSEC 1000000 +#define GFDB_MICROSEC 1000000 /*All the gfdb times are represented using this structure*/ -typedef struct timeval gfdb_time_t; +typedef struct timeval gfdb_time_t; /*Convert time into seconds*/ static inline uint64_t gfdb_time_2_usec(gfdb_time_t *gfdb_time) { - GF_ASSERT(gfdb_time); - return ((uint64_t) gfdb_time->tv_sec * GFDB_MICROSEC) + gfdb_time->tv_usec; + GF_ASSERT(gfdb_time); + return ((uint64_t)gfdb_time->tv_sec * GFDB_MICROSEC) + gfdb_time->tv_usec; } /****************************************************************************** @@ -91,82 +88,82 @@ gfdb_time_2_usec(gfdb_time_t *gfdb_time) /*Indicated a generic synchronous write to the db * This may or may not be implemented*/ typedef enum gfdb_sync_type { - GFDB_INVALID_SYNC = -1, - GFDB_DB_ASYNC, - GFDB_DB_SYNC + GFDB_INVALID_SYNC = -1, + GFDB_DB_ASYNC, + GFDB_DB_SYNC } gfdb_sync_type_t; /*Strings related to the abvove sync type*/ -#define GFDB_STR_DB_ASYNC "async" -#define GFDB_STR_DB_SYNC "sync" +#define GFDB_STR_DB_ASYNC "async" +#define GFDB_STR_DB_SYNC "sync" /*To convert sync type from string to gfdb_sync_type_t*/ static inline int -gf_string2gfdbdbsync (char *sync_option) +gf_string2gfdbdbsync(char *sync_option) { - int ret = -1; - - if (!sync_option) - goto out; - if (strcmp(sync_option, GFDB_STR_DB_ASYNC) == 0) { - ret = GFDB_DB_ASYNC; - } else if (strcmp(sync_option, GFDB_STR_DB_SYNC) == 0) { - ret = GFDB_DB_SYNC; - } + int ret = -1; + + if (!sync_option) + goto out; + if (strcmp(sync_option, GFDB_STR_DB_ASYNC) == 0) { + ret = GFDB_DB_ASYNC; + } else if (strcmp(sync_option, GFDB_STR_DB_SYNC) == 0) { + ret = GFDB_DB_SYNC; + } out: - return ret; + return ret; } /*Indicated different types of db*/ typedef enum gfdb_db_type { - GFDB_INVALID_DB = -1, - GFDB_HASH_FILE_STORE, - GFDB_ROCKS_DB, - GFDB_SQLITE3, - GFDB_HYPERDEX, - GFDB_DB_END /*Add DB type Entries above this only*/ + GFDB_INVALID_DB = -1, + GFDB_HASH_FILE_STORE, + GFDB_ROCKS_DB, + GFDB_SQLITE3, + GFDB_HYPERDEX, + GFDB_DB_END /*Add DB type Entries above this only*/ } gfdb_db_type_t; /*String related to the db types*/ -#define GFDB_STR_HASH_FILE_STORE "hashfile" -#define GFDB_STR_ROCKS_DB "rocksdb" -#define GFDB_STR_SQLITE3 "sqlite3" -#define GFDB_STR_HYPERDEX "hyperdex" +#define GFDB_STR_HASH_FILE_STORE "hashfile" +#define GFDB_STR_ROCKS_DB "rocksdb" +#define GFDB_STR_SQLITE3 "sqlite3" +#define GFDB_STR_HYPERDEX "hyperdex" /*Convert db type in string to gfdb_db_type_t*/ static inline int -gf_string2gfdbdbtype (char *db_option) +gf_string2gfdbdbtype(char *db_option) { - int ret = -1; - - if (!db_option) - goto out; - if (strcmp(db_option, GFDB_STR_HASH_FILE_STORE) == 0) { - ret = GFDB_HASH_FILE_STORE; - } else if (strcmp(db_option, GFDB_STR_ROCKS_DB) == 0) { - ret = GFDB_ROCKS_DB; - } else if (strcmp(db_option, GFDB_STR_SQLITE3) == 0) { - ret = GFDB_SQLITE3; - } else if (strcmp(db_option, GFDB_STR_HYPERDEX) == 0) { - ret = GFDB_HYPERDEX; - } + int ret = -1; + + if (!db_option) + goto out; + if (strcmp(db_option, GFDB_STR_HASH_FILE_STORE) == 0) { + ret = GFDB_HASH_FILE_STORE; + } else if (strcmp(db_option, GFDB_STR_ROCKS_DB) == 0) { + ret = GFDB_ROCKS_DB; + } else if (strcmp(db_option, GFDB_STR_SQLITE3) == 0) { + ret = GFDB_SQLITE3; + } else if (strcmp(db_option, GFDB_STR_HYPERDEX) == 0) { + ret = GFDB_HYPERDEX; + } out: - return ret; + return ret; } /*Tells the path of the fop*/ typedef enum gfdb_fop_path { - GFDB_FOP_INVALID = -1, - /*Filler value for zero*/ - GFDB_FOP_PATH_ZERO = 0, - /*have wind path below this*/ - GFDB_FOP_WIND = 1, - GFDB_FOP_WDEL = 2, - /*have unwind path below this*/ - GFDB_FOP_UNWIND = 4, - /*Delete unwind path*/ - GFDB_FOP_UNDEL = 8, - GFDB_FOP_UNDEL_ALL = 16 + GFDB_FOP_INVALID = -1, + /*Filler value for zero*/ + GFDB_FOP_PATH_ZERO = 0, + /*have wind path below this*/ + GFDB_FOP_WIND = 1, + GFDB_FOP_WDEL = 2, + /*have unwind path below this*/ + GFDB_FOP_UNWIND = 4, + /*Delete unwind path*/ + GFDB_FOP_UNDEL = 8, + GFDB_FOP_UNDEL_ALL = 16 } gfdb_fop_path_t; /*Strings related to the above fop path*/ #define GFDB_STR_FOP_INVALID "INVALID" @@ -178,107 +175,104 @@ typedef enum gfdb_fop_path { static inline gf_boolean_t iswindpath(gfdb_fop_path_t gfdb_fop_path) { - return ((gfdb_fop_path == GFDB_FOP_WIND) || - (gfdb_fop_path == GFDB_FOP_WDEL)) ? - _gf_true : _gf_false; + return ((gfdb_fop_path == GFDB_FOP_WIND) || + (gfdb_fop_path == GFDB_FOP_WDEL)) + ? _gf_true + : _gf_false; } static inline gf_boolean_t isunwindpath(gfdb_fop_path_t gfdb_fop_path) { - return (gfdb_fop_path >= GFDB_FOP_UNWIND) ? _gf_true : _gf_false; + return (gfdb_fop_path >= GFDB_FOP_UNWIND) ? _gf_true : _gf_false; } /*Tell what type of fop it was * Like whether a dentry fop or a inode fop * Read fop or a write fop etc*/ typedef enum gfdb_fop_type { - GFDB_FOP_INVALID_OP = -1, - /*Filler value for zero*/ - GFDB_FOP_TYPE_ZERO = 0, - GFDB_FOP_DENTRY_OP = 1, - GFDB_FOP_DENTRY_CREATE_OP = 2, - GFDB_FOP_INODE_OP = 4, - GFDB_FOP_WRITE_OP = 8, - GFDB_FOP_READ_OP = 16 + GFDB_FOP_INVALID_OP = -1, + /*Filler value for zero*/ + GFDB_FOP_TYPE_ZERO = 0, + GFDB_FOP_DENTRY_OP = 1, + GFDB_FOP_DENTRY_CREATE_OP = 2, + GFDB_FOP_INODE_OP = 4, + GFDB_FOP_WRITE_OP = 8, + GFDB_FOP_READ_OP = 16 } gfdb_fop_type_t; -#define GFDB_FOP_INODE_WRITE\ - (GFDB_FOP_INODE_OP | GFDB_FOP_WRITE_OP) +#define GFDB_FOP_INODE_WRITE (GFDB_FOP_INODE_OP | GFDB_FOP_WRITE_OP) -#define GFDB_FOP_DENTRY_WRITE\ - (GFDB_FOP_DENTRY_OP | GFDB_FOP_WRITE_OP) +#define GFDB_FOP_DENTRY_WRITE (GFDB_FOP_DENTRY_OP | GFDB_FOP_WRITE_OP) -#define GFDB_FOP_CREATE_WRITE\ - (GFDB_FOP_DENTRY_CREATE_OP | GFDB_FOP_WRITE_OP) +#define GFDB_FOP_CREATE_WRITE (GFDB_FOP_DENTRY_CREATE_OP | GFDB_FOP_WRITE_OP) -#define GFDB_FOP_INODE_READ\ - (GFDB_FOP_INODE_OP | GFDB_FOP_READ_OP) +#define GFDB_FOP_INODE_READ (GFDB_FOP_INODE_OP | GFDB_FOP_READ_OP) static inline gf_boolean_t isreadfop(gfdb_fop_type_t fop_type) { - return (fop_type & GFDB_FOP_READ_OP) ? _gf_true : _gf_false; + return (fop_type & GFDB_FOP_READ_OP) ? _gf_true : _gf_false; } static inline gf_boolean_t isdentryfop(gfdb_fop_type_t fop_type) { - return ((fop_type & GFDB_FOP_DENTRY_OP) || - (fop_type & GFDB_FOP_DENTRY_CREATE_OP)) ? _gf_true : _gf_false; + return ((fop_type & GFDB_FOP_DENTRY_OP) || + (fop_type & GFDB_FOP_DENTRY_CREATE_OP)) + ? _gf_true + : _gf_false; } static inline gf_boolean_t isdentrycreatefop(gfdb_fop_type_t fop_type) { - return (fop_type & GFDB_FOP_DENTRY_CREATE_OP) ? - _gf_true : _gf_false; + return (fop_type & GFDB_FOP_DENTRY_CREATE_OP) ? _gf_true : _gf_false; } /*The structure that is used to send insert/update the databases * using insert_db api*/ typedef struct gfdb_db_record { - /* GFID */ - uuid_t gfid; - /* Used during a rename refer ctr_rename() in changetimerecorder - * xlator*/ - uuid_t old_gfid; - /* Parent GFID */ - uuid_t pargfid; - uuid_t old_pargfid; - /* File names */ - char file_name[GF_NAME_MAX + 1]; - char old_file_name[GF_NAME_MAX + 1]; - /* FOP type and FOP path*/ - gfdb_fop_type_t gfdb_fop_type; - gfdb_fop_path_t gfdb_fop_path; - /*Time of change or access*/ - gfdb_time_t gfdb_wind_change_time; - gfdb_time_t gfdb_unwind_change_time; - /* For crash consistency while inserting/updating hard links */ - gf_boolean_t islinkupdate; - /* For link consistency we do a double update i.e mark the link - * during the wind and during the unwind we update/delete the link. - * This has a performance hit. We give a choice here whether we need - * link consistency to be spoton or not using link_consistency flag. - * This will have only one link update */ - gf_boolean_t link_consistency; - /* For dentry fops we can choose to ignore recording of unwind time */ - /* For inode fops "record_exit" volume option does the trick, */ - /* but for dentry fops we update the LINK_UPDATE, so an extra */ - /* flag is provided to ignore the recording of the unwind time. */ - gf_boolean_t do_record_uwind_time; - /* Global flag to record or not record counters */ - gf_boolean_t do_record_counters; - /* Global flag to Record/Not Record wind or wind time. - * This flag will overrule do_record_uwind_time*/ - gf_boolean_t do_record_times; - /* Ignoring errors while inserting. - * */ - gf_boolean_t ignore_errors; + /* GFID */ + uuid_t gfid; + /* Used during a rename refer ctr_rename() in changetimerecorder + * xlator*/ + uuid_t old_gfid; + /* Parent GFID */ + uuid_t pargfid; + uuid_t old_pargfid; + /* File names */ + char file_name[GF_NAME_MAX + 1]; + char old_file_name[GF_NAME_MAX + 1]; + /* FOP type and FOP path*/ + gfdb_fop_type_t gfdb_fop_type; + gfdb_fop_path_t gfdb_fop_path; + /*Time of change or access*/ + gfdb_time_t gfdb_wind_change_time; + gfdb_time_t gfdb_unwind_change_time; + /* For crash consistency while inserting/updating hard links */ + gf_boolean_t islinkupdate; + /* For link consistency we do a double update i.e mark the link + * during the wind and during the unwind we update/delete the link. + * This has a performance hit. We give a choice here whether we need + * link consistency to be spoton or not using link_consistency flag. + * This will have only one link update */ + gf_boolean_t link_consistency; + /* For dentry fops we can choose to ignore recording of unwind time */ + /* For inode fops "record_exit" volume option does the trick, */ + /* but for dentry fops we update the LINK_UPDATE, so an extra */ + /* flag is provided to ignore the recording of the unwind time. */ + gf_boolean_t do_record_uwind_time; + /* Global flag to record or not record counters */ + gf_boolean_t do_record_counters; + /* Global flag to Record/Not Record wind or wind time. + * This flag will overrule do_record_uwind_time*/ + gf_boolean_t do_record_times; + /* Ignoring errors while inserting. + * */ + gf_boolean_t ignore_errors; } gfdb_db_record_t; - /******************************************************************************* * * Signatures for the plugin functions @@ -289,8 +283,7 @@ typedef struct gfdb_db_record { * ****************************************************************************/ /*Call back function for querying the database*/ -typedef int -(*gf_query_callback_t)(gfdb_query_record_t *, void *); +typedef int (*gf_query_callback_t)(gfdb_query_record_t *, void *); /* Used to initialize db connection * Arguments: @@ -301,11 +294,7 @@ typedef int * If call is unsuccessful will have NULL. * Returns : if successful return 0 or * -ve value in case of failure*/ -typedef int -(*gfdb_init_db_t)(dict_t *args, void **db_conn); - - - +typedef int (*gfdb_init_db_t)(dict_t *args, void **db_conn); /* Used to terminate/de-initialize db connection * (Destructor function for db connection object) @@ -313,11 +302,7 @@ typedef int * db_conn : plugin specific data base connection * Returns : if successful return 0 or * -ve value in case of failure*/ -typedef int -(*gfdb_fini_db_t)(void **db_conn); - - - +typedef int (*gfdb_fini_db_t)(void **db_conn); /*Used to insert/updated records in the database * Arguments: @@ -325,12 +310,7 @@ typedef int * gfdb_db_record : Record to be inserted/updated * Returns : if successful return 0 or * -ve value in case of failure*/ -typedef int -(*gfdb_insert_record_t)(void *db_conn, - gfdb_db_record_t *db_record); - - - +typedef int (*gfdb_insert_record_t)(void *db_conn, gfdb_db_record_t *db_record); /*Used to delete record from the database * Arguments: @@ -338,12 +318,7 @@ typedef int * gfdb_db_record : Record to be deleted * Returns : if successful return 0 or * -ve value in case of failure*/ -typedef int -(*gfdb_delete_record_t)(void *db_conn, - gfdb_db_record_t *db_record); - - - +typedef int (*gfdb_delete_record_t)(void *db_conn, gfdb_db_record_t *db_record); /*Used to compact the database * Arguments: @@ -352,12 +327,8 @@ typedef int * compact_mode_switched : Was the compaction switch flipped? * Returns : if successful return 0 or * -ve value in case of failure*/ -typedef int -(*gfdb_compact_db_t)(void *db_conn, gf_boolean_t compact_active, - gf_boolean_t compact_mode_switched); - - - +typedef int (*gfdb_compact_db_t)(void *db_conn, gf_boolean_t compact_active, + gf_boolean_t compact_mode_switched); /* Query all the records from the database * Arguments: @@ -373,14 +344,9 @@ typedef int * * Returns : if successful return 0 or * -ve value in case of failure*/ -typedef int -(*gfdb_find_all_t)(void *db_conn, +typedef int (*gfdb_find_all_t)(void *db_conn, gf_query_callback_t query_callback, - void *_cbk_args, - int query_limit); - - - + void *_cbk_args, int query_limit); /* Query records/files that have not changed/accessed * from a time in past to current time @@ -394,13 +360,9 @@ typedef int * changed/accessed * Returns : if successful return 0 or * -ve value in case of failure*/ -typedef int -(*gfdb_find_unchanged_for_time_t)(void *db_conn, - gf_query_callback_t query_callback, - void *_cbk_args, - gfdb_time_t *_time); - - +typedef int (*gfdb_find_unchanged_for_time_t)( + void *db_conn, gf_query_callback_t query_callback, void *_cbk_args, + gfdb_time_t *_time); /* Query records/files that have changed/accessed from a * time in past to current time @@ -414,10 +376,9 @@ typedef int * changed/accessed * Returns : if successful return 0 or * -ve value in case of failure*/ -typedef int -(*gfdb_find_recently_changed_files_t)(void *db_conn, - gf_query_callback_t query_callback, - void *_cbk_args, gfdb_time_t *_time); +typedef int (*gfdb_find_recently_changed_files_t)( + void *db_conn, gf_query_callback_t query_callback, void *_cbk_args, + gfdb_time_t *_time); /* Query records/files that have not changed/accessed * from a time in past to current time, with @@ -437,16 +398,10 @@ typedef int * all files. * Returns : if successful return 0 or * -ve value in case of failure*/ -typedef int -(*gfdb_find_unchanged_for_time_freq_t) - (void *db_conn, - gf_query_callback_t query_callback, - void *_cbk_args, gfdb_time_t *_time, - int _write_freq, int _read_freq, - gf_boolean_t _clear_counters); - - - +typedef int (*gfdb_find_unchanged_for_time_freq_t)( + void *db_conn, gf_query_callback_t query_callback, void *_cbk_args, + gfdb_time_t *_time, int _write_freq, int _read_freq, + gf_boolean_t _clear_counters); /* Query records/files that have changed/accessed from a * time in past to current time, with a desired frequency @@ -464,47 +419,37 @@ typedef int * all files. * Returns : if successful return 0 or * -ve value in case of failure*/ -typedef int -(*gfdb_find_recently_changed_files_freq_t)(void *db_conn, - gf_query_callback_t query_callback, - void *_cbk_args, gfdb_time_t *_time, - int _write_freq, int _read_freq, - gf_boolean_t _clear_counters); - +typedef int (*gfdb_find_recently_changed_files_freq_t)( + void *db_conn, gf_query_callback_t query_callback, void *_cbk_args, + gfdb_time_t *_time, int _write_freq, int _read_freq, + gf_boolean_t _clear_counters); typedef int (*gfdb_clear_files_heat_t)(void *db_conn); -typedef int (*gfdb_get_db_version_t)(void *db_conn, - char **version); - -typedef int (*gfdb_get_db_params_t)(void *db_conn, - char *param_key, - char **param_value); - -typedef int (*gfdb_set_db_params_t)(void *db_conn, - char *param_key, - char *param_value); +typedef int (*gfdb_get_db_version_t)(void *db_conn, char **version); +typedef int (*gfdb_get_db_params_t)(void *db_conn, char *param_key, + char **param_value); +typedef int (*gfdb_set_db_params_t)(void *db_conn, char *param_key, + char *param_value); /*Data structure holding all the above plugin function pointers*/ typedef struct gfdb_db_operations { - gfdb_init_db_t init_db_op; - gfdb_fini_db_t fini_db_op; - gfdb_insert_record_t insert_record_op; - gfdb_delete_record_t delete_record_op; - gfdb_compact_db_t compact_db_op; - gfdb_find_all_t find_all_op; - gfdb_find_unchanged_for_time_t find_unchanged_for_time_op; - gfdb_find_recently_changed_files_t find_recently_changed_files_op; - gfdb_find_unchanged_for_time_freq_t - find_unchanged_for_time_freq_op; - gfdb_find_recently_changed_files_freq_t - find_recently_changed_files_freq_op; - gfdb_clear_files_heat_t clear_files_heat_op; - gfdb_get_db_version_t get_db_version; - gfdb_get_db_params_t get_db_params; - gfdb_set_db_params_t set_db_params; + gfdb_init_db_t init_db_op; + gfdb_fini_db_t fini_db_op; + gfdb_insert_record_t insert_record_op; + gfdb_delete_record_t delete_record_op; + gfdb_compact_db_t compact_db_op; + gfdb_find_all_t find_all_op; + gfdb_find_unchanged_for_time_t find_unchanged_for_time_op; + gfdb_find_recently_changed_files_t find_recently_changed_files_op; + gfdb_find_unchanged_for_time_freq_t find_unchanged_for_time_freq_op; + gfdb_find_recently_changed_files_freq_t find_recently_changed_files_freq_op; + gfdb_clear_files_heat_t clear_files_heat_op; + gfdb_get_db_version_t get_db_version; + gfdb_get_db_params_t get_db_params; + gfdb_set_db_params_t set_db_params; } gfdb_db_operations_t; /******************************************************************************* @@ -518,75 +463,70 @@ typedef struct gfdb_db_operations { * * ****************************************************************************/ - typedef struct gfdb_connection { - void *gf_db_connection; - gfdb_db_operations_t gfdb_db_operations; - gfdb_db_type_t gfdb_db_type; + void *gf_db_connection; + gfdb_db_operations_t gfdb_db_operations; + gfdb_db_type_t gfdb_db_type; } gfdb_connection_t; - - - /******************************************************************************* * * Macros for get and set db options * * ****************************************************************************/ - /*Set param_key : str_value into param_dict*/ -#define SET_DB_PARAM_TO_DICT(comp_name, params_dict, param_key,\ - str_value, ret, error)\ - do {\ - data_t *data = NULL;\ - data = str_to_data (str_value);\ - if (!data)\ - goto error;\ - ret = dict_add (params_dict, param_key, data);\ - if (ret) {\ - gf_msg (comp_name, GF_LOG_ERROR, 0,\ - LG_MSG_SET_PARAM_FAILED, "Failed setting %s "\ - "to params dictionary", param_key);\ - data_destroy (data);\ - goto error;\ - };\ - } while (0) +#define SET_DB_PARAM_TO_DICT(comp_name, params_dict, param_key, str_value, \ + ret, error) \ + do { \ + data_t *data = NULL; \ + data = str_to_data(str_value); \ + if (!data) \ + goto error; \ + ret = dict_add(params_dict, param_key, data); \ + if (ret) { \ + gf_msg(comp_name, GF_LOG_ERROR, 0, LG_MSG_SET_PARAM_FAILED, \ + "Failed setting %s " \ + "to params dictionary", \ + param_key); \ + data_destroy(data); \ + goto error; \ + }; \ + } while (0) /*get str_value of param_key from param_dict*/ -#define GET_DB_PARAM_FROM_DICT(comp_name, params_dict, param_key, str_value,\ - error)\ - do {\ - data_t *data = NULL;\ - data = dict_get (params_dict, param_key);\ - if (!data) {\ - gf_msg (comp_name, GF_LOG_ERROR, 0,\ - LG_MSG_GET_PARAM_FAILED, "Failed to retrieve "\ - "%s from params", param_key);\ - goto error;\ - } else {\ - str_value = data->data;\ - };\ - } while (0) - +#define GET_DB_PARAM_FROM_DICT(comp_name, params_dict, param_key, str_value, \ + error) \ + do { \ + data_t *data = NULL; \ + data = dict_get(params_dict, param_key); \ + if (!data) { \ + gf_msg(comp_name, GF_LOG_ERROR, 0, LG_MSG_GET_PARAM_FAILED, \ + "Failed to retrieve " \ + "%s from params", \ + param_key); \ + goto error; \ + } else { \ + str_value = data->data; \ + }; \ + } while (0) /*get str_value of param_key from param_dict. if param_key is not present * set _default_v to str_value */ -#define GET_DB_PARAM_FROM_DICT_DEFAULT(comp_name, params_dict, param_key,\ - str_value, _default_v)\ - do {\ - data_t *data = NULL;\ - data = dict_get (params_dict, param_key);\ - if (!data) {\ - str_value = _default_v;\ - gf_msg (comp_name, GF_LOG_TRACE, 0,\ - LG_MSG_GET_PARAM_FAILED, "Failed to retrieve "\ - "%s from params.Assigning default value: %s",\ - param_key, _default_v);\ - } else {\ - str_value = data->data;\ - };\ - } while (0) - +#define GET_DB_PARAM_FROM_DICT_DEFAULT(comp_name, params_dict, param_key, \ + str_value, _default_v) \ + do { \ + data_t *data = NULL; \ + data = dict_get(params_dict, param_key); \ + if (!data) { \ + str_value = _default_v; \ + gf_msg(comp_name, GF_LOG_TRACE, 0, LG_MSG_GET_PARAM_FAILED, \ + "Failed to retrieve " \ + "%s from params.Assigning default value: %s", \ + param_key, _default_v); \ + } else { \ + str_value = data->data; \ + }; \ + } while (0) #endif |