/[Search-TokyoDystopia]/lib/Search/TokyoDystopia.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Annotation of /lib/Search/TokyoDystopia.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 34 - (hide annotations)
Tue Sep 9 13:17:16 2008 UTC (15 years, 6 months ago) by dpavlin
File size: 5385 byte(s)
fix tcqdbtnum
1 dpavlin 1 package Search::TokyoDystopia;
2    
3     use strict;
4     use warnings;
5    
6     require Exporter;
7     require XSLoader;
8     use base qw(Exporter);
9 dpavlin 32 our $VERSION = '0.01';
10 dpavlin 1 our $debug = 0;
11     XSLoader::load('Search::TokyoDystopia', $VERSION);
12    
13 dpavlin 10 our @EXPORT = qw(
14     tcidberrmsg
15     tcidbnew
16     tcidbdel
17     tcidbnew
18     tcidbecode
19     tcidbtune
20     IDBTLARGE
21     IDBTDEFLATE
22     IDBTTCBS
23     tcidbsetcache
24     tcidbsetfwmmax
25     tcidbopen
26     IDBOREADER
27     IDBOWRITER
28     IDBOCREAT
29     IDBOTRUNC
30     IDBONOLCK
31     IDBOLCKNB
32 dpavlin 11 tcidbclose
33 dpavlin 14 tcidbput
34 dpavlin 15 tcidbout
35 dpavlin 17 tcidbget
36 dpavlin 18 tcidbsearch
37 dpavlin 22 tcidbsearch2
38 dpavlin 18 IDBSSUBSTR
39     IDBSPREFIX
40     IDBSSUFFIX
41     IDBSFULL
42     IDBSTOKEN
43     IDBSTOKPRE
44     IDBSTOKSUF
45 dpavlin 19 tcidbiterinit
46 dpavlin 20 tcidbiternext
47 dpavlin 21 tcidbsync
48 dpavlin 23 tcidboptimize
49 dpavlin 24 tcidbvanish
50 dpavlin 25 tcidbcopy
51 dpavlin 26 tcidbpath
52 dpavlin 27 tcidbrnum
53 dpavlin 28 tcidbfsiz
54 dpavlin 32
55     tdversion
56     tcqdberrmsg
57     tcqdbnew
58     tcqdbdel
59     tcqdbnew
60     tcqdbecode
61     tcqdbtune
62     QDBTLARGE
63     QDBTDEFLATE
64     QDBTTCBS
65     tcqdbsetcache
66     tcqdbsetfwmmax
67     tcqdbopen
68     QDBOREADER
69     QDBOWRITER
70     QDBOCREAT
71     QDBOTRUNC
72     QDBONOLCK
73     QDBOLCKNB
74     tcqdbclose
75     tcqdbput
76     tcqdbout
77     tcqdbget
78     tcqdbsearch
79     tcqdbsearch2
80     QDBSSUBSTR
81     QDBSPREFIX
82     QDBSSUFFIX
83     QDBSFULL
84     QDBSTOKEN
85     QDBSTOKPRE
86     QDBSTOKSUF
87     tcqdbiterinit
88     tcqdbiternext
89     tcqdbsync
90     tcqdboptimize
91     tcqdbvanish
92     tcqdbcopy
93     tcqdbpath
94 dpavlin 34 tcqdbtnum
95 dpavlin 32 tcqdbfsiz
96    
97 dpavlin 10 );
98    
99 dpavlin 1 =head1 NAME
100    
101     Search::TokyoDystopia - XS bindings for Tokyo Dystopia
102    
103 dpavlin 32 =head1 Core API
104 dpavlin 1
105 dpavlin 10 If you don't prevent it, it will export all kind of stuff into your namespace to cut down on typing.
106 dpavlin 32 void
107     tcqdbget(qdb, id)
108     void * qdb
109     int id
110     PREINIT:
111     char *vbuf;
112     PPCODE:
113     vbuf = tcqdbget(qdb, id);
114     if(vbuf){
115     XPUSHs(sv_2mortal(newSVpvn(vbuf, strlen(vbuf))));
116     tcfree(vbuf);
117     } else {
118     XPUSHs((SV *)&PL_sv_undef);
119     }
120     XSRETURN(1);
121 dpavlin 10
122 dpavlin 32
123    
124 dpavlin 10 =head2 tcidberrmsg
125    
126 dpavlin 12 my $message = tcidberrmsg( $ecode );
127 dpavlin 10
128     =head2 tcidbnew
129    
130 dpavlin 12 my $idb = tcidbnew;
131 dpavlin 10
132     =head2 tcidbdel
133    
134 dpavlin 12 tcidbdel( $idb );
135 dpavlin 10
136     =head2 tcidbecode
137    
138 dpavlin 12 my $ecode = tcidbecode( $idb );
139 dpavlin 10
140     =head2 tcidbtune
141    
142 dpavlin 13 my $success = tcidbtune( $idb, $ernum, $etnum, $iusiz, IDBTLARGE | IDBTDEFLATE );
143 dpavlin 10
144 dpavlin 1 =cut
145    
146 dpavlin 10 use constant {
147     IDBTLARGE => 1 << 0,
148     IDBTDEFLATE => 1 << 1,
149     IDBTTCBS => 1 << 2,
150     };
151    
152     =head2 tcidbsetcache
153    
154 dpavlin 12 my $success = tcidbsetcache( $idb, $icsiz, $lcnum );
155 dpavlin 10
156     =head2 tcidbsetfwmmax
157    
158 dpavlin 12 my $success = tcidbsetfwmmax( $idb, $fwnum );
159 dpavlin 10
160     =head2 tcidbopen
161    
162 dpavlin 13 my $success = tcidbopen( $idb, 'casket', IDBOWRITER | IDBOCREAT );
163 dpavlin 10
164     =cut
165    
166     use constant {
167     IDBOREADER => 1 << 0,
168     IDBOWRITER => 1 << 1,
169     IDBOCREAT => 1 << 2,
170     IDBOTRUNC => 1 << 3,
171     IDBONOLCK => 1 << 4,
172     IDBOLCKNB => 1 << 5,
173     };
174    
175 dpavlin 12 =head2 tcidbclose
176    
177     my $success = tcidbclose( $idb );
178    
179 dpavlin 14 =head2 tcidbput
180    
181 dpavlin 17 my $success = tcidbput( $idb, $id, $text );
182 dpavlin 14
183 dpavlin 16 =head2 tcidbout
184    
185     my $success = tcidbout( $idb, $id );
186    
187 dpavlin 17 =head2 tcidbget
188    
189     my $text = tcidbget( $idb, $id );
190    
191 dpavlin 18 =head2 tcidbsearch
192    
193 dpavlin 22 my $ids = tcidbsearch( $idb, $word, IDBSSUBSTR );
194 dpavlin 18
195     =cut
196    
197     use constant {
198     IDBSSUBSTR => 0, # substring matching
199     IDBSPREFIX => 1, # prefix matching
200     IDBSSUFFIX => 2, # suffix matching
201     IDBSFULL => 3, # full matching
202     IDBSTOKEN => 4, # token matching
203     IDBSTOKPRE => 5, # token prefix matching
204     IDBSTOKSUF => 6, # token suffix matching
205     };
206    
207 dpavlin 22 =head2 tcidbsearch2
208    
209     my $ids = tcidbsearch2( $idb, $expr );
210    
211 dpavlin 19 =head2 tcidbiterinit
212    
213 dpavlin 20 my $success = tcidbiterinit( $idb );
214 dpavlin 19
215 dpavlin 20 =head2 tcidbiternext
216    
217     my $id = tcidbiternext( $idb );
218    
219 dpavlin 21 =head2 tcidbsync
220    
221     my $success = tcidbsync( $idb );
222    
223 dpavlin 23 =head2 tcidboptimize
224    
225     my $success = tcidboptimize( $idb );
226    
227 dpavlin 24 =head2 tcidbvanish
228    
229     my $success = tcidbvanish( $idb );
230    
231 dpavlin 25 =head2 tcidbcopy
232    
233     my $success = tcidbcopy( $idb, '/path/of/copy' );
234    
235 dpavlin 26 =head2 tcidbpath
236    
237     my $path = tcidbpath( $idb );
238    
239 dpavlin 27 =head2 tcidbrnum
240    
241     my $number_of_records = tcidbrnum( $idb );
242    
243 dpavlin 28 =head2 tcidbfsiz
244    
245     my $file_size = tcidbfsiz( $idb );
246    
247 dpavlin 19 =cut
248    
249 dpavlin 32 =head1 Q-gram API
250    
251     =head2 tcqdberrmsg
252    
253     my $message = tcqdberrmsg( $ecode );
254    
255     =head2 tcqdbnew
256    
257     my $qdb = tcqdbnew;
258    
259     =head2 tcqdbdel
260    
261     tcqdbdel( $qdb );
262    
263     =head2 tcqdbecode
264    
265     my $ecode = tcqdbecode( $qdb );
266    
267     =head2 tcqdbtune
268    
269     my $success = tcqdbtune( $qdb, $etnum, QDBTLARGE | QDBTDEFLATE );
270    
271     =cut
272    
273     use constant {
274     QDBTLARGE => 1 << 0,
275     QDBTDEFLATE => 1 << 1,
276     QDBTTCBS => 1 << 2,
277     };
278    
279     =head2 tcqdbsetcache
280    
281     my $success = tcqdbsetcache( $qdb, $icsiz, $lcnum );
282    
283     =head2 tcqdbsetfwmmax
284    
285     my $success = tcqdbsetfwmmax( $qdb, $fwnum );
286    
287     =head2 tcqdbopen
288    
289     my $success = tcqdbopen( $qdb, 'casket', QDBOWRITER | QDBOCREAT );
290    
291     =cut
292    
293     use constant {
294     QDBOREADER => 1 << 0,
295     QDBOWRITER => 1 << 1,
296     QDBOCREAT => 1 << 2,
297     QDBOTRUNC => 1 << 3,
298     QDBONOLCK => 1 << 4,
299     QDBOLCKNB => 1 << 5,
300     };
301    
302     =head2 tcqdbclose
303    
304     my $success = tcqdbclose( $qdb );
305    
306     =head2 tcqdbput
307    
308     my $success = tcqdbput( $qdb, $id, $text );
309    
310     =head2 tcqdbout
311    
312     my $success = tcqdbout( $qdb, $id );
313    
314     =head2 tcqdbsearch
315    
316     my $ids = tcqdbsearch( $qdb, $word, QDBSSUBSTR );
317    
318     =cut
319    
320     use constant {
321     QDBSSUBSTR => 0, # substring matching
322     QDBSPREFIX => 1, # prefix matching
323     QDBSUFFIX => 2, # suffix matching
324     QDBFULL => 3, # full matching
325     QDBTOKEN => 4, # token matching
326     QDBTOKPRE => 5, # token prefix matching
327     QDBTOKSUF => 6, # token suffix matching
328     };
329    
330     =head2 tcqdbsync
331    
332     my $success = tcqdbsync( $qdb );
333    
334     =head2 tcqdboptimize
335    
336     my $success = tcqdboptimize( $qdb );
337    
338     =head2 tcqdbvanish
339    
340     my $success = tcqdbvanish( $qdb );
341    
342     =head2 tcqdbcopy
343    
344     my $success = tcqdbcopy( $qdb, '/path/of/copy' );
345    
346     =head2 tcqdbpath
347    
348     my $path = tcqdbpath( $qdb );
349    
350     =head2 tcqdbtnum
351    
352     my $number_of_records = tcqdbtnum( $qdb );
353    
354     =head2 tcqdbfsiz
355    
356     my $file_size = tcqdbtsiz( $qdb );
357    
358     =cut
359    
360 dpavlin 5 =head1 KNOWN BUGS
361 dpavlin 1
362 dpavlin 5 Low-level functions often just die when called on invalid (or deleted) database
363    
364     =cut
365    
366 dpavlin 1 1;

  ViewVC Help
Powered by ViewVC 1.1.26