2 ;; Bigloo nmdb bindings
8 (type _nmdb_t (pointer void) "void *")
9 (type long* (pointer long) "int64_t *")
11 (macro _nmdb_init::_nmdb_t () "nmdb_init")
12 (macro _nmdb_free::int (::_nmdb_t) "nmdb_free")
14 (macro _nmdb_add_tipc_server::int (::_nmdb_t ::int)
15 "nmdb_add_tipc_server")
16 (macro _nmdb_add_tcp_server::int (::_nmdb_t ::string ::int)
17 "nmdb_add_tcp_server")
18 (macro _nmdb_add_udp_server::int (::_nmdb_t ::string ::int)
19 "nmdb_add_udp_server")
20 (macro _nmdb_add_sctp_server::int (::_nmdb_t ::string ::int)
21 "nmdb_add_sctp_server")
24 (::_nmdb_t ::string ::uint ::string ::uint)
26 (macro _nmdb_set_sync::int
27 (::_nmdb_t ::string ::uint ::string ::uint)
29 (macro _nmdb_cache_set::int
30 (::_nmdb_t ::string ::uint ::string ::uint)
33 (macro _nmdb_get::ulong
34 (::_nmdb_t ::string ::uint ::string ::uint)
36 (macro _nmdb_cache_get::ulong
37 (::_nmdb_t ::string ::uint ::string ::uint)
41 (::_nmdb_t ::string ::uint)
43 (macro _nmdb_del_sync::int
44 (::_nmdb_t ::string ::uint)
46 (macro _nmdb_cache_del::int
47 (::_nmdb_t ::string ::uint)
51 (::_nmdb_t ::string ::uint ::string ::uint ::string ::uint)
53 (macro _nmdb_cache_cas::int
54 (::_nmdb_t ::string ::uint ::string ::uint ::string ::uint)
57 (macro _nmdb_incr::int
58 (::_nmdb_t ::string ::uint ::long ::long*)
60 (macro _nmdb_cache_incr::int
61 (::_nmdb_t ::string ::uint ::long ::long*)
70 (nmdb-add-tipc-server db port)
71 (nmdb-add-tcp-server db addr port)
72 (nmdb-add-udp-server db addr port)
73 (nmdb-add-sctp-server db addr port)
76 (nmdb-cache-get db key)
79 (nmdb-set-sync db key val)
80 (nmdb-cache-set db key val)
83 (nmdb-del-sync db key)
84 (nmdb-cache-del db key)
86 (nmdb-cas db key oldval newval)
87 (nmdb-cache-cas db key oldval newval)
89 (nmdb-incr db key increment)
90 (nmdb-cache-incr db key increment)
96 ;; creator and destructor
97 (define (make-nmdb) (_nmdb_init))
98 (define (nmdb-free db) (_nmdb_free db))
101 (define (nmdb-add-tipc-server db port) (_nmdb_add_tipc_server db port))
102 (define (nmdb-add-tcp-server db addr port) (_nmdb_add_tcp_server db addr port))
103 (define (nmdb-add-udp-server db addr port) (_nmdb_add_udp_server db addr port))
104 (define (nmdb-add-sctp-server db addr port) (_nmdb_add_sctp_server db addr port))
107 (define (nmdb-generic-get func db key)
108 (define buflen (* 70 1024))
109 (define buf (make-string buflen))
110 (define vsize (func db key (string-length key) buf buflen))
113 (substring buf 0 vsize) )
116 (define (nmdb-get db key) (nmdb-generic-get _nmdb_get db key))
117 (define (nmdb-cache-get db key) (nmdb-generic-get _nmdb_cache_get db key))
120 (define (nmdb-generic-set func db key val)
121 (func db key (string-length key) val (string-length val)) )
122 (define (nmdb-set db key val)
123 (nmdb-generic-set _nmdb_set db key val))
124 (define (nmdb-set-sync db key val)
125 (nmdb-generic-set _nmdb_set_sync db key val))
126 (define (nmdb-cache-set db key val)
127 (nmdb-generic-set _nmdb_cache_set db key val))
130 (define (nmdb-generic-del func db key)
131 (func db key (string-length key)) )
132 (define (nmdb-del db key)
133 (nmdb-generic-del _nmdb_del db key))
134 (define (nmdb-del-sync db key)
135 (nmdb-generic-del _nmdb_del_sync db key))
136 (define (nmdb-cache-del db key)
137 (nmdb-generic-del _nmdb_cache_del db key))
140 (define (nmdb-generic-cas func db key oldval newval)
141 (func db key (string-length key)
142 oldval (string-length oldval)
143 newval (string-length newval) ) )
144 (define (nmdb-cas db key oldval newval)
145 (nmdb-generic-cas _nmdb_cas db key oldval newval))
146 (define (nmdb-cache-cas db key oldval newval)
147 (nmdb-generic-cas _nmdb_cache_cas db key oldval newval))
150 (define (nmdb-generic-incr func db key increment)
151 (define newval (make-long* 1))
152 (define res (func db key (string-length key) increment newval) )
153 (list res (long*-ref newval 0) ) )
154 (define (nmdb-incr db key increment)
155 (nmdb-generic-incr _nmdb_incr db key increment))
156 (define (nmdb-cache-incr db key increment)
157 (nmdb-generic-incr _nmdb_cache_incr db key increment))