]> gitweb.factorcode.org Git - factor.git/blob - extra/tokyo/alien/tctdb/tctdb.factor
3f25298ddb9103b3acc4f6a86b200a66bd4e781b
[factor.git] / extra / tokyo / alien / tctdb / tctdb.factor
1 ! Copyright (C) 2009 Bruno Deferrari
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: alien alien.c-types alien.libraries alien.syntax
4 combinators kernel tokyo.alien.tchdb tokyo.alien.tcutil ;
5 IN: tokyo.alien.tctdb
6
7 LIBRARY: tokyocabinet
8
9 C-TYPE: TDBIDX
10 C-TYPE: TCTDB
11 C-TYPE: TCMAP
12
13 CONSTANT: TDBFOPEN  HDBFOPEN
14 CONSTANT: TDBFFATAL HDBFFATAL
15
16 CONSTANT: TDBTLARGE   1
17 CONSTANT: TDBTDEFLATE 2
18 CONSTANT: TDBTBZIP    4
19 CONSTANT: TDBTTCBS    8
20 CONSTANT: TDBTEXCODEC 16
21
22 CONSTANT: TDBOREADER 1
23 CONSTANT: TDBOWRITER 2
24 CONSTANT: TDBOCREAT  4
25 CONSTANT: TDBOTRUNC  8
26 CONSTANT: TDBONOLCK  16
27 CONSTANT: TDBOLCKNB  32
28 CONSTANT: TDBOTSYNC  64
29
30 ENUM: f
31   TDBITLEXICAL
32   TDBITDECIMAL ;
33
34 CONSTANT: TDBITOPT  9998
35 CONSTANT: TDBITVOID 9999
36 CONSTANT: TDBITKEEP 16777216
37
38 C-TYPE: TDBCOND
39 C-TYPE: TDBQRY
40
41 ENUM: f
42     TDBQCSTREQ
43     TDBQCSTRINC
44     TDBQCSTRBW
45     TDBQCSTREW
46     TDBQCSTRAND
47     TDBQCSTROR
48     TDBQCSTROREQ
49     TDBQCSTRRX
50     TDBQCNUMEQ
51     TDBQCNUMGT
52     TDBQCNUMGE
53     TDBQCNUMLT
54     TDBQCNUMLE
55     TDBQCNUMBT
56     TDBQCNUMOREQ ;
57
58 CONSTANT: TDBQCNEGATE 16777216
59 CONSTANT: TDBQCNOIDX  33554432
60
61 ENUM: f
62     TDBQOSTRASC
63     TDBQOSTRDESC
64     TDBQONUMASC
65     TDBQONUMDESC ;
66
67 CONSTANT: TDBQPPUT  1
68 CONSTANT: TDBQPOUT  2
69 CONSTANT: TDBQPSTOP 16777216
70
71 ! int (*)(const void *pkbuf, int pksiz, TCMAP *cols, void *op);
72 TYPEDEF: void* TDBQRYPROC
73
74 FUNCTION: c-string tctdberrmsg ( int ecode ) ;
75 FUNCTION: TCTDB* tctdbnew ( ) ;
76 FUNCTION: void tctdbdel ( TCTDB* tdb ) ;
77 FUNCTION: int tctdbecode ( TCTDB* tdb ) ;
78 FUNCTION: bool tctdbsetmutex ( TCTDB* tdb ) ;
79 FUNCTION: bool tctdbtune ( TCTDB* tdb, longlong bnum, char apow, char fpow, uchar opts ) ;
80 FUNCTION: bool tctdbsetcache ( TCTDB* tdb, int rcnum, int lcnum, int ncnum ) ;
81 FUNCTION: bool tctdbsetxmsiz ( TCTDB* tdb, longlong xmsiz ) ;
82 FUNCTION: bool tctdbopen ( TCTDB* tdb, c-string path, int omode ) ;
83 FUNCTION: bool tctdbclose ( TCTDB* tdb ) ;
84 FUNCTION: bool tctdbput ( TCTDB* tdb, void* pkbuf, int pksiz, TCMAP* cols ) ;
85 FUNCTION: bool tctdbput2 ( TCTDB* tdb, void* pkbuf, int pksiz, void* cbuf, int csiz ) ;
86 FUNCTION: bool tctdbput3 ( TCTDB* tdb, c-string pkstr, c-string cstr ) ;
87 FUNCTION: bool tctdbputkeep ( TCTDB* tdb, void* pkbuf, int pksiz, TCMAP* cols ) ;
88 FUNCTION: bool tctdbputkeep2 ( TCTDB* tdb, void* pkbuf, int pksiz, void* cbuf, int csiz ) ;
89 FUNCTION: bool tctdbputkeep3 ( TCTDB* tdb, c-string pkstr, c-string cstr ) ;
90 FUNCTION: bool tctdbputcat ( TCTDB* tdb, void* pkbuf, int pksiz, TCMAP* cols ) ;
91 FUNCTION: bool tctdbputcat2 ( TCTDB* tdb, void* pkbuf, int pksiz, void* cbuf, int csiz ) ;
92 FUNCTION: bool tctdbputcat3 ( TCTDB* tdb, c-string pkstr, c-string cstr ) ;
93 FUNCTION: bool tctdbout ( TCTDB* tdb, void* pkbuf, int pksiz ) ;
94 FUNCTION: bool tctdbout2 ( TCTDB* tdb, c-string pkstr ) ;
95 FUNCTION: TCMAP* tctdbget ( TCTDB* tdb, void* pkbuf, int pksiz ) ;
96 FUNCTION: c-string tctdbget2 ( TCTDB* tdb, void* pkbuf, int pksiz, int* sp ) ;
97 FUNCTION: c-string tctdbget3 ( TCTDB* tdb, c-string pkstr ) ;
98 FUNCTION: int tctdbvsiz ( TCTDB* tdb, void* pkbuf, int pksiz ) ;
99 FUNCTION: int tctdbvsiz2 ( TCTDB* tdb, c-string pkstr ) ;
100 FUNCTION: bool tctdbiterinit ( TCTDB* tdb ) ;
101 FUNCTION: void* tctdbiternext ( TCTDB* tdb, int* sp ) ;
102 FUNCTION: c-string tctdbiternext2 ( TCTDB* tdb ) ;
103 FUNCTION: TCLIST* tctdbfwmkeys ( TCTDB* tdb, void* pbuf, int psiz, int max ) ;
104 FUNCTION: TCLIST* tctdbfwmkeys2 ( TCTDB* tdb, c-string pstr, int max ) ;
105 FUNCTION: int tctdbaddint ( TCTDB* tdb, void* pkbuf, int pksiz, int num ) ;
106 FUNCTION: double tctdbadddouble ( TCTDB* tdb, void* pkbuf, int pksiz, double num ) ;
107 FUNCTION: bool tctdbsync ( TCTDB* tdb ) ;
108 FUNCTION: bool tctdboptimize ( TCTDB* tdb, longlong bnum, char apow, char fpow, uchar opts ) ;
109 FUNCTION: bool tctdbvanish ( TCTDB* tdb ) ;
110 FUNCTION: bool tctdbcopy ( TCTDB* tdb, c-string path ) ;
111 FUNCTION: bool tctdbtranbegin ( TCTDB* tdb ) ;
112 FUNCTION: bool tctdbtrancommit ( TCTDB* tdb ) ;
113 FUNCTION: bool tctdbtranabort ( TCTDB* tdb ) ;
114 FUNCTION: c-string tctdbpath ( TCTDB* tdb ) ;
115 FUNCTION: ulonglong tctdbrnum ( TCTDB* tdb ) ;
116 FUNCTION: ulonglong tctdbfsiz ( TCTDB* tdb ) ;
117 FUNCTION: bool tctdbsetindex ( TCTDB* tdb, c-string name, int type ) ;
118 FUNCTION: longlong tctdbgenuid ( TCTDB* tdb ) ;
119 FUNCTION: TDBQRY* tctdbqrynew ( TCTDB* tdb ) ;
120 FUNCTION: void tctdbqrydel ( TDBQRY* qry ) ;
121 FUNCTION: void tctdbqryaddcond ( TDBQRY* qry, c-string name, int op, c-string expr ) ;
122 FUNCTION: void tctdbqrysetorder ( TDBQRY* qry, c-string name, int type ) ;
123 FUNCTION: void tctdbqrysetlimit ( TDBQRY* qry, int max, int skip ) ;
124 FUNCTION: TCLIST* tctdbqrysearch ( TDBQRY* qry ) ;
125 FUNCTION: bool tctdbqrysearchout ( TDBQRY* qry ) ;
126 FUNCTION: bool tctdbqryproc ( TDBQRY* qry, TDBQRYPROC proc, void* op ) ;
127 FUNCTION: c-string tctdbqryhint ( TDBQRY* qry ) ;
128
129 ! =======
130
131 FUNCTION: void tctdbsetecode ( TCTDB* tdb, int ecode, c-string filename, int line, c-string func ) ;
132 FUNCTION: void tctdbsetdbgfd ( TCTDB* tdb, int fd ) ;
133 FUNCTION: int tctdbdbgfd ( TCTDB* tdb ) ;
134 FUNCTION: bool tctdbhasmutex ( TCTDB* tdb ) ;
135 FUNCTION: bool tctdbmemsync ( TCTDB* tdb, bool phys ) ;
136 FUNCTION: ulonglong tctdbbnum ( TCTDB* tdb ) ;
137 FUNCTION: uint tctdbalign ( TCTDB* tdb ) ;
138 FUNCTION: uint tctdbfbpmax ( TCTDB* tdb ) ;
139 FUNCTION: ulonglong tctdbinode ( TCTDB* tdb ) ;
140 FUNCTION: tokyo_time_t tctdbmtime ( TCTDB* tdb ) ;
141 FUNCTION: uchar tctdbflags ( TCTDB* tdb ) ;
142 FUNCTION: uchar tctdbopts ( TCTDB* tdb ) ;
143 FUNCTION: c-string tctdbopaque ( TCTDB* tdb ) ;
144 FUNCTION: ulonglong tctdbbnumused ( TCTDB* tdb ) ;
145 FUNCTION: int tctdbinum ( TCTDB* tdb ) ;
146 FUNCTION: longlong tctdbuidseed ( TCTDB* tdb ) ;
147 FUNCTION: bool tctdbsetuidseed ( TCTDB* tdb, longlong seed ) ;
148 FUNCTION: bool tctdbsetcodecfunc ( TCTDB* tdb, TCCODEC enc, void* encop, TCCODEC dec, void* decop ) ;
149 FUNCTION: bool tctdbputproc ( TCTDB* tdb, void* pkbuf, int pksiz, void* cbuf, int csiz, TCPDPROC proc, void* op ) ;
150 FUNCTION: bool tctdbforeach ( TCTDB* tdb, TCITER iter, void* op ) ;
151 FUNCTION: bool tctdbqryproc2 ( TDBQRY* qry, TDBQRYPROC proc, void* op ) ;
152 FUNCTION: bool tctdbqrysearchout2 ( TDBQRY* qry ) ;
153 FUNCTION: int tctdbstrtoindextype ( c-string str ) ;
154 FUNCTION: int tctdbqrycount ( TDBQRY* qry ) ;
155 FUNCTION: int tctdbqrystrtocondop ( c-string str ) ;
156 FUNCTION: int tctdbqrystrtoordertype ( c-string str ) ;