/* $Header: /home/cvsroot/NetZ3950/Z3950.xs,v 1.7 2006/05/08 10:54:41 mike Exp $ */
#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"
#include "yazwrap/yazwrap.h"
/* Used for converting databuf-type arguments */
static databuf SVstar2databuf(SV* svp)
{
databuf buf;
if (SvOK(svp)) {
buf.data = (char*) SvPV(svp, buf.len);
} else {
buf.data = 0;
}
return buf;
}
static char *SVstar2MNPV(SV* svp)
{
STRLEN dummy;
if (!SvOK(svp))
return 0;
return SvPV(svp, dummy);
}
/*
* The manifest-constant stuff, generated by h2xs, turns out not to be
* necessary or sufficient, so we don't use it. But it's non-trivial
* to surgically remove this code, so we leave it in for now -- the
* overhead can't be great.
*/
#if 0
static int
not_here(char *s)
{
croak("%s not implemented on this architecture", s);
return -1;
}
#endif
static double
constant(char *name, int arg)
{
errno = 0;
switch (*name) {
case 'A':
break;
case 'B':
break;
case 'C':
break;
case 'D':
break;
case 'E':
break;
case 'F':
break;
case 'G':
break;
case 'H':
break;
case 'I':
break;
case 'J':
break;
case 'K':
break;
case 'L':
break;
case 'M':
break;
case 'N':
break;
case 'O':
break;
case 'P':
break;
case 'Q':
break;
case 'R':
break;
case 'S':
break;
case 'T':
break;
case 'U':
break;
case 'V':
break;
case 'W':
break;
case 'X':
break;
case 'Y':
break;
case 'Z':
break;
}
errno = EINVAL;
return 0;
}
MODULE = Net::Z3950 PACKAGE = Net::Z3950
PROTOTYPES: DISABLE
double
constant(name,arg)
char * name
int arg
COMSTACK
yaz_connect(addr)
char *addr
int
yaz_socket(cs)
COMSTACK cs
int
yaz_close(cs)
COMSTACK cs
const char *
diagbib1_str(errcode)
int errcode
databuf
makeInitRequest(referenceId, preferredMessageSize, maximumRecordSize, user, password, groupid, implementationId, implementationName, implementationVersion, charset, language, errmsg)
databuf referenceId
int preferredMessageSize
int maximumRecordSize
mnchar *user
mnchar *password
mnchar *groupid
mnchar *implementationId
mnchar *implementationName
mnchar *implementationVersion
mnchar *charset
mnchar *language
char *&errmsg
OUTPUT:
errmsg
databuf
makeSearchRequest(referenceId, smallSetUpperBound, largeSetLowerBound, mediumSetPresentNumber, resultSetName, databaseName, smallSetElementSetName, mediumSetElementSetName, preferredRecordSyntax, queryType, query, errmsg)
databuf referenceId
int smallSetUpperBound
int largeSetLowerBound
int mediumSetPresentNumber
char *resultSetName
char *databaseName
char *smallSetElementSetName
char *mediumSetElementSetName
int preferredRecordSyntax
int queryType
char *query
char *&errmsg
OUTPUT:
errmsg
databuf
makeScanRequest(referenceId, databaseName, stepSize, numberOfTermsRequested, preferredPositionInResponse, queryType, query, errmsg)
databuf referenceId
char *databaseName
int stepSize
int numberOfTermsRequested
int preferredPositionInResponse
int queryType
char *query
char *&errmsg
OUTPUT:
errmsg
databuf
makePresentRequest(referenceId, resultSetId, resultSetStartPoint, numberOfRecordsRequested, elementSetName, preferredRecordSyntax, errmsg)
databuf referenceId
char *resultSetId
int resultSetStartPoint
int numberOfRecordsRequested
char *elementSetName
int preferredRecordSyntax
char *&errmsg
OUTPUT:
errmsg
databuf
makeDeleteRSRequest(referenceId, resultSetId, errmsg)
databuf referenceId
char *resultSetId
char *&errmsg
OUTPUT:
errmsg
SV *
decodeAPDU(cs, reason)
COMSTACK cs
int &reason
OUTPUT:
reason
int
yaz_write(cs, buf)
COMSTACK cs
databuf buf