]> gitweb.factorcode.org Git - factor.git/commitdiff
gdbm: code cleanup
authorDmitry Shubin <dmitry.sh@gmail.com>
Sun, 13 Jun 2010 20:37:40 +0000 (00:37 +0400)
committerDmitry Shubin <dmitry.sh@gmail.com>
Sun, 13 Jun 2010 20:37:40 +0000 (00:37 +0400)
extra/gdbm/gdbm.factor

index 55da935aeb826e778951ed8bc034f14ec8751709..642d0d3aeb5ed4b82ac0d8e240203a24e9e4e487 100644 (file)
@@ -5,68 +5,71 @@ classes.struct combinators destructors gdbm.ffi io.backend kernel libc
 literals math namespaces sequences serialize strings ;
 IN: gdbm
 
-: object>datum ( obj -- datum )
-    object>bytes [ malloc-byte-array &free ] [ length ] bi
-    datum <struct-boa> ;
-
-: datum>object* ( datum -- obj ? )
-    [ dptr>> ] [ dsize>> ] bi over
-    [ memory>byte-array bytes>object t ] [ drop f ] if ;
-
-SYMBOL: current-dbf
-
-: dbf ( -- dbf ) current-dbf get ;
-
 TUPLE: gdbm
     { name       string  }
     { block-size integer }
     { flags      integer initial: $ GDBM_WRCREAT }
     { mode       integer initial: OCT: 644 } ;
 
-DESTRUCTOR: gdbm-close
-
 ERROR: gdbm-error errno msg ;
 
+
+<PRIVATE
+
 : gdbm-throw ( -- * ) gdbm_errno dup gdbm_strerror gdbm-error ;
 
 : check-error ( ret -- ) 0 = [ gdbm-throw ] unless ;
 
+SYMBOL: current-dbf
+
+: dbf ( -- dbf ) current-dbf get ;
+
 : gdbm-open ( gdbm -- dbf )
     {
         [ name>> normalize-path ]
         [ block-size>> ] [ flags>> ] [ mode>> ]
     } cleave f gdbm_open [ gdbm-throw ] unless* ;
 
+DESTRUCTOR: gdbm-close
+
+: object>datum ( obj -- datum )
+    object>bytes [ malloc-byte-array &free ] [ length ] bi
+    datum <struct-boa> ;
+
+: datum>object* ( datum -- obj ? )
+    [ dptr>> ] [ dsize>> ] bi over
+    [ memory>byte-array bytes>object t ] [ drop f ] if ;
+
 : gdbm-store ( key content flag -- )
     [
         { [ dbf ] [ object>datum ] [ object>datum ] [ ] } spread
         gdbm_store check-error
     ] with-destructors ;
 
-: gdbm-replace ( key content -- ) GDBM_REPLACE gdbm-store ;
+PRIVATE>
 
-: gdbm-insert ( key content -- ) GDBM_INSERT gdbm-store ;
-
-: gdbm-fetch* ( key -- content ? )
-    [ dbf swap object>datum gdbm_fetch datum>object* ]
-    with-destructors ;
 
-: gdbm-fetch ( key -- content/f ) gdbm-fetch* drop ;
+: gdbm-replace ( key content -- ) GDBM_REPLACE gdbm-store ;
+: gdbm-insert ( key content -- ) GDBM_INSERT gdbm-store ;
 
 : gdbm-delete ( key -- )
     [ dbf swap object>datum gdbm_delete check-error ]
     with-destructors ;
 
-: gdbm-firstkey* ( -- key ? )
-    [ dbf gdbm_firstkey datum>object* ] with-destructors ;
+: gdbm-fetch* ( key -- content ? )
+    [ dbf swap object>datum gdbm_fetch datum>object* ]
+    with-destructors ;
 
-: gdbm-firstkey ( -- key/f ) gdbm-firstkey* drop ;
+: gdbm-first-key* ( -- key ? )
+    [ dbf gdbm_firstkey datum>object* ] with-destructors ;
 
-: gdbm-nextkey* ( key -- key ? )
+: gdbm-next-key* ( key -- key ? )
     [ dbf swap object>datum gdbm_nextkey datum>object* ]
     with-destructors ;
 
-: gdbm-nextkey ( key -- key/f ) gdbm-nextkey* drop ;
+: gdbm-fetch ( key -- content/f ) gdbm-fetch* drop ;
+: gdbm-first-key ( -- key/f ) gdbm-first-key* drop ;
+: gdbm-next-key ( key -- key/f ) gdbm-next-key* drop ;
 
 : gdbm-reorganize ( -- ) dbf gdbm_reorganize check-error ;