gdbm: move enums to main vocab

db4
Dmitry Shubin 2010-06-28 03:50:06 +04:00
parent 0c020a47d8
commit 2446a59744
3 changed files with 34 additions and 32 deletions

View File

@ -14,8 +14,6 @@ LIBRARY: libgdbm
C-GLOBAL: c-string gdbm_version
ENUM: gdbm-role reader writer wrcreat newdb ;
CONSTANT: GDBM_SYNC HEX: 20
CONSTANT: GDBM_NOLOCK HEX: 40
@ -46,29 +44,6 @@ 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 ) ;
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: int gdbm_errno
C-GLOBAL: gdbm-error gdbm_errno
FUNCTION: c-string gdbm_strerror ( gdbm-error errno ) ;
FUNCTION: c-string gdbm_strerror ( int errno ) ;

View File

@ -1,6 +1,6 @@
! 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

View File

@ -1,10 +1,13 @@
! 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 }
@ -15,10 +18,33 @@ TUPLE: gdbm
: <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 ;
@ -69,7 +95,8 @@ PRIVATE>
: 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 ;