factor/extra/gdbm/ffi/ffi.factor

50 lines
1.6 KiB
Factor

! Copyright (C) 2010 Dmitry Shubin.
! See http://factorcode.org/license.txt for BSD license.
USING: alien alien.c-types alien.libraries alien.syntax classes.struct
combinators system ;
IN: gdbm.ffi
<< "libgdbm" os {
{ [ unix? ] [ "libgdbm.so" ] }
{ [ winnt? ] [ "gdbm.dll" ] }
{ [ macosx? ] [ "libgdbm.dylib" ] }
} cond cdecl add-library >>
LIBRARY: libgdbm
C-GLOBAL: c-string gdbm_version
CONSTANT: GDBM_SYNC HEX: 20
CONSTANT: GDBM_NOLOCK HEX: 40
CONSTANT: GDBM_INSERT 0
CONSTANT: GDBM_REPLACE 1
CONSTANT: GDBM_CACHESIZE 1
CONSTANT: GDBM_SYNCMODE 3
CONSTANT: GDBM_CENTFREE 4
CONSTANT: GDBM_COALESCEBLKS 5
STRUCT: datum { dptr char* } { dsize int } ;
C-TYPE: _GDBM_FILE
TYPEDEF: _GDBM_FILE* GDBM_FILE
CALLBACK: void fatal_func_cb ;
FUNCTION: GDBM_FILE gdbm_open ( c-string name, int block_size, int read_write, int mode, fatal_func_cb fatal_func ) ;
FUNCTION-ALIAS: gdbm-close void gdbm_close ( GDBM_FILE dbf ) ;
FUNCTION: int gdbm_store ( GDBM_FILE dbf, datum key, datum content, int flag ) ;
FUNCTION: datum gdbm_fetch ( GDBM_FILE dbf, datum key ) ;
FUNCTION: int gdbm_delete ( GDBM_FILE dbf, datum key ) ;
FUNCTION: datum gdbm_firstkey ( GDBM_FILE dbf ) ;
FUNCTION: datum gdbm_nextkey ( GDBM_FILE dbf, datum key ) ;
FUNCTION: int gdbm_reorganize ( GDBM_FILE dbf ) ;
FUNCTION: void gdbm_sync ( GDBM_FILE dbf ) ;
FUNCTION: int gdbm_exists ( GDBM_FILE dbf, datum key ) ;
FUNCTION: int gdbm_setopt ( GDBM_FILE dbf, int option, int* value, int size ) ;
FUNCTION: int gdbm_fdesc ( GDBM_FILE dbf ) ;
C-GLOBAL: int gdbm_errno
FUNCTION: c-string gdbm_strerror ( int errno ) ;