/[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

Diff of /lib/Search/TokyoDystopia.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 20 by dpavlin, Mon Aug 18 18:44:47 2008 UTC revision 42 by dpavlin, Sat Feb 14 17:56:02 2009 UTC
# Line 6  use warnings; Line 6  use warnings;
6  require Exporter;  require Exporter;
7  require XSLoader;  require XSLoader;
8  use base qw(Exporter);  use base qw(Exporter);
9  our $VERSION = '0.00';  our $VERSION = '0.01';
10  our $debug = 0;  our $debug = 0;
11  XSLoader::load('Search::TokyoDystopia', $VERSION);  XSLoader::load('Search::TokyoDystopia', $VERSION);
12    
# Line 34  tcidbput Line 34  tcidbput
34  tcidbout  tcidbout
35  tcidbget  tcidbget
36  tcidbsearch  tcidbsearch
37    tcidbsearch2
38  IDBSSUBSTR  IDBSSUBSTR
39  IDBSPREFIX  IDBSPREFIX
40  IDBSSUFFIX  IDBSSUFFIX
# Line 43  IDBSTOKPRE Line 44  IDBSTOKPRE
44  IDBSTOKSUF  IDBSTOKSUF
45  tcidbiterinit  tcidbiterinit
46  tcidbiternext  tcidbiternext
47    tcidbsync
48    tcidboptimize
49    tcidbvanish
50    tcidbcopy
51    tcidbpath
52    tcidbrnum
53    tcidbfsiz
54    
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    tcqdbtnum
95    tcqdbfsiz
96    
97    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    tcjdbrnum
135    tcjdbfsiz
136  );  );
137    
138  =head1 NAME  =head1 NAME
139    
140  Search::TokyoDystopia - XS bindings for Tokyo Dystopia  Search::TokyoDystopia - XS bindings for Tokyo Dystopia
141    
142  =head1 EXPORTS  =head1 Core API
143    
144  If you don't prevent it, it will export all kind of stuff into your namespace to cut down on typing.  If you don't prevent it, it will export all kind of stuff into your namespace to cut down on typing.
145    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    
161    
162    
163  =head2 tcidberrmsg  =head2 tcidberrmsg
164    
# Line 87  use constant { Line 194  use constant {
194    
195  =head2 tcidbsetfwmmax  =head2 tcidbsetfwmmax
196    
197    my $success = tcidbsetfwmmax( $idb, $fwnum );    my $success = tcidbsetfwmmax( $idb, $fwmax );
198    
199  =head2 tcidbopen  =head2 tcidbopen
200    
# Line 122  use constant { Line 229  use constant {
229    
230  =head2 tcidbsearch  =head2 tcidbsearch
231    
232    my @ids = tcidbsearch( $idb, $word, IDBSSUBSTR )    my $ids = tcidbsearch( $idb, $word, IDBSSUBSTR );
233    
234  =cut  =cut
235    
# Line 136  use constant { Line 243  use constant {
243          IDBSTOKSUF => 6,                # token suffix matching          IDBSTOKSUF => 6,                # token suffix matching
244  };  };
245    
246    =head2 tcidbsearch2
247    
248      my $ids = tcidbsearch2( $idb, $expr );
249    
250  =head2 tcidbiterinit  =head2 tcidbiterinit
251    
252    my $success = tcidbiterinit( $idb );    my $success = tcidbiterinit( $idb );
# Line 144  use constant { Line 255  use constant {
255    
256    my $id = tcidbiternext( $idb );    my $id = tcidbiternext( $idb );
257    
258    =head2 tcidbsync
259    
260      my $success = tcidbsync( $idb );
261    
262    =head2 tcidboptimize
263    
264      my $success = tcidboptimize( $idb );
265    
266    =head2 tcidbvanish
267    
268      my $success = tcidbvanish( $idb );
269    
270    =head2 tcidbcopy
271    
272      my $success = tcidbcopy( $idb, '/path/of/copy' );
273    
274    =head2 tcidbpath
275    
276      my $path = tcidbpath( $idb );
277    
278    =head2 tcidbrnum
279    
280      my $number_of_records = tcidbrnum( $idb );
281    
282    =head2 tcidbfsiz
283    
284      my $file_size = tcidbfsiz( $idb );
285    
286    =cut
287    
288    
289    =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      my $success = tcqdbsetfwmmax( $qdb, $fwmax );
326    
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    
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    =cut
422    
423    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      my $success = tcjdbput( $jdb, $id, [ 'word', 'word2' ] );
459    
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    =head2 tcjdbsearch2
473    
474      my $ids = tcjdbsearch2( $jdb, $word );
475    
476    =cut
477    
478    use constant {
479            JDBSSUBSTR => 0,        # substring matching
480            JDBSPREFIX => 1,        # prefix matching
481            JDBSSUFFIX => 2,        # suffix matching
482            JDBSFULL   => 3,        # full matching
483    };
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    =head2 tcjdbrnum
506    
507      my $number_of_records = tcjdbrnum( $jdb );
508    
509    =head2 tcjdbfsiz
510    
511      my $file_size = tcjdbtsiz( $jdb );
512    
513  =cut  =cut
514    
515  =head1 KNOWN BUGS  =head1 KNOWN BUGS

Legend:
Removed from v.20  
changed lines
  Added in v.42

  ViewVC Help
Powered by ViewVC 1.1.26