]> gitweb.factorcode.org Git - factor.git/commitdiff
tokyo.abstractdb: Renamed vocab, refactored memory streams to tokyo.utils vocab
authorBruno Deferrari <utizoc@gmail.com>
Wed, 17 Jun 2009 23:23:39 +0000 (20:23 -0300)
committerBruno Deferrari <utizoc@gmail.com>
Wed, 17 Jun 2009 23:23:39 +0000 (20:23 -0300)
extra/tokyo/abstractdb/abstractdb.factor [new file with mode: 0644]
extra/tokyo/abstractdb/authors.txt [new file with mode: 0644]
extra/tokyo/abstractdb/summary.txt [new file with mode: 0644]
extra/tokyo/cabinet/abstract/abstract.factor [deleted file]
extra/tokyo/cabinet/abstract/authors.txt [deleted file]
extra/tokyo/cabinet/abstract/summary.txt [deleted file]
extra/tokyo/utils/authors.txt [new file with mode: 0644]
extra/tokyo/utils/summary.txt [new file with mode: 0644]
extra/tokyo/utils/utils.factor [new file with mode: 0644]

diff --git a/extra/tokyo/abstractdb/abstractdb.factor b/extra/tokyo/abstractdb/abstractdb.factor
new file mode 100644 (file)
index 0000000..1433c27
--- /dev/null
@@ -0,0 +1,60 @@
+! Copyright (C) 2009 Bruno Deferrari
+! See http://factorcode.org/license.txt for BSD license.
+USING: accessors alien.c-types arrays assocs destructors
+kernel locals sequences serialize vectors
+tokyo.alien.tcadb tokyo.alien.tcutil tokyo.utils ;
+IN: tokyo.abstractdb
+
+TUPLE: tokyo-abstractdb handle disposed ;
+
+INSTANCE: tokyo-abstractdb assoc
+
+: <tokyo-abstractdb> ( name -- tokyo-abstractdb )
+    tcadbnew [ swap tcadbopen drop ] keep
+    tokyo-abstractdb new [ (>>handle) ] keep ;
+
+M: tokyo-abstractdb dispose* [ tcadbdel f ] change-handle drop ;
+
+M:: tokyo-abstractdb at* ( key db -- value/f ? )
+    0 <int>          :> sizeout
+    db handle>>      :> handle
+    key object>bytes :> kbytes
+    kbytes length    :> key-size
+    handle kbytes key-size sizeout tcadbget :> output
+    output [
+        [ memory>object ] [ tcfree ] bi t
+    ] [ f f ] if* ;
+
+M: tokyo-abstractdb assoc-size ( db -- size ) handle>> tcadbrnum ;
+
+! FIXME: make this nicer
+M:: tokyo-abstractdb >alist ( db -- alist )
+    db handle>>            :> handle
+    0 <int>                :> size-out
+    db assoc-size <vector> :> keys
+    handle tcadbiterinit drop
+    [ handle size-out tcadbiternext dup ] [
+        [ memory>object ] [ tcfree ] bi
+        keys push
+    ] while drop
+    keys [ dup db at 2array ] { } map-as ;
+
+M:: tokyo-abstractdb set-at ( value key db -- )
+    db handle>>        :> handle
+    key object>bytes   :> kbytes
+    kbytes length      :> key-size
+    value object>bytes :> vbytes
+    vbytes length      :> value-size
+    handle kbytes key-size vbytes value-size tcadbput drop ;
+
+M:: tokyo-abstractdb delete-at ( key db -- )
+    db handle>>      :> handle
+    key object>bytes :> kbytes
+    kbytes length    :> key-size
+    handle kbytes key-size tcadbout drop ;
+
+M: tokyo-abstractdb clear-assoc ( db -- ) handle>> tcadbvanish drop ;
+
+M: tokyo-abstractdb equal? assoc= ;
+
+M: tokyo-abstractdb hashcode* assoc-hashcode ;
diff --git a/extra/tokyo/abstractdb/authors.txt b/extra/tokyo/abstractdb/authors.txt
new file mode 100644 (file)
index 0000000..f4a8cb1
--- /dev/null
@@ -0,0 +1 @@
+Bruno Deferrari
diff --git a/extra/tokyo/abstractdb/summary.txt b/extra/tokyo/abstractdb/summary.txt
new file mode 100644 (file)
index 0000000..a2a21db
--- /dev/null
@@ -0,0 +1 @@
+Higher level API for Tokyo Cabinet's Abstract database API. Implements the associative protocol.
diff --git a/extra/tokyo/cabinet/abstract/abstract.factor b/extra/tokyo/cabinet/abstract/abstract.factor
deleted file mode 100644 (file)
index 245267f..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-! Copyright (C) 2009 Bruno Deferrari
-! See http://factorcode.org/license.txt for BSD license.
-USING: accessors alien.c-types arrays assocs destructors
-io io.streams.memory kernel libc locals
-sequences serialize tokyo.alien.tcadb tokyo.alien.tcutil vectors ;
-IN: tokyo.cabinet.abstract
-
-TUPLE: tokyo-abstractdb handle disposed ;
-
-<PRIVATE
-: with-memory-reader ( memory quot -- )
-    [ <memory-stream> ] dip with-input-stream* ; inline
-
-: memory>object ( memory -- object )
-    [ deserialize ] with-memory-reader ;
-PRIVATE>
-
-INSTANCE: tokyo-abstractdb assoc
-
-: <tokyo-abstractdb> ( name -- tokyo-abstractdb )
-    tcadbnew [ swap tcadbopen drop ] keep
-    tokyo-abstractdb new [ (>>handle) ] keep ;
-
-M: tokyo-abstractdb dispose* [ tcadbdel f ] change-handle drop ;
-
-M:: tokyo-abstractdb at* ( key db -- value/f ? )
-    0 <int>          :> sizeout
-    db handle>>      :> handle
-    key object>bytes :> kbytes
-    kbytes length    :> key-size
-    handle kbytes key-size sizeout tcadbget :> output
-    output [
-        [ memory>object ] [ tcfree ] bi t
-    ] [ f f ] if* ;
-
-M: tokyo-abstractdb assoc-size ( db -- size ) handle>> tcadbrnum ;
-
-! FIXME: make this nicer
-M:: tokyo-abstractdb >alist ( db -- alist )
-    db handle>>            :> handle
-    0 <int>                :> size-out
-    db assoc-size <vector> :> keys
-    handle tcadbiterinit drop
-    [ handle size-out tcadbiternext dup ] [
-        [ memory>object ] [ tcfree ] bi
-        keys push
-    ] while drop
-    keys [ dup db at 2array ] { } map-as ;
-
-M:: tokyo-abstractdb set-at ( value key db -- )
-    db handle>>        :> handle
-    key object>bytes   :> kbytes
-    kbytes length      :> key-size
-    value object>bytes :> vbytes
-    vbytes length      :> value-size
-    handle kbytes key-size vbytes value-size tcadbput drop ;
-
-M:: tokyo-abstractdb delete-at ( key db -- )
-    db handle>>      :> handle
-    key object>bytes :> kbytes
-    kbytes length    :> key-size
-    handle kbytes key-size tcadbout drop ;
-
-M: tokyo-abstractdb clear-assoc ( db -- ) handle>> tcadbvanish drop ;
-
-M: tokyo-abstractdb equal? assoc= ;
-
-M: tokyo-abstractdb hashcode* assoc-hashcode ;
diff --git a/extra/tokyo/cabinet/abstract/authors.txt b/extra/tokyo/cabinet/abstract/authors.txt
deleted file mode 100644 (file)
index f4a8cb1..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Bruno Deferrari
diff --git a/extra/tokyo/cabinet/abstract/summary.txt b/extra/tokyo/cabinet/abstract/summary.txt
deleted file mode 100644 (file)
index a2a21db..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Higher level API for Tokyo Cabinet's Abstract database API. Implements the associative protocol.
diff --git a/extra/tokyo/utils/authors.txt b/extra/tokyo/utils/authors.txt
new file mode 100644 (file)
index 0000000..f4a8cb1
--- /dev/null
@@ -0,0 +1 @@
+Bruno Deferrari
diff --git a/extra/tokyo/utils/summary.txt b/extra/tokyo/utils/summary.txt
new file mode 100644 (file)
index 0000000..5e3ec0e
--- /dev/null
@@ -0,0 +1 @@
+Some utility words used by the tokyo vocabs
diff --git a/extra/tokyo/utils/utils.factor b/extra/tokyo/utils/utils.factor
new file mode 100644 (file)
index 0000000..2b589e4
--- /dev/null
@@ -0,0 +1,10 @@
+! Copyright (C) 2009 Bruno Deferrari
+! See http://factorcode.org/license.txt for BSD license.
+USING: io io.streams.memory serialize kernel ;
+IN: tokyo.utils
+
+: with-memory-reader ( memory quot -- )
+    [ <memory-stream> ] dip with-input-stream* ; inline
+
+: memory>object ( memory -- object )
+    [ deserialize ] with-memory-reader ;