X-Git-Url: http://lists.indexdata.com/cgi-bin?a=blobdiff_plain;f=perl%2FIDZebra.i;h=0d020edd531d93f9034589228d10a8a7fb91052f;hb=62aeae27f2897b54a14c6fe60da004f2f23bd2e8;hp=e289a540287fbb5997cc65970d530448e7ab2d5d;hpb=4003296c8a5cf45925cf18f2d6feef929ead1f66;p=idzebra-moved-to-github.git diff --git a/perl/IDZebra.i b/perl/IDZebra.i index e289a54..0d020ed 100644 --- a/perl/IDZebra.i +++ b/perl/IDZebra.i @@ -14,8 +14,26 @@ /* RetrievalRecordBuff is a special construct, to allow to map a char * buf to non-null terminated perl string scalar value (SVpv). */ +%typemap(in) int * { + int i; + if (!SvIOK($input)) + croak("Argument $argnum is not an integer."); + i = SvIV($input); + $1 = &i; +} + +%typemap(out) int * { + $result=newSViv($1) + sv_2mortal($result); + argvi++; +} + %typemap(out) RetrievalRecordBuf * { - $result = newSVpv($1->buf,$1->len); + if ($1->len) { + $result = newSVpv($1->buf,$1->len); + } else { + $result = newSVpv("",0); + } sv_2mortal($result); argvi++; } @@ -287,6 +305,13 @@ void record_retrieve(RetrievalObj *ro, RetrievalRecord *res, int pos); +/* Delete Result Set(s) (zebraapi.c) */ +%name(deleteResultSet) +int zebra_deleleResultSet(ZebraHandle zh, int function, + int num_setnames, char **setnames, + int *statuses); + + /* == Sort ================================================================= */ int sort (ZebraHandle zh, ODR stream, @@ -311,12 +336,6 @@ ScanEntry *getScanEntry(ScanObj *so, int pos); */ -/* Delete Result Set(s) */ -/* -int zebra_deleleResultSet(ZebraHandle zh, int function, - int num_setnames, char **setnames, - int *statuses); -*/ /* do authentication */ /* @@ -569,6 +588,8 @@ const char *data1_get_tabroot(data1_handle dh); * ========================================================================= */ int grs_perl_readf(struct perl_context *context, size_t len); +int grs_perl_readline(struct perl_context *context); +char grs_perl_getc(struct perl_context *context); off_t grs_perl_seekf(struct perl_context *context, off_t offset); off_t grs_perl_tellf(struct perl_context *context); void grs_perl_endf(struct perl_context *context, off_t offset);