/[Search-TokyoDystopia]/TokyoDystopia.xs
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 /TokyoDystopia.xs

Parent Directory Parent Directory | Revision Log Revision Log


Revision 33 - (hide annotations)
Tue Sep 9 11:57:52 2008 UTC (10 years, 11 months ago) by dpavlin
File size: 6154 byte(s)
fixed tcqdbout
1 dpavlin 1 #include "EXTERN.h"
2     #include "perl.h"
3     #include "XSUB.h"
4     #include <dystopia.h>
5     #include <stdlib.h>
6     #include <stdbool.h>
7     #include <stdint.h>
8    
9    
10     MODULE = Search::TokyoDystopia PACKAGE = Search::TokyoDystopia
11     PROTOTYPES: DISABLE
12    
13 dpavlin 32
14 dpavlin 1 const char *
15 dpavlin 32 tdversion()
16     CODE:
17     RETVAL = tdversion;
18     OUTPUT:
19     RETVAL
20    
21    
22     const char *
23 dpavlin 10 tcidberrmsg(ecode)
24 dpavlin 1 int ecode
25     CODE:
26 dpavlin 8 RETVAL = tcidberrmsg(ecode);
27 dpavlin 1 OUTPUT:
28     RETVAL
29 dpavlin 2
30    
31     void *
32 dpavlin 10 tcidbnew()
33 dpavlin 2 PREINIT:
34 dpavlin 10 TCIDB *idb;
35 dpavlin 2 CODE:
36 dpavlin 10 idb = tcidbnew();
37     RETVAL = idb;
38 dpavlin 2 OUTPUT:
39     RETVAL
40 dpavlin 3
41    
42     void
43 dpavlin 10 tcidbdel(idb)
44     void * idb
45 dpavlin 3 CODE:
46 dpavlin 10 tcidbdel(idb);
47 dpavlin 3
48    
49 dpavlin 4 int
50 dpavlin 10 tcidbecode(idb)
51     void * idb
52 dpavlin 4 CODE:
53 dpavlin 10 RETVAL = tcidbecode(idb);
54 dpavlin 4 OUTPUT:
55     RETVAL
56    
57 dpavlin 5
58     int
59 dpavlin 10 tcidbtune(idb, ernum, etnum, iusiz, opts)
60     void * idb
61 dpavlin 5 int ernum
62     int etnum
63     int iusiz
64     int opts
65     CODE:
66 dpavlin 10 RETVAL = tcidbtune(idb, ernum, etnum, iusiz, opts);
67 dpavlin 5 OUTPUT:
68     RETVAL
69    
70 dpavlin 7
71     int
72 dpavlin 10 tcidbsetcache(idb, icsiz, lcnum)
73     void * idb
74 dpavlin 7 int icsiz
75     int lcnum
76     CODE:
77 dpavlin 10 RETVAL = tcidbsetcache(idb, icsiz, lcnum);
78 dpavlin 7 OUTPUT:
79     RETVAL
80 dpavlin 9
81    
82     int
83 dpavlin 10 tcidbsetfwmmax(idb, fwmax)
84     void * idb
85 dpavlin 9 int fwmax
86     CODE:
87 dpavlin 10 RETVAL = tcidbsetfwmmax(idb, fwmax);
88 dpavlin 9 OUTPUT:
89     RETVAL
90    
91    
92 dpavlin 10 int
93     tcidbopen(idb, path, omode)
94     void * idb
95     char * path
96     int omode
97     CODE:
98     RETVAL = tcidbopen(idb, path, omode);
99     OUTPUT:
100     RETVAL
101    
102    
103 dpavlin 11 int
104     tcidbclose(idb)
105     void * idb
106     CODE:
107     RETVAL = tcidbclose(idb);
108     OUTPUT:
109     RETVAL
110    
111 dpavlin 14
112     int
113     tcidbput(idb, id, val)
114     void * idb
115     int id
116     SV * val
117     PREINIT:
118     STRLEN vsiz;
119     const char *vbuf;
120     CODE:
121     vbuf = SvPV(val, vsiz);
122     RETVAL = tcidbput(idb, id, vbuf);
123     OUTPUT:
124     RETVAL
125    
126 dpavlin 15
127     int
128     tcidbout(idb, id)
129     void * idb
130     int id
131     CODE:
132     RETVAL = tcidbout(idb, id);
133     OUTPUT:
134     RETVAL
135    
136 dpavlin 17
137     void
138     tcidbget(idb, id)
139     void * idb
140     int id
141     PREINIT:
142     char *vbuf;
143     PPCODE:
144     vbuf = tcidbget(idb, id);
145     if(vbuf){
146     XPUSHs(sv_2mortal(newSVpvn(vbuf, strlen(vbuf))));
147     tcfree(vbuf);
148     } else {
149     XPUSHs((SV *)&PL_sv_undef);
150     }
151     XSRETURN(1);
152    
153 dpavlin 18
154     void
155     tcidbsearch(idb, word, smode)
156     void * idb
157     SV * word
158     int smode
159     PREINIT:
160     AV *av;
161     STRLEN wsize;
162     uint64_t *results;
163     const char *wbuf;
164     int i, rnum;
165     PPCODE:
166     wbuf = SvPV(word, wsize);
167     results = tcidbsearch(idb, wbuf, smode, &rnum);
168     if ( rnum > 0 ) {
169     av = newAV();
170     for(i = 0; i < rnum; i++){
171     av_push(av, newSViv( (int)results[i] ));
172     }
173     XPUSHs(sv_2mortal(newRV_noinc((SV *)av)));
174     } else {
175     XPUSHs((SV *)&PL_sv_undef);
176     }
177     XSRETURN(1);
178    
179 dpavlin 19
180 dpavlin 22 void
181     tcidbsearch2(idb, expr)
182     void * idb
183     SV * expr
184     PREINIT:
185     AV *av;
186     STRLEN wsize;
187     uint64_t *results;
188     const char *wbuf;
189     int i, rnum;
190     PPCODE:
191     wbuf = SvPV(expr, wsize);
192     results = tcidbsearch2(idb, wbuf, &rnum);
193     if ( rnum > 0 ) {
194     av = newAV();
195     for(i = 0; i < rnum; i++){
196 dpavlin 29 av_push(av, newSViv( (int)results[i] )); // FIXME convert to double?
197 dpavlin 22 }
198     XPUSHs(sv_2mortal(newRV_noinc((SV *)av)));
199     } else {
200     XPUSHs((SV *)&PL_sv_undef);
201     }
202     XSRETURN(1);
203    
204    
205 dpavlin 19 int
206     tcidbiterinit(idb)
207     void * idb
208     CODE:
209     RETVAL = tcidbiterinit(idb);
210     OUTPUT:
211     RETVAL
212    
213 dpavlin 20
214 dpavlin 29 double
215 dpavlin 20 tcidbiternext(idb)
216     void * idb
217     CODE:
218     RETVAL = tcidbiternext(idb);
219     OUTPUT:
220     RETVAL
221    
222 dpavlin 21
223     int
224     tcidbsync(idb)
225     void * idb
226     CODE:
227     RETVAL = tcidbsync(idb);
228     OUTPUT:
229     RETVAL
230    
231 dpavlin 23
232     int
233     tcidboptimize(idb)
234     void * idb
235     CODE:
236     RETVAL = tcidboptimize(idb);
237     OUTPUT:
238     RETVAL
239    
240 dpavlin 24
241     int
242     tcidbvanish(idb)
243     void * idb
244     CODE:
245     RETVAL = tcidbvanish(idb);
246     OUTPUT:
247     RETVAL
248    
249 dpavlin 25
250     int
251     tcidbcopy(idb, path)
252     void * idb
253     char * path
254     CODE:
255     RETVAL = tcidbcopy(idb, path);
256     OUTPUT:
257     RETVAL
258    
259 dpavlin 26
260     void
261     tcidbpath(idb)
262     void * idb
263     PREINIT:
264     const char *path;
265     PPCODE:
266     path = tcidbpath(idb);
267     if(path){
268     XPUSHs(sv_2mortal(newSVpv(path, 0)));
269     } else {
270     XPUSHs((SV *)&PL_sv_undef);
271     }
272     XSRETURN(1);
273    
274 dpavlin 27
275     double
276     tcidbrnum(idb)
277     void * idb
278     CODE:
279     RETVAL = tcidbrnum(idb);
280     OUTPUT:
281     RETVAL
282    
283 dpavlin 28
284     double
285     tcidbfsiz(idb)
286     void * idb
287     CODE:
288     RETVAL = tcidbfsiz(idb);
289     OUTPUT:
290     RETVAL
291    
292 dpavlin 32
293     #include <tcqdb.h>
294    
295     const char *
296     tcqdberrmsg(ecode)
297     int ecode
298     CODE:
299     RETVAL = tcqdberrmsg(ecode);
300     OUTPUT:
301     RETVAL
302    
303    
304     void *
305     tcqdbnew()
306     PREINIT:
307     TCQDB *qdb;
308     CODE:
309     qdb = tcqdbnew();
310     RETVAL = qdb;
311     OUTPUT:
312     RETVAL
313    
314    
315     void
316     tcqdbdel(qdb)
317     void * qdb
318     CODE:
319     tcqdbdel(qdb);
320    
321    
322     int
323     tcqdbecode(qdb)
324     void * qdb
325     CODE:
326     RETVAL = tcqdbecode(qdb);
327     OUTPUT:
328     RETVAL
329    
330    
331     int
332     tcqdbtune(qdb, etnum, opts)
333     void * qdb
334     int etnum
335     int opts
336     CODE:
337     RETVAL = tcqdbtune(qdb, etnum, opts);
338     OUTPUT:
339     RETVAL
340    
341    
342     int
343     tcqdbsetcache(qdb, icsiz, lcnum)
344     void * qdb
345     int icsiz
346     int lcnum
347     CODE:
348     RETVAL = tcqdbsetcache(qdb, icsiz, lcnum);
349     OUTPUT:
350     RETVAL
351    
352    
353     int
354     tcqdbsetfwmmax(qdb, fwmax)
355     void * qdb
356     int fwmax
357     CODE:
358     RETVAL = tcqdbsetfwmmax(qdb, fwmax);
359     OUTPUT:
360     RETVAL
361    
362    
363     int
364     tcqdbopen(qdb, path, omode)
365     void * qdb
366     char * path
367     int omode
368     CODE:
369     RETVAL = tcqdbopen(qdb, path, omode);
370     OUTPUT:
371     RETVAL
372    
373    
374     int
375     tcqdbclose(qdb)
376     void * qdb
377     CODE:
378     RETVAL = tcqdbclose(qdb);
379     OUTPUT:
380     RETVAL
381    
382    
383     int
384     tcqdbput(qdb, id, val)
385     void * qdb
386     int id
387     SV * val
388     PREINIT:
389     STRLEN vsiz;
390     const char *vbuf;
391     CODE:
392     vbuf = SvPV(val, vsiz);
393     RETVAL = tcqdbput(qdb, id, vbuf);
394     OUTPUT:
395     RETVAL
396    
397    
398     int
399 dpavlin 33 tcqdbout(qdb, id, text)
400 dpavlin 32 void * qdb
401     int id
402 dpavlin 33 SV * text
403     PREINIT:
404     STRLEN tsize;
405     const char *tbuf;
406 dpavlin 32 CODE:
407 dpavlin 33 tbuf = SvPV(text, tsize);
408     RETVAL = tcqdbout(qdb, id, tbuf);
409 dpavlin 32 OUTPUT:
410     RETVAL
411    
412    
413     void
414     tcqdbsearch(qdb, word, smode)
415     void * qdb
416     SV * word
417     int smode
418     PREINIT:
419     AV *av;
420     STRLEN wsize;
421     uint64_t *results;
422     const char *wbuf;
423     int i, rnum;
424     PPCODE:
425     wbuf = SvPV(word, wsize);
426     results = tcqdbsearch(qdb, wbuf, smode, &rnum);
427     if ( rnum > 0 ) {
428     av = newAV();
429     for(i = 0; i < rnum; i++){
430     av_push(av, newSViv( (int)results[i] ));
431     }
432     XPUSHs(sv_2mortal(newRV_noinc((SV *)av)));
433     } else {
434     XPUSHs((SV *)&PL_sv_undef);
435     }
436     XSRETURN(1);
437    
438    
439     int
440     tcqdbsync(qdb)
441     void * qdb
442     CODE:
443     RETVAL = tcqdbsync(qdb);
444     OUTPUT:
445     RETVAL
446    
447    
448     int
449     tcqdboptimize(qdb)
450     void * qdb
451     CODE:
452     RETVAL = tcqdboptimize(qdb);
453     OUTPUT:
454     RETVAL
455    
456    
457     int
458     tcqdbvanish(qdb)
459     void * qdb
460     CODE:
461     RETVAL = tcqdbvanish(qdb);
462     OUTPUT:
463     RETVAL
464    
465    
466     int
467     tcqdbcopy(qdb, path)
468     void * qdb
469     char * path
470     CODE:
471     RETVAL = tcqdbcopy(qdb, path);
472     OUTPUT:
473     RETVAL
474    
475    
476     void
477     tcqdbpath(qdb)
478     void * qdb
479     PREINIT:
480     const char *path;
481     PPCODE:
482     path = tcqdbpath(qdb);
483     if(path){
484     XPUSHs(sv_2mortal(newSVpv(path, 0)));
485     } else {
486     XPUSHs((SV *)&PL_sv_undef);
487     }
488     XSRETURN(1);
489    
490    
491     double
492     tcqdbtnum(qdb)
493     void * qdb
494     CODE:
495     RETVAL = tcqdbtnum(qdb);
496     OUTPUT:
497     RETVAL
498    
499    
500     double
501     tcqdbfsiz(qdb)
502     void * qdb
503     CODE:
504     RETVAL = tcqdbfsiz(qdb);
505     OUTPUT:
506     RETVAL
507    

  ViewVC Help
Powered by ViewVC 1.1.26