]> gitweb.factorcode.org Git - factor.git/commitdiff
added query and delete options
authorSascha Matzke <sascha.matzke@didolo.org>
Sat, 31 Jul 2010 09:41:07 +0000 (11:41 +0200)
committerSascha Matzke <sascha.matzke@didolo.org>
Sat, 31 Jul 2010 09:41:07 +0000 (11:41 +0200)
extra/mongodb/driver/driver.factor
extra/mongodb/msg/msg.factor
extra/mongodb/operations/operations.factor
extra/mongodb/tuple/tuple.factor

index 0fff78249ca1358c2c993c3005a2a9ffb0785d57..28e6e2c0aa368754f8e267dfa1ac5470a4b177d0 100644 (file)
@@ -185,6 +185,15 @@ PRIVATE>
 : <query> ( collection assoc -- mdb-query-msg )
     <mdb-query-msg> ; inline
 
+: >slave-ok ( mdb-query-msg -- mdb-query-msg )
+    [ 2 set-bit ] change-flags ;
+
+: >await-data ( mdb-query-msg -- mdb-query-msg )
+    [ 5 set-bit ] change-flags ;
+
+: >tailable ( mdb-query-msg -- mdb-query-msg )
+    [ 1 set-bit ] change-flags ;
+
 : limit ( mdb-query-msg limit# -- mdb-query-msg )
     >>return# ; inline
 
@@ -299,13 +308,17 @@ PRIVATE>
 : run-cmd ( cmd -- result )
     send-cmd ; inline
 
-: delete ( collection selector -- )
-    [ check-collection ] dip
-    <mdb-delete-msg> send-message-check-error ;
+: <delete> ( collection selector -- mdb-delete-msg )
+    [ check-collection ] dip <mdb-delete-msg> ;
 
-: delete-unsafe ( collection selector -- )
-    [ check-collection ] dip
-    <mdb-delete-msg> send-message ;
+: >single-remove ( mdb-delete-msg -- mdb-delete-msg )
+    [ 0 set-bit ] change-delete-flags ;
+
+: delete ( mdb-delete-msg -- )
+    send-message-check-error ;
+
+: delete-unsafe ( mdb-delete-msg -- )
+    send-message ;
 
 : kill-cursor ( mdb-cursor -- )
     id>> <mdb-killcursors-msg> send-message ;
index 3d1ca28557920a324f51fe1025dede50bf0666db..5011e8897cd7936439114f24b8eca077fb2c3dbd 100644 (file)
@@ -44,6 +44,7 @@ TUPLE: mdb-update-msg < mdb-msg
 
 TUPLE: mdb-delete-msg < mdb-msg
     { collection string }
+    { delete-flags integer initial: 0 }
     { selector assoc } ;
 
 TUPLE: mdb-getmore-msg < mdb-msg
index 1b51e2d377a3e725e072475a61774e00f85f0be3..cb41ae5ea99fc22c561ee45246c2b594403069ac 100644 (file)
@@ -128,9 +128,12 @@ PRIVATE>
 
 : write-delete-message ( message -- )
     [
-       [ flags>> write-int32 ]
-       [ collection>> write-cstring ]
-       [ 0 write-int32 selector>> assoc>stream ] tri
+        {
+            [ flags>> write-int32 ]
+            [ collection>> write-cstring ]
+            [ delete-flags>> write-int32 ]
+            [ selector>> assoc>stream ]
+        } cleave
     ] (write-message) ; inline
 
 : write-getmore-message ( message -- )
index c787405f048d72e5374670d966dc9427676da9a8..3b0392b70d97053d325eab45b764650329deae09 100644 (file)
@@ -73,7 +73,7 @@ PRIVATE>
 
 : delete-tuple ( tuple -- )
    [ tuple-collection name>> ] keep
-   id-selector delete ;
+   id-selector <delete> delete ;
 
 : delete-tuples ( seq -- )
     [ delete-tuple ] each ;