 STRUCT: fdb_kvs_name_list
     { num_kvs_names size_t }
     { kvs_names char** } ;
+
+STRUCT: fdb_kvs_commit_marker_t
+    { kv_store_name char* }
+    { seqnum fdb_seqnum_t } ;
+
+TYPEDEF: uint64_t fdb_snapshot_marker_t
+
+STRUCT: fdb_snapshot_info_t
+    { marker fdb_snapshot_marker_t }
+    { num_kvs_markers int64_t }
+    { kvs_markers fdb_kvs_commit_marker_t* } ;
 
 ! end fdb_types.h
 

! Begin fdb_types.h

CONSTANT: FDB_MAX_KEYLEN 3840
CONSTANT: FDB_MAX_METALEN 65535
CONSTANT: FDB_MAX_BODYLEN 4294967295
CONSTANT: FDB_SNAPSHOT_INMEM -1


FUNCTION: fdb_status fdb_iterator_close ( fdb_iterator* iterator ) ;

FUNCTION: fdb_status fdb_compact ( fdb_file_handle* handle, c-string new_filename ) ;
FUNCTION: fdb_status fdb_compact_upto ( fdb_file_handle* handle, c-string new_filename, fdb_snapshot_marker_t marker ) ;

FUNCTION: fdb_status fdb_get_file_info ( fdb_file_handle* handle, fdb_file_info* info ) ;
FUNCTION: fdb_status fdb_get_kvs_info ( fdb_kvs_handle* handle, fdb_kvs_info* info ) ;
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: fdb_status fdb_get_all_snap_markers (
    fdb_file_handle* fhandle,
    fdb_snapshot_info_t** markers,
    uint64_t* size ) ;

FUNCTION: fdb_status fdb_free_snap_markers ( fdb_snapshot_info_t* markers, uint64_t size ) ;
FUNCTION: fdb_status fdb_free_kvs_name_list ( fdb_kvs_name_list* kvs_name_list ) ;


FUNCTION: fdb_status fdb_switch_compaction_mode ( fdb_file_handle* fhandle, fdb_compaction_mode_t mode, size_t new_threshold ) ;
FUNCTION: fdb_status fdb_close ( fdb_file_handle* fhandle ) ;
