/[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 42 - (hide annotations)
Sat Feb 14 17:56:02 2009 UTC (15 years, 2 months ago) by dpavlin
File size: 7592 byte(s)
fix tcjdbput pod
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 37 tcjdberrmsg
98     tcjdbnew
99     tcjdbdel
100     tcjdbnew
101     tcjdbecode
102     tcjdbtune
103     JDBTLARGE
104     JDBTDEFLATE
105     JDBTTCBS
106     tcjdbsetcache
107     tcjdbsetfwmmax
108     tcjdbopen
109     JDBOREADER
110     JDBOWRITER
111     JDBOCREAT
112     JDBOTRUNC
113     JDBONOLCK
114     JDBOLCKNB
115     tcjdbclose
116     tcjdbput
117     tcjdbput2
118     tcjdbout
119     tcjdbget
120     tcjdbget2
121     tcjdbsearch
122     tcjdbsearch2
123     JDBSSUBSTR
124     JDBSPREFIX
125     JDBSSUFFIX
126     JDBSFULL
127     tcjdbiterinit
128     tcjdbiternext
129     tcjdbsync
130     tcjdboptimize
131     tcjdbvanish
132     tcjdbcopy
133     tcjdbpath
134 dpavlin 38 tcjdbrnum
135 dpavlin 37 tcjdbfsiz
136 dpavlin 10 );
137    
138 dpavlin 1 =head1 NAME
139    
140     Search::TokyoDystopia - XS bindings for Tokyo Dystopia
141    
142 dpavlin 32 =head1 Core API
143 dpavlin 1
144 dpavlin 10 If you don't prevent it, it will export all kind of stuff into your namespace to cut down on typing.
145 dpavlin 32 void
146     tcqdbget(qdb, id)
147     void * qdb
148     int id
149     PREINIT:
150     char *vbuf;
151     PPCODE:
152     vbuf = tcqdbget(qdb, id);
153     if(vbuf){
154     XPUSHs(sv_2mortal(newSVpvn(vbuf, strlen(vbuf))));
155     tcfree(vbuf);
156     } else {
157     XPUSHs((SV *)&PL_sv_undef);
158     }
159     XSRETURN(1);
160 dpavlin 10
161 dpavlin 32
162    
163 dpavlin 10 =head2 tcidberrmsg
164    
165 dpavlin 12 my $message = tcidberrmsg( $ecode );
166 dpavlin 10
167     =head2 tcidbnew
168    
169 dpavlin 12 my $idb = tcidbnew;
170 dpavlin 10
171     =head2 tcidbdel
172    
173 dpavlin 12 tcidbdel( $idb );
174 dpavlin 10
175     =head2 tcidbecode
176    
177 dpavlin 12 my $ecode = tcidbecode( $idb );
178 dpavlin 10
179     =head2 tcidbtune
180    
181 dpavlin 13 my $success = tcidbtune( $idb, $ernum, $etnum, $iusiz, IDBTLARGE | IDBTDEFLATE );
182 dpavlin 10
183 dpavlin 1 =cut
184    
185 dpavlin 10 use constant {
186     IDBTLARGE => 1 << 0,
187     IDBTDEFLATE => 1 << 1,
188     IDBTTCBS => 1 << 2,
189     };
190    
191     =head2 tcidbsetcache
192    
193 dpavlin 12 my $success = tcidbsetcache( $idb, $icsiz, $lcnum );
194 dpavlin 10
195     =head2 tcidbsetfwmmax
196    
197 dpavlin 37 my $success = tcidbsetfwmmax( $idb, $fwmax );
198 dpavlin 10
199     =head2 tcidbopen
200    
201 dpavlin 13 my $success = tcidbopen( $idb, 'casket', IDBOWRITER | IDBOCREAT );
202 dpavlin 10
203     =cut
204    
205     use constant {
206     IDBOREADER => 1 << 0,
207     IDBOWRITER => 1 << 1,
208     IDBOCREAT => 1 << 2,
209     IDBOTRUNC => 1 << 3,
210     IDBONOLCK => 1 << 4,
211     IDBOLCKNB => 1 << 5,
212     };
213    
214 dpavlin 12 =head2 tcidbclose
215    
216     my $success = tcidbclose( $idb );
217    
218 dpavlin 14 =head2 tcidbput
219    
220 dpavlin 17 my $success = tcidbput( $idb, $id, $text );
221 dpavlin 14
222 dpavlin 16 =head2 tcidbout
223    
224     my $success = tcidbout( $idb, $id );
225    
226 dpavlin 17 =head2 tcidbget
227    
228     my $text = tcidbget( $idb, $id );
229    
230 dpavlin 18 =head2 tcidbsearch
231    
232 dpavlin 22 my $ids = tcidbsearch( $idb, $word, IDBSSUBSTR );
233 dpavlin 18
234     =cut
235    
236     use constant {
237     IDBSSUBSTR => 0, # substring matching
238     IDBSPREFIX => 1, # prefix matching
239     IDBSSUFFIX => 2, # suffix matching
240     IDBSFULL => 3, # full matching
241     IDBSTOKEN => 4, # token matching
242     IDBSTOKPRE => 5, # token prefix matching
243     IDBSTOKSUF => 6, # token suffix matching
244     };
245    
246 dpavlin 22 =head2 tcidbsearch2
247    
248     my $ids = tcidbsearch2( $idb, $expr );
249    
250 dpavlin 19 =head2 tcidbiterinit
251    
252 dpavlin 20 my $success = tcidbiterinit( $idb );
253 dpavlin 19
254 dpavlin 20 =head2 tcidbiternext
255    
256     my $id = tcidbiternext( $idb );
257    
258 dpavlin 21 =head2 tcidbsync
259    
260     my $success = tcidbsync( $idb );
261    
262 dpavlin 23 =head2 tcidboptimize
263    
264     my $success = tcidboptimize( $idb );
265    
266 dpavlin 24 =head2 tcidbvanish
267    
268     my $success = tcidbvanish( $idb );
269    
270 dpavlin 25 =head2 tcidbcopy
271    
272     my $success = tcidbcopy( $idb, '/path/of/copy' );
273    
274 dpavlin 26 =head2 tcidbpath
275    
276     my $path = tcidbpath( $idb );
277    
278 dpavlin 27 =head2 tcidbrnum
279    
280     my $number_of_records = tcidbrnum( $idb );
281    
282 dpavlin 28 =head2 tcidbfsiz
283    
284     my $file_size = tcidbfsiz( $idb );
285    
286 dpavlin 19 =cut
287    
288 dpavlin 37
289 dpavlin 32 =head1 Q-gram API
290    
291     =head2 tcqdberrmsg
292    
293     my $message = tcqdberrmsg( $ecode );
294    
295     =head2 tcqdbnew
296    
297     my $qdb = tcqdbnew;
298    
299     =head2 tcqdbdel
300    
301     tcqdbdel( $qdb );
302    
303     =head2 tcqdbecode
304    
305     my $ecode = tcqdbecode( $qdb );
306    
307     =head2 tcqdbtune
308    
309     my $success = tcqdbtune( $qdb, $etnum, QDBTLARGE | QDBTDEFLATE );
310    
311     =cut
312    
313     use constant {
314     QDBTLARGE => 1 << 0,
315     QDBTDEFLATE => 1 << 1,
316     QDBTTCBS => 1 << 2,
317     };
318    
319     =head2 tcqdbsetcache
320    
321     my $success = tcqdbsetcache( $qdb, $icsiz, $lcnum );
322    
323     =head2 tcqdbsetfwmmax
324    
325 dpavlin 37 my $success = tcqdbsetfwmmax( $qdb, $fwmax );
326 dpavlin 32
327     =head2 tcqdbopen
328    
329     my $success = tcqdbopen( $qdb, 'casket', QDBOWRITER | QDBOCREAT );
330    
331     =cut
332    
333     use constant {
334     QDBOREADER => 1 << 0,
335     QDBOWRITER => 1 << 1,
336     QDBOCREAT => 1 << 2,
337     QDBOTRUNC => 1 << 3,
338     QDBONOLCK => 1 << 4,
339     QDBOLCKNB => 1 << 5,
340     };
341    
342     =head2 tcqdbclose
343    
344     my $success = tcqdbclose( $qdb );
345    
346     =head2 tcqdbput
347    
348     my $success = tcqdbput( $qdb, $id, $text );
349    
350     =head2 tcqdbout
351    
352     my $success = tcqdbout( $qdb, $id );
353    
354     =head2 tcqdbsearch
355    
356     my $ids = tcqdbsearch( $qdb, $word, QDBSSUBSTR );
357    
358     =cut
359    
360     use constant {
361     QDBSSUBSTR => 0, # substring matching
362     QDBSPREFIX => 1, # prefix matching
363     QDBSUFFIX => 2, # suffix matching
364     QDBFULL => 3, # full matching
365     QDBTOKEN => 4, # token matching
366     QDBTOKPRE => 5, # token prefix matching
367     QDBTOKSUF => 6, # token suffix matching
368     };
369    
370     =head2 tcqdbsync
371    
372     my $success = tcqdbsync( $qdb );
373    
374     =head2 tcqdboptimize
375    
376     my $success = tcqdboptimize( $qdb );
377    
378     =head2 tcqdbvanish
379    
380     my $success = tcqdbvanish( $qdb );
381    
382     =head2 tcqdbcopy
383    
384     my $success = tcqdbcopy( $qdb, '/path/of/copy' );
385    
386     =head2 tcqdbpath
387    
388     my $path = tcqdbpath( $qdb );
389    
390     =head2 tcqdbtnum
391    
392     my $number_of_records = tcqdbtnum( $qdb );
393    
394     =head2 tcqdbfsiz
395    
396     my $file_size = tcqdbtsiz( $qdb );
397    
398 dpavlin 37
399     =head1 Simple API
400    
401     =head2 tcjdberrmsg
402    
403     my $message = tcjdberrmsg( $ecode );
404    
405     =head2 tcjdbnew
406    
407     my $jdb = tcjdbnew;
408    
409     =head2 tcjdbdel
410    
411     tcjdbdel( $jdb );
412    
413     =head2 tcjdbecode
414    
415     my $ecode = tcjdbecode( $jdb );
416    
417     =head2 tcjdbtune
418    
419     my $success = tcjdbtune( $jdb, $ernum, $etnum, $iusiz, JDBTLARGE | JDBTDEFLATE );
420    
421 dpavlin 32 =cut
422    
423 dpavlin 37 use constant {
424     JDBTLARGE => 1 << 0,
425     JDBTDEFLATE => 1 << 1,
426     JDBTTCBS => 1 << 2,
427     };
428    
429     =head2 tcjdbsetcache
430    
431     my $success = tcjdbsetcache( $jdb, $icsiz, $lcnum );
432    
433     =head2 tcjdbsetfwmmax
434    
435     my $success = tcjdbsetfwmmax( $jdb, $fwmax );
436    
437     =head2 tcjdbopen
438    
439     my $success = tcjdbopen( $jdb, 'casket', JDBOWRITER | JDBOCREAT );
440    
441     =cut
442    
443     use constant {
444     JDBOREADER => 1 << 0,
445     JDBOWRITER => 1 << 1,
446     JDBOCREAT => 1 << 2,
447     JDBOTRUNC => 1 << 3,
448     JDBONOLCK => 1 << 4,
449     JDBOLCKNB => 1 << 5,
450     };
451    
452     =head2 tcjdbclose
453    
454     my $success = tcjdbclose( $jdb );
455    
456     =head2 tcjdbput
457    
458 dpavlin 42 my $success = tcjdbput( $jdb, $id, [ 'word', 'word2' ] );
459 dpavlin 37
460     =head2 tcjdbput2
461    
462     my $success = tcjdbput2( $jdb, $id, $text );
463    
464     =head2 tcjdbout
465    
466     my $success = tcjdbout( $jdb, $id );
467    
468     =head2 tcjdbsearch
469    
470     my $ids = tcjdbsearch( $jdb, $word, JDBSSUBSTR );
471    
472 dpavlin 41 =head2 tcjdbsearch2
473    
474     my $ids = tcjdbsearch2( $jdb, $word );
475    
476 dpavlin 37 =cut
477    
478     use constant {
479     JDBSSUBSTR => 0, # substring matching
480     JDBSPREFIX => 1, # prefix matching
481 dpavlin 39 JDBSSUFFIX => 2, # suffix matching
482     JDBSFULL => 3, # full matching
483 dpavlin 37 };
484    
485     =head2 tcjdbsync
486    
487     my $success = tcjdbsync( $jdb );
488    
489     =head2 tcjdboptimize
490    
491     my $success = tcjdboptimize( $jdb );
492    
493     =head2 tcjdbvanish
494    
495     my $success = tcjdbvanish( $jdb );
496    
497     =head2 tcjdbcopy
498    
499     my $success = tcjdbcopy( $jdb, '/path/of/copy' );
500    
501     =head2 tcjdbpath
502    
503     my $path = tcjdbpath( $jdb );
504    
505 dpavlin 38 =head2 tcjdbrnum
506 dpavlin 37
507 dpavlin 38 my $number_of_records = tcjdbrnum( $jdb );
508 dpavlin 37
509     =head2 tcjdbfsiz
510    
511     my $file_size = tcjdbtsiz( $jdb );
512    
513     =cut
514    
515 dpavlin 5 =head1 KNOWN BUGS
516 dpavlin 1
517 dpavlin 5 Low-level functions often just die when called on invalid (or deleted) database
518    
519     =cut
520    
521 dpavlin 1 1;

  ViewVC Help
Powered by ViewVC 1.1.26