C-GLOBAL: c-string gdbm_version
-ENUM: gdbm-role reader writer wrcreat newdb ;
-
CONSTANT: GDBM_SYNC HEX: 20
CONSTANT: GDBM_NOLOCK HEX: 40
FUNCTION: int gdbm_setopt ( GDBM_FILE dbf, int option, int* value, int size ) ;
FUNCTION: int gdbm_fdesc ( GDBM_FILE dbf ) ;
-ENUM: gdbm-error
- gdbm-no-error
- gdbm-malloc-error
- gdbm-block-size-error
- gdbm-file-open-error
- gdbm-file-write-error
- gdbm-file-seek-error
- gdbm-file-read-error
- gdbm-bad-magic-number
- gdbm-empty-database
- gdbm-cant-be-reader
- gdbm-cant-be-writer
- gdbm-reader-cant-delete
- gdbm-reader-cant-store
- gdbm-reader-cant-reorganize
- gdbm-unknown-update
- gdbm-item-not-found
- gdbm-reorganize-failed
- gdbm-cannot-replace
- gdbm-illegal-data
- gdbm-option-already-set
- gdbm-illegal-option ;
-
-C-GLOBAL: gdbm-error gdbm_errno
+C-GLOBAL: int gdbm_errno
-FUNCTION: c-string gdbm_strerror ( gdbm-error errno ) ;
+FUNCTION: c-string gdbm_strerror ( int errno ) ;
! Copyright (C) 2010 Dmitry Shubin.
! See http://factorcode.org/license.txt for BSD license.
-USING: accessors arrays continuations gdbm gdbm.ffi io.directories
+USING: accessors arrays continuations gdbm io.directories
io.files.temp kernel sequences sets tools.test ;
IN: gdbm.tests
! Copyright (C) 2010 Dmitry Shubin.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors alien.c-types alien.data alien.destructors
-alien.enums classes.struct combinators destructors gdbm.ffi io.backend
-kernel libc locals math namespaces sequences serialize strings ;
+alien.enums alien.syntax classes.struct combinators destructors
+gdbm.ffi io.backend kernel libc locals math namespaces sequences
+serialize strings ;
IN: gdbm
+ENUM: gdbm-role reader writer wrcreat newdb ;
+
TUPLE: gdbm
{ name string }
{ block-size integer }
: <gdbm> ( -- gdbm ) gdbm new ;
+ENUM: gdbm-error
+ gdbm-no-error
+ gdbm-malloc-error
+ gdbm-block-size-error
+ gdbm-file-open-error
+ gdbm-file-write-error
+ gdbm-file-seek-error
+ gdbm-file-read-error
+ gdbm-bad-magic-number
+ gdbm-empty-database
+ gdbm-cant-be-reader
+ gdbm-cant-be-writer
+ gdbm-reader-cant-delete
+ gdbm-reader-cant-store
+ gdbm-reader-cant-reorganize
+ gdbm-unknown-update
+ gdbm-item-not-found
+ gdbm-reorganize-failed
+ gdbm-cannot-replace
+ gdbm-illegal-data
+ gdbm-option-already-set
+ gdbm-illegal-option ;
+
<PRIVATE
-: gdbm-throw ( -- * ) gdbm_errno throw ;
+: gdbm-throw ( -- * ) gdbm_errno gdbm-error number>enum throw ;
: check-error ( ret -- ) 0 = [ gdbm-throw ] unless ;
: gdbm-info ( -- str ) gdbm_version ;
-: gdbm-error-message ( error -- msg ) gdbm_strerror ;
+: gdbm-error-message ( error -- msg )
+ enum>number gdbm_strerror ;
: replace ( key content -- ) GDBM_REPLACE gdbm-store ;
: insert ( key content -- ) GDBM_INSERT gdbm-store ;