]> gitweb.factorcode.org Git - factor-unmaintained.git/blob - forestdb/ffi/ffi.factor
forestdb: not a maintained db
[factor-unmaintained.git] / forestdb / ffi / ffi.factor
1 ! Copyright (C) 2014 Doug Coleman.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: alien alien.c-types alien.libraries
4 alien.libraries.finder alien.syntax classes.struct kernel ;
5 IN: forestdb.ffi
6
7 ! Functions with LIBFDB_API are exported.
8
9 << "forestdb" dup find-library cdecl add-library >>
10
11 LIBRARY: forestdb
12
13 ! Begin fdb_types.h
14
15 CONSTANT: FDB_MAX_KEYLEN 3840
16 CONSTANT: FDB_MAX_METALEN 65512
17 CONSTANT: FDB_MAX_BODYLEN 4294967295
18 CONSTANT: FDB_SNAPSHOT_INMEM -1
19
20 TYPEDEF: uint64_t fdb_seqnum_t
21 TYPEDEF: int64_t cs_off_t
22 TYPEDEF: long fdb_ssize_t ! XXX: platform dependent?
23
24 TYPEDEF: void* fdb_custom_cmp_fixed
25 TYPEDEF: void* fdb_custom_cmp_variable
26 TYPEDEF: void* fdb_file_handle
27 TYPEDEF: void* fdb_kvs_handle
28 TYPEDEF: void* fdb_iterator
29 TYPEDEF: void* fdb_changes_callback_fn
30 TYPEDEF: void* voidref
31 TYPEDEF: void* fdb_handle_stats_cb
32
33 ENUM: fdb_open_flags < uint32_t
34     { FDB_OPEN_FLAG_CREATE 1 }
35     { FDB_OPEN_FLAG_RDONLY 2 }
36     { FDB_OPEN_WITH_LEGACY_CRC 4 } ;
37
38 ENUM: fdb_commit_opt_t < uint8_t
39     { FDB_COMMIT_NORMAL 0 }
40     { FDB_COMMIT_MANUAL_WAL_FLUSH 1 } ;
41
42 ENUM: fdb_seqtree_opt_t < uint8_t
43     { FDB_SEQTREE_NOT_USE 0 }
44     { FDB_SEQTREE_USE 1 } ;
45
46 ENUM: fdb_durability_opt_t < uint8_t
47     { FDB_DRB_NONE 0 }
48     { FDB_DRB_ODIRECT 1 }
49     { FDB_DRB_ASYNC 2 }
50     { FDB_DRB_ODIRECT_ASYNC 3 } ;
51
52 ENUM: fdb_compaction_mode_t < uint8_t
53     { FDB_COMPACTION_MANUAL 0 }
54     { FDB_COMPACTION_AUTO 1 } ;
55
56 ENUM: fdb_isolation_level_t < uint8_t
57     { FDB_ISOLATION_READ_COMMITTED 2 }
58     { FDB_ISOLATION_READ_UNCOMMITTED 3 } ;
59
60 ENUM: fdb_iterator_opt_t < uint16_t
61     { FDB_ITR_NONE 0 }
62     { FDB_ITR_NO_DELETES 2 }
63     { FDB_ITR_SKIP_MIN_KEY 4 }
64     { FDB_ITR_SKIP_MAX_KEY 8 }
65     { FDB_ITR_NO_VALUES 0x10 } ; ! only keys and metadata for fdb_changes_since
66
67 ENUM: fdb_changes_decision < int32_t
68     { FDB_CHANGES_PRESERVE 1 }
69     { FDB_CHANGES_CLEAN 0 }
70     { FDB_CHANGES_CANCEL -1 } ;
71
72 ENUM: fdb_iterator_seek_opt_t < uint8_t
73     { FDB_ITR_SEEK_HIGHER 0 }
74     { FDB_ITR_SEEK_LOWER 1 } ;
75
76 ENUM: fdb_compaction_status < uint32_t
77     { FDB_CS_BEGIN 0x1 }
78     { FDB_CS_MOVE_DOC 0x2 }
79     { FDB_CS_BATCH_MOVE 0x4 }
80     { FDB_CS_FLUSH_WAL 0x8 }
81     { FDB_CS_END 0x10 }
82     { FDB_CS_COMPLETE 0x20 } ;
83
84 ENUM: fdb_compact_decision < int
85     { FDB_CS_KEEP_DOC 0 }
86     { FDB_CS_DROP_DOC 1 } ;
87
88 ENUM: fdb_encryption_algorithm_t < int
89     { FDB_ENCRYPTION_NONE 0 }
90     { FDB_ENCRYPTION_AES256 1 } ;
91
92 STRUCT: fdb_doc
93     { keylen size_t }
94     { metalen size_t }
95     { bodylen size_t }
96     { size_ondisk size_t }
97     { key void* }
98     { seqnum fdb_seqnum_t }
99     { offset uint64_t }
100     { meta void* }
101     { body void* }
102     { deleted bool }
103     { flags uint32_t } ;
104
105 CALLBACK: void fdb_log_callback ( int err_code, char* err_msg, void* ctx_data )
106 CALLBACK: void fdb_fatal_error_callback ( )
107 CALLBACK: fdb_compact_decision fdb_compaction_callback (
108                                fdb_file_handle* fhandle,
109                                fdb_compaction_status status,
110                                char* kv_store_name,
111                                fdb_doc* doc,
112                                uint64_t last_oldfile_offset,
113                                uint64_t last_newfile_offset,
114                                void* ctx )
115
116 STRUCT: fdb_encryption_key
117     { algorithm fdb_encryption_algorithm_t }
118     { bytes uint8_t[32] } ;
119
120 STRUCT: fdb_filemgr_ops_t
121     { constructor void* }
122     { open void* }
123     { pwrite void* }
124     { pread void* }
125     { close void* }
126     { goto_eof void* }
127     { file_size void* }
128     { fdatasync void* }
129     { sync void* }
130     { get_errno_str void* }
131     { mmap void* }
132     { munmap void* }
133     { aio_init void* }
134     { aio_prep_read void* }
135     { aio_submit void* }
136     { aio_getevents void* }
137     { aio_destroy void* }
138     { get_fs_type void* }
139     { copy_file_range void* }
140     { destructor void* }
141     { ctx void* } ;
142
143 ! cmp_fixed and cmp_variable have their own open() functions
144 STRUCT: fdb_config
145     { chunksize uint16_t }
146     { blocksize uint32_t }
147     { buffercache_size uint64_t }
148     { wal_threshold uint64_t }
149     { wal_flush_before_commit bool }
150     { auto_commit bool }
151     { purging_interval uint32_t }
152     { seqtree_opt fdb_seqtree_opt_t }
153     { durability_opt fdb_durability_opt_t }
154     { flags fdb_open_flags }
155     { compaction_buf_maxsize uint32_t }
156     { cleanup_cache_onclose bool }
157     { compress_document_body bool }
158     { compaction_mode fdb_compaction_mode_t }
159     { compaction_threshold uint8_t }
160     { compaction_minimum_filesize uint64_t }
161     { compactor_sleep_duration uint64_t }
162     { multi_kv_instances bool }
163     { prefetch_duration uint64_t }
164     { num_wal_partitions uint16_t }
165     { num_bcache_partitions uint16_t }
166     { compaction_cb fdb_compaction_callback }
167     { compaction_cb_mask uint32_t }
168     { compaction_cb_ctx void* }
169     { max_writer_lock_prob size_t }
170     { num_compactor_threads size_t }
171     { num_bgflusher_threads size_t }
172     { encryption_key fdb_encryption_key }
173     { block_reusing_threshold size_t }
174     { num_keeping_headers size_t }
175     { breakpad_minidump_dir char* }
176     { custom_file_ops fdb_filemgr_ops_t* }
177     { num_background_threads size_t }
178     { bcache_flush_limit size_t } ;
179
180 STRUCT: fdb_kvs_config
181     { create_if_missing bool }
182     { custom_cmp fdb_custom_cmp_variable } ;
183
184 ! filename is a pointer to the handle's filename
185 ! new_filename is a pointer to the handle's new_file
186
187 STRUCT: fdb_file_info
188     { filename char* }
189     { new_filename char* }
190     { doc_count uint64_t }
191     { deleted_count uint64_t }
192     { space_used uint64_t }
193     { file_size uint64_t }
194     { num_kv_stores size_t } ;
195
196 STRUCT: fdb_kvs_info
197     { name char* }
198     { last_seqnum fdb_seqnum_t }
199     { doc_count uint64_t }
200     { deleted_count uint64_t }
201     { space_used uint64_t }
202     { file fdb_file_handle* } ;
203
204 STRUCT: fdb_kvs_name_list
205     { num_kvs_names size_t }
206     { kvs_names char** } ;
207
208 STRUCT: fdb_kvs_ops_info
209     { num_sets uint64_t }
210     { num_dels uint64_t }
211     { num_commits uint64_t }
212     { num_compacts uint64_t }
213     { num_gets uint64_t }
214     { num_iterator_gets uint64_t }
215     { num_iterator_moves uint64_t } ;
216
217 ENUM: fdb_latency_stat_type < uint8_t
218     { FDB_LATENCY_SETS 0 }
219     { FDB_LATENCY_GETS 1 }
220     { FDB_LATENCY_COMMITS 2 }
221     { FDB_LATENCY_SNAP_INMEM 3 }
222     { FDB_LATENCY_SNAP_DUR 4 }
223     { FDB_LATENCY_COMPACTS 5 }
224     { FDB_LATENCY_ITR_INIT 6 }
225     { FDB_LATENCY_ITR_SEQ_INIT 7 }
226     { FDB_LATENCY_ITR_NEXT 8 }
227     { FDB_LATENCY_ITR_PREV 9 }
228     { FDB_LATENCY_ITR_GET 10 }
229     { FDB_LATENCY_ITR_GET_META 11 }
230     { FDB_LATENCY_ITR_SEEK 12 }
231     { FDB_LATENCY_ITR_SEEK_MAX 13 }
232     { FDB_LATENCY_ITR_SEEK_MIN 14 }
233     { FDB_LATENCY_ITR_CLOSE 15 }
234     { FDB_LATENCY_OPEN 16 }
235     { FDB_LATENCY_KVS_OPEN 17 }
236     { FDB_LATENCY_SNAP_CLONE 18 }
237     { FDB_LATENCY_WAL_INS 19 }
238     { FDB_LATENCY_WAL_FIND 20 }
239     { FDB_LATENCY_WAL_COMMIT 21 }
240     { FDB_LATENCY_WAL_FLUSH 22 }
241     { FDB_LATENCY_WAL_RELEASE 23 }
242     { FDB_LATENCY_NUM_STATS 24 } ;
243
244 STRUCT: fdb_latency_stat
245     { lat_count uint64_t }
246     { lat_min uint32_t }
247     { lat_max uint32_t }
248     { lat_avg uint32_t } ;
249
250 STRUCT: fdb_kvs_commit_marker_t
251     { kv_store_name char* }
252     { seqnum fdb_seqnum_t } ;
253
254 TYPEDEF: uint64_t fdb_snapshot_marker_t
255
256 STRUCT: fdb_snapshot_info_t
257     { marker fdb_snapshot_marker_t }
258     { num_kvs_markers int64_t }
259     { kvs_markers fdb_kvs_commit_marker_t* } ;
260
261 ! end fdb_types.h
262
263 ! Begin fdb_errors.h
264 ENUM: fdb_status
265     { FDB_RESULT_SUCCESS 0 }
266     { FDB_RESULT_INVALID_ARGS -1 }
267     { FDB_RESULT_OPEN_FAIL -2 }
268     { FDB_RESULT_NO_SUCH_FILE -3 }
269     { FDB_RESULT_WRITE_FAIL -4 }
270     { FDB_RESULT_READ_FAIL -5 }
271     { FDB_RESULT_CLOSE_FAIL -6 }
272     { FDB_RESULT_COMMIT_FAIL -7 }
273     { FDB_RESULT_ALLOC_FAIL -8 }
274     { FDB_RESULT_KEY_NOT_FOUND -9 }
275     { FDB_RESULT_RONLY_VIOLATION -10 }
276     { FDB_RESULT_COMPACTION_FAIL -11 }
277     { FDB_RESULT_ITERATOR_FAIL -12 }
278     { FDB_RESULT_SEEK_FAIL -13 }
279     { FDB_RESULT_FSYNC_FAIL -14 }
280     { FDB_RESULT_CHECKSUM_ERROR -15 }
281     { FDB_RESULT_FILE_CORRUPTION -16 }
282     { FDB_RESULT_COMPRESSION_FAIL -17 }
283     { FDB_RESULT_NO_DB_INSTANCE -18 }
284     { FDB_RESULT_FAIL_BY_ROLLBACK -19 }
285     { FDB_RESULT_INVALID_CONFIG -20 }
286     { FDB_RESULT_MANUAL_COMPACTION_FAIL -21 }
287     { FDB_RESULT_INVALID_COMPACTION_MODE -22 }
288     { FDB_RESULT_FILE_IS_BUSY -23 }
289     { FDB_RESULT_FILE_REMOVE_FAIL -24 }
290     { FDB_RESULT_FILE_RENAME_FAIL -25 }
291     { FDB_RESULT_TRANSACTION_FAIL -26 }
292     { FDB_RESULT_FAIL_BY_TRANSACTION -27 }
293     { FDB_RESULT_FAIL_BY_COMPACTION -28 }
294     { FDB_RESULT_TOO_LONG_FILENAME -29 }
295     { FDB_RESULT_INVALID_HANDLE -30 }
296     { FDB_RESULT_KV_STORE_NOT_FOUND -31 }
297     { FDB_RESULT_KV_STORE_BUSY -32 }
298     { FDB_RESULT_INVALID_KV_INSTANCE_NAME -33 }
299     { FDB_RESULT_INVALID_CMP_FUNCTION -34 }
300     { FDB_RESULT_IN_USE_BY_COMPACTOR -35 }
301     { FDB_RESULT_FILE_NOT_OPEN -36 }
302     { FDB_RESULT_TOO_BIG_BUFFER_CACHE -37 }
303     { FDB_RESULT_NO_DB_HEADERS -38 }
304     { FDB_RESULT_HANDLE_BUSY -39 }
305     { FDB_RESULT_AIO_NOT_SUPPORTED -40 }
306     { FDB_RESULT_AIO_INIT_FAIL -41 }
307     { FDB_RESULT_AIO_SUBMIT_FAIL -42 }
308     { FDB_RESULT_AIO_GETEVENTS_FAIL -43 }
309     { FDB_RESULT_CRYPTO_ERROR -44 }
310     { FDB_RESULT_COMPACTION_CANCELLATION -45 }
311     { FDB_RESULT_SB_INIT_FAIL -46 }
312     { FDB_RESULT_SB_RACE_CONDITION -47 }
313     { FDB_RESULT_SB_READ_FAIL -48 }
314     { FDB_RESULT_FILE_VERSION_NOT_SUPPORTED -49 }
315     { FDB_RESULT_EPERM -50 }
316     { FDB_RESULT_EIO -51 }
317     { FDB_RESULT_ENXIO -52 }
318     { FDB_RESULT_EBADF -53 }
319     { FDB_RESULT_ENOMEM -54 }
320     { FDB_RESULT_EACCESS -55 }
321     { FDB_RESULT_EFAULT -56 }
322     { FDB_RESULT_EEXIST -57 }
323     { FDB_RESULT_ENODEV -58 }
324     { FDB_RESULT_ENOTDIR -59 }
325     { FDB_RESULT_EISDIR -60 }
326     { FDB_RESULT_EINVAL -61 }
327     { FDB_RESULT_ENFILE -62 }
328     { FDB_RESULT_EMFILE -63 }
329     { FDB_RESULT_EFBIG -64 }
330     { FDB_RESULT_ENOSPC -65 }
331     { FDB_RESULT_EROFS -66 }
332     { FDB_RESULT_EOPNOTSUPP -67 }
333     { FDB_RESULT_ENOBUFS -68 }
334     { FDB_RESULT_ELOOP -69 }
335     { FDB_RESULT_ENAMETOOLONG -70 }
336     { FDB_RESULT_EOVERFLOW -71 }
337     { FDB_RESULT_EAGAIN -72 }
338     { FDB_RESULT_CANCELLED -73 }
339     { FDB_RESULT_ENGINE_NOT_INSTANTIATED -74 }
340     { FDB_RESULT_LOG_FILE_NOT_FOUND -75 }
341     { FDB_RESULT_LOCK_FAIL -76 }
342     { FDB_RESULT_LAST -76 }
343     ; ! update this
344
345 ! End fdb_errors.h
346
347 ! Begin forestdb.h
348 FUNCTION: fdb_status fdb_init ( fdb_config* config )
349 FUNCTION: fdb_config fdb_get_default_config ( )
350 FUNCTION: fdb_kvs_config fdb_get_default_kvs_config ( )
351
352 FUNCTION: fdb_status fdb_open ( fdb_file_handle** ptr_fhandle, c-string filename, fdb_config* fconfig )
353 FUNCTION: fdb_status fdb_open_custom_cmp ( fdb_file_handle** ptr_fhandle, c-string filename, fdb_config* fconfig, size_t num_functions, char** kvs_names, fdb_custom_cmp_variable* functions )
354
355 FUNCTION: fdb_status fdb_set_log_callback ( fdb_kvs_handle* handle, fdb_log_callback log_callback, void* ctx_data )
356
357 FUNCTION: void fdb_set_fatal_error_callback ( fdb_fatal_error_callback err_callback )
358
359 ! doc is calloc'd
360 FUNCTION: fdb_status fdb_doc_create ( fdb_doc** doc, void* key, size_t keylen, void* meta, size_t metalen, void* body, size_t bodylen )
361 FUNCTION: fdb_status fdb_doc_update ( fdb_doc** doc, void* meta, size_t metalen, void* body, size_t bodylen )
362 FUNCTION: fdb_status fdb_doc_set_seqnum ( fdb_doc* doc, fdb_seqnum_t seqnum )
363 FUNCTION: fdb_status fdb_doc_free ( fdb_doc* doc )
364
365 FUNCTION: fdb_status fdb_get ( fdb_kvs_handle* handle, fdb_doc* doc )
366 FUNCTION: fdb_status fdb_get_metaonly ( fdb_kvs_handle* handle, fdb_doc* doc )
367 FUNCTION: fdb_status fdb_get_byseq ( fdb_kvs_handle* handle, fdb_doc* doc )
368 FUNCTION: fdb_status fdb_get_metaonly_byseq ( fdb_kvs_handle* handle, fdb_doc* doc )
369 FUNCTION: fdb_status fdb_get_byoffset ( fdb_kvs_handle* handle, fdb_doc* doc )
370
371 FUNCTION: fdb_status fdb_set ( fdb_kvs_handle* handle, fdb_doc* doc )
372 FUNCTION: fdb_status fdb_del ( fdb_kvs_handle* handle, fdb_doc* doc )
373
374 FUNCTION: fdb_status fdb_get_kv ( fdb_kvs_handle* handle, void* key, size_t keylen, void** value_out, size_t* valuelen_out )
375 FUNCTION: fdb_status fdb_set_kv ( fdb_kvs_handle* handle, void* key, size_t keylen, void* value, size_t valuelen )
376 FUNCTION: fdb_status fdb_del_kv ( fdb_kvs_handle* handle, void* key, size_t keylen )
377 FUNCTION: fdb_status fdb_free_block ( void *ptr )
378
379 FUNCTION: fdb_status fdb_commit ( fdb_file_handle* fhandle, fdb_commit_opt_t opt )
380 FUNCTION: fdb_status fdb_snapshot_open ( fdb_kvs_handle* handle_in, fdb_kvs_handle** handle_out, fdb_seqnum_t snapshot_seqnum )
381 ! Swaps out the handle for a new one
382 FUNCTION: fdb_status fdb_rollback ( fdb_kvs_handle** handle_ptr, fdb_seqnum_t rollback_seqnum )
383 FUNCTION: fdb_status fdb_rollback_all ( fdb_file_handle* fhandle, fdb_snapshot_marker_t marker )
384
385 FUNCTION: fdb_status fdb_iterator_init ( fdb_kvs_handle* handle, fdb_iterator** iterator, void* min_key, size_t min_keylen, void* max_key, size_t max_keylen, fdb_iterator_opt_t opt )
386 FUNCTION: fdb_status fdb_iterator_sequence_init ( fdb_kvs_handle* handle, fdb_iterator** iterator, fdb_seqnum_t min_seq, fdb_seqnum_t max_seq, fdb_iterator_opt_t opt )
387
388 FUNCTION: fdb_status fdb_iterator_prev ( fdb_iterator* iterator )
389 FUNCTION: fdb_status fdb_iterator_next ( fdb_iterator* iterator )
390 FUNCTION: fdb_status fdb_iterator_get ( fdb_iterator* iterator, fdb_doc **doc )
391 FUNCTION: fdb_status fdb_iterator_get_metaonly ( fdb_iterator* iterator, fdb_doc **doc )
392
393 FUNCTION: fdb_status fdb_iterator_seek ( fdb_iterator* iterator, void* seek_key, size_t seek_keylen, fdb_iterator_seek_opt_t direction )
394 FUNCTION: fdb_status fdb_iterator_seek_to_min ( fdb_iterator* iterator )
395 FUNCTION: fdb_status fdb_iterator_seek_to_max ( fdb_iterator* iterator )
396 FUNCTION: fdb_status fdb_iterator_close ( fdb_iterator* iterator )
397
398 FUNCTION: fdb_status fdb_changes_since ( fdb_kvs_handle *handle,
399                              fdb_seqnum_t since,
400                              fdb_iterator_opt_t opt,
401                              fdb_changes_callback_fn callback,
402                              void *ctx )
403 FUNCTION: fdb_status fdb_compact ( fdb_file_handle* fhandle, c-string new_filename )
404 FUNCTION: fdb_status fdb_compact_with_cow ( fdb_file_handle* fhandle, c-string new_filename )
405 FUNCTION: fdb_status fdb_compact_upto ( fdb_file_handle* fhandle, c-string new_filename, fdb_snapshot_marker_t marker )
406 FUNCTION: fdb_status fdb_compact_upto_with_cow ( fdb_file_handle* fhandle, c-string new_filename, fdb_snapshot_marker_t marker )
407 FUNCTION: fdb_status fdb_cancel_compaction ( fdb_file_handle* fhandle )
408 FUNCTION: fdb_status fdb_set_daemon_compaction_interval ( fdb_file_handle* fhandle, size_t interval )
409 FUNCTION: fdb_status fdb_rekey ( fdb_file_handle* fhandle, fdb_encryption_key new_key )
410 FUNCTION: size_t fdb_get_buffer_cache_used ( )
411 FUNCTION: size_t fdb_estimate_space_used ( fdb_file_handle* fhandle )
412 FUNCTION: size_t fdb_estimate_space_used_from ( fdb_file_handle* fhandle, fdb_snapshot_marker_t marker )
413
414 FUNCTION: fdb_status fdb_get_file_info ( fdb_file_handle* fhandle, fdb_file_info* info )
415 FUNCTION: fdb_status fdb_get_kvs_info ( fdb_kvs_handle* handle, fdb_kvs_info* info )
416 FUNCTION: fdb_status fdb_get_kvs_ops_info ( fdb_kvs_handle* handle, fdb_kvs_ops_info* info )
417 FUNCTION: fdb_status fdb_get_latency_stats ( fdb_file_handle* fhandle, fdb_latency_stat* stats, fdb_latency_stat_type type )
418 FUNCTION: fdb_status fdb_get_latency_histogram ( fdb_file_handle* fhandle,
419                                      char** stats,
420                                      size_t* stats_length,
421                                      fdb_latency_stat_type type )
422 FUNCTION: c-string fdb_get_latency_stat_name ( fdb_latency_stat_type type )
423 FUNCTION: fdb_status fdb_get_kvs_seqnum ( fdb_kvs_handle* handle, fdb_seqnum_t* seqnum )
424 FUNCTION: fdb_status fdb_get_kvs_name_list ( fdb_kvs_handle* handle, fdb_kvs_name_list* kvs_name_list )
425
426 FUNCTION: fdb_status fdb_get_all_snap_markers (
427     fdb_file_handle* fhandle,
428     fdb_snapshot_info_t** markers,
429     uint64_t* size )
430
431 FUNCTION: fdb_seqnum_t fdb_get_available_rollback_seq (
432     fdb_kvs_handle* handle,
433     uint64_t request_seqno )
434
435 FUNCTION: fdb_status fdb_free_snap_markers ( fdb_snapshot_info_t* markers, uint64_t size )
436 FUNCTION: fdb_status fdb_free_kvs_name_list ( fdb_kvs_name_list* kvs_name_list )
437
438 FUNCTION: fdb_status fdb_switch_compaction_mode ( fdb_file_handle* fhandle, fdb_compaction_mode_t mode, size_t new_threshold )
439 FUNCTION: fdb_status fdb_close ( fdb_file_handle* fhandle )
440
441 FUNCTION: fdb_status fdb_destroy ( c-string filename, fdb_config* fconfig )
442 FUNCTION: fdb_status fdb_shutdown ( )
443
444 FUNCTION: fdb_status fdb_begin_transaction ( fdb_file_handle* fhandle, fdb_isolation_level_t isolation_level )
445 FUNCTION: fdb_status fdb_end_transaction ( fdb_file_handle* fhandle, fdb_commit_opt_t opt )
446 FUNCTION: fdb_status fdb_abort_transaction ( fdb_file_handle* fhandle )
447 FUNCTION: fdb_status fdb_kvs_open ( fdb_file_handle* fhandle,
448                         fdb_kvs_handle** ptr_handle,
449                         c-string kvs_name,
450                         fdb_kvs_config* config )
451
452 FUNCTION: fdb_status fdb_kvs_open_default ( fdb_file_handle* fhandle,
453                                 fdb_kvs_handle** ptr_handle,
454                                 fdb_kvs_config* config )
455
456 FUNCTION: fdb_status fdb_kvs_close ( fdb_kvs_handle* handle )
457
458 FUNCTION: fdb_status fdb_kvs_remove ( fdb_file_handle* fhandle, c-string kvs_name )
459
460 FUNCTION: fdb_status fdb_set_block_reusing_params ( fdb_file_handle* fhandle, size_t block_reusing_threshold, size_t num_keeping_headers )
461 FUNCTION: char* fdb_error_msg ( fdb_status err_code )
462 FUNCTION: char* fdb_get_lib_version ( )
463 FUNCTION: char* fdb_get_file_version ( fdb_file_handle* fhandle )
464 FUNCTION: fdb_filemgr_ops_t* fdb_get_default_file_ops ( )
465
466 FUNCTION: fdb_status fdb_fetch_handle_stats ( fdb_kvs_handle *handle,
467                                               fdb_handle_stats_cb callback,
468                                               void *ctx )