]> gitweb @ CieloNegro.org - bindings-apr-util.git/commitdiff
Bindings.APR.DBM
authorPHO <pho@cielonegro.org>
Sat, 11 Sep 2010 03:02:46 +0000 (12:02 +0900)
committerPHO <pho@cielonegro.org>
Sat, 11 Sep 2010 03:02:46 +0000 (12:02 +0900)
Bindings/APR/DBM.hsc [new file with mode: 0644]
bindings-apr-util.cabal
cbits/helper_apr_dbm.c [new file with mode: 0644]

diff --git a/Bindings/APR/DBM.hsc b/Bindings/APR/DBM.hsc
new file mode 100644 (file)
index 0000000..2b40726
--- /dev/null
@@ -0,0 +1,35 @@
+#include <bindings.dsl.h>
+#include <apr_dbm.h>
+
+module Bindings.APR.DBM where
+#strict_import
+import Bindings.APR
+import Bindings.APR.ErrNo
+import Bindings.APR.File.Info
+import Bindings.APR.Pools
+
+#opaque_t apr_dbm_t
+
+#starttype apr_datum_t
+#  field dptr , Ptr CChar
+#  field dsize, <apr_size_t>
+#stoptype
+
+#num APR_DBM_READONLY
+#num APR_DBM_READWRITE
+#num APR_DBM_RWCREATE
+#num APR_DBM_RWTRUNC
+
+#ccall apr_dbm_open_ex, Ptr (Ptr <apr_dbm_t>) -> Ptr CChar -> Ptr CChar -> <apr_int32_t> -> <apr_fileperms_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>
+#ccall apr_dbm_open   , Ptr (Ptr <apr_dbm_t>) -> Ptr CChar -> <apr_int32_t> -> <apr_fileperms_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>
+#ccall apr_dbm_close  , Ptr <apr_dbm_t> -> IO ()
+#cinline apr_dbm_fetch  , Ptr <apr_dbm_t> -> Ptr <apr_datum_t> -> Ptr <apr_datum_t> -> IO <apr_status_t>
+#cinline apr_dbm_store  , Ptr <apr_dbm_t> -> Ptr <apr_datum_t> -> Ptr <apr_datum_t> -> IO <apr_status_t>
+#cinline apr_dbm_delete , Ptr <apr_dbm_t> -> Ptr <apr_datum_t> -> IO <apr_status_t>
+#cinline apr_dbm_exists , Ptr <apr_dbm_t> -> Ptr <apr_datum_t> -> IO CInt
+#ccall apr_dbm_firstkey, Ptr <apr_dbm_t> -> Ptr <apr_datum_t> -> IO <apr_status_t>
+#ccall apr_dbm_nextkey , Ptr <apr_dbm_t> -> Ptr <apr_datum_t> -> IO <apr_status_t>
+#cinline apr_dbm_freedatum, Ptr <apr_dbm_t> -> Ptr <apr_datum_t> -> IO ()
+#ccall apr_dbm_geterror, Ptr <apr_dbm_t> -> Ptr CInt -> Ptr CChar -> <apr_size_t> -> IO (Ptr CChar)
+#ccall apr_dbm_get_usednames_ex, Ptr <apr_pool_t> -> Ptr CChar -> Ptr CChar -> Ptr (Ptr CChar) -> Ptr (Ptr CChar) -> IO <apr_status_t>
+#ccall apr_dbm_get_usednames, Ptr <apr_pool_t> -> Ptr CChar -> Ptr (Ptr CChar) -> Ptr (Ptr CChar) -> IO ()
index f154480a4c98fc946806f34d9f377845746a468f..20188386ccc3125c8be94bf68b2028b251f1203e 100644 (file)
@@ -35,10 +35,12 @@ Library
         Bindings.APR.Buckets
         Bindings.APR.Date
         Bindings.APR.DBD
         Bindings.APR.Buckets
         Bindings.APR.Date
         Bindings.APR.DBD
+        Bindings.APR.DBM
 
     C-Sources:
         cbits/helper_apr_anylock.c
         cbits/helper_apr_buckets.c
 
     C-Sources:
         cbits/helper_apr_anylock.c
         cbits/helper_apr_buckets.c
+        cbits/helper_apr_dbm.c
 
     Extensions:
         ForeignFunctionInterface
 
     Extensions:
         ForeignFunctionInterface
diff --git a/cbits/helper_apr_dbm.c b/cbits/helper_apr_dbm.c
new file mode 100644 (file)
index 0000000..bf52f0c
--- /dev/null
@@ -0,0 +1,22 @@
+#include <bindings.cmacros.h>
+#include <apr_dbm.h>
+
+apr_status_t inline_apr_dbm_fetch(apr_dbm_t* dbm, apr_datum_t* key, apr_datum_t* pvalue) {
+    return apr_dbm_fetch(dbm, *key, pvalue);
+}
+
+apr_status_t inline_apr_dbm_store(apr_dbm_t* dbm, apr_datum_t* key, apr_datum_t* value) {
+    return apr_dbm_store(dbm, *key, *value);
+}
+
+apr_status_t inline_apr_dbm_delete(apr_dbm_t* dbm, apr_datum_t* key) {
+    return apr_dbm_delete(dbm, *key);
+}
+
+int inline_apr_dbm_exists(apr_dbm_t* dbm, apr_datum_t* key) {
+    return apr_dbm_exists(dbm, *key);
+}
+
+void inline_apr_dbm_freedatum(apr_dbm_t* dbm, apr_datum_t* data) {
+    apr_dbm_freedatum(dbm, *data);
+}