TYPEDEF: uint64_t fdb_seqnum_t
TYPEDEF: int64_t cs_off_t
+TYPEDEF: long fdb_ssize_t ! XXX: platform dependent?
TYPEDEF: void* fdb_custom_cmp_fixed
TYPEDEF: void* fdb_custom_cmp_variable
{ algorithm fdb_encryption_algorithm_t }
{ bytes uint8_t[32] } ;
+STRUCT: fdb_filemgr_ops_t
+ { constructor void* }
+ { open void* }
+ { pwrite void* }
+ { pread void* }
+ { close void* }
+ { goto_eof void* }
+ { file_size void* }
+ { fdatasync void* }
+ { sync void* }
+ { get_errno_str void* }
+ { aio_init void* }
+ { aio_prep_read void* }
+ { aio_submit void* }
+ { aio_getevents void* }
+ { aio_destroy void* }
+ { get_fs_type void* }
+ { copy_file_range void* }
+ { destructor void* }
+ { ctx void* } ;
+
! cmp_fixed and cmp_variable have their own open() functions
STRUCT: fdb_config
{ chunksize uint16_t }
{ encryption_key fdb_encryption_key }
{ block_reusing_threshold size_t }
{ num_keeping_headers size_t }
- { breakpad_minidump_dir char* } ;
+ { breakpad_minidump_dir char* }
+ { custom_file_ops fdb_filemgr_ops_t* } ;
STRUCT: fdb_kvs_config
{ create_if_missing bool }
FUNCTION: fdb_status fdb_get_kvs_info ( fdb_kvs_handle* handle, fdb_kvs_info* info )
FUNCTION: fdb_status fdb_get_kvs_ops_info ( fdb_kvs_handle* handle, fdb_kvs_ops_info* info )
FUNCTION: fdb_status fdb_get_latency_stats ( fdb_file_handle* fhandle, fdb_latency_stat* stats, fdb_latency_stat_type type )
+FUNCTION: fdb_status fdb_get_latency_histogram ( fdb_file_handle* fhandle,
+ char** stats,
+ size_t* stats_length,
+ fdb_latency_stat_type type )
FUNCTION: c-string fdb_get_latency_stat_name ( fdb_latency_stat_type type )
FUNCTION: fdb_status fdb_get_kvs_seqnum ( fdb_kvs_handle* handle, fdb_seqnum_t* seqnum )
FUNCTION: fdb_status fdb_get_kvs_name_list ( fdb_kvs_handle* handle, fdb_kvs_name_list* kvs_name_list )
FUNCTION: char* fdb_error_msg ( fdb_status err_code )
FUNCTION: char* fdb_get_lib_version ( )
FUNCTION: char* fdb_get_file_version ( fdb_file_handle* fhandle )
+FUNCTION: fdb_filemgr_ops_t* fdb_get_default_file_ops ( )