X-Git-Url: http://lists.indexdata.com/cgi-bin?a=blobdiff_plain;f=perl%2FIDZebra.i;h=7f5e063ba3c5058520b3ecb059985fc9c9aafe02;hb=ac5747296ef5b85e2125da04fa1f7d33852ad971;hp=e289a540287fbb5997cc65970d530448e7ab2d5d;hpb=4003296c8a5cf45925cf18f2d6feef929ead1f66;p=idzebra-moved-to-github.git diff --git a/perl/IDZebra.i b/perl/IDZebra.i index e289a54..7f5e063 100644 --- a/perl/IDZebra.i +++ b/perl/IDZebra.i @@ -3,7 +3,6 @@ %{ #include "zebraapi.h" -#include "zebra_api_ext.h" #include "zebra_perl.h" #include "data1.h" #include "yaz/odr.h" @@ -14,8 +13,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++; } @@ -182,8 +199,6 @@ int zebra_trans_no (ZebraHandle zh); %name(begin_read) int zebra_begin_read (ZebraHandle zh); -void zts_test (ZebraTransactionStatus *stat); - /* end retrieval (remove read lock) (zebraapi.c) */ %name(end_read) void zebra_end_read (ZebraHandle zh); @@ -287,6 +302,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, @@ -302,7 +324,7 @@ void zebra_scan_PQF (ZebraHandle zh, ODR stream, const char *pqf_query); -ScanEntry *getScanEntry(ScanObj *so, int pos); +scanEntry *getScanEntry(ScanObj *so, int pos); /* Admin functionality */ /* @@ -311,12 +333,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 +585,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);