1 ! Copyright (C) 2010 Dmitry Shubin.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: alien alien.c-types alien.libraries alien.syntax classes.struct
8 { [ unix? ] [ "libgdbm.so" ] }
9 { [ winnt? ] [ "gdbm.dll" ] }
10 { [ macosx? ] [ "libgdbm.dylib" ] }
11 } cond cdecl add-library >>
15 C-GLOBAL: c-string gdbm_version
17 CONSTANT: GDBM_READER 0
18 CONSTANT: GDBM_WRITER 1
19 CONSTANT: GDBM_WRCREAT 2
20 CONSTANT: GDBM_NEWDB 3
21 CONSTANT: GDBM_FAST HEX: 10
22 CONSTANT: GDBM_SYNC HEX: 20
23 CONSTANT: GDBM_NOLOCK HEX: 40
25 CONSTANT: GDBM_INSERT 0
26 CONSTANT: GDBM_REPLACE 1
28 CONSTANT: GDBM_CACHESIZE 1
29 CONSTANT: GDBM_FASTMODE 2
30 CONSTANT: GDBM_SYNCMODE 3
31 CONSTANT: GDBM_CENTFREE 4
32 CONSTANT: GDBM_COALESCEBLKS 5
34 STRUCT: datum { dptr char* } { dsize int } ;
37 TYPEDEF: _GDBM_FILE* GDBM_FILE
39 CALLBACK: void fatal_func_cb ;
40 FUNCTION: GDBM_FILE gdbm_open ( c-string name, int block_size, int read_write, int mode, fatal_func_cb fatal_func ) ;
41 FUNCTION-ALIAS: gdbm-close void gdbm_close ( GDBM_FILE dbf ) ;
42 FUNCTION: int gdbm_store ( GDBM_FILE dbf, datum key, datum content, int flag ) ;
43 FUNCTION: datum gdbm_fetch ( GDBM_FILE dbf, datum key ) ;
44 FUNCTION: int gdbm_delete ( GDBM_FILE dbf, datum key ) ;
45 FUNCTION: datum gdbm_firstkey ( GDBM_FILE dbf ) ;
46 FUNCTION: datum gdbm_nextkey ( GDBM_FILE dbf, datum key ) ;
47 FUNCTION: int gdbm_reorganize ( GDBM_FILE dbf ) ;
48 FUNCTION: void gdbm_sync ( GDBM_FILE dbf ) ;
49 FUNCTION: int gdbm_exists ( GDBM_FILE dbf, datum key ) ;
50 FUNCTION: int gdbm_setopt ( GDBM_FILE dbf, int option, int* value, int size ) ;
51 FUNCTION: int gdbm_fdesc ( GDBM_FILE dbf ) ;
65 gdbm-reader-cant-delete
66 gdbm-reader-cant-store
67 gdbm-reader-cant-reorganize
70 gdbm-reorganize-failed
73 gdbm-option-already-set
76 C-GLOBAL: gdbm-error gdbm_errno
78 FUNCTION: c-string gdbm_strerror ( gdbm-error errno ) ;