%{
-#include "zebraapi.h"
+#include <idzebra/api.h>
#include "zebra_perl.h"
-#include "data1.h"
+#include <idzebra/data1.h>
#include "yaz/odr.h"
#include "yaz/cql.h"
%}
argvi++;
}
+/* * * * * * Fix for broken swig implementation */
+%typemap(argout) long long *INOUT {
+ char temp[256];
+ if (argvi >= items) {
+ EXTEND(sp,1);
+ }
+ /* sprintf(temp,"%lld", $1); */
+ sprintf(temp,"%lld", *$1);
+ $result = sv_newmortal();
+ sv_setpv($result,temp);
+ argvi++;
+}
+
+
/* RetrievalRecordBuff is a special construct, to allow to map a char * buf
to non-null terminated perl string scalar value (SVpv). */
%typemap(out) RetrievalRecordBuf * {
/*%include "zebra_perl.h" */
-typedef struct {
- char *groupName;
- char *databaseName;
- char *path;
- char *recordId;
- char *recordType;
- int flagStoreData;
- int flagStoreKeys;
- int flagRw;
- int fileVerboseLimit;
- int databaseNamePath;
- int explainDatabase;
- int followLinks;
-} recordGroup;
typedef struct {
int noOfRecords;
char *errString; /* error string */
int position; /* position of record in result set (1,2,..) */
char *base;
- int sysno;
+ long long sysno;
int score;
char *format; /* record syntax */
RetrievalRecordBuf *buf;
char * zebra_errAdd (ZebraHandle zh);
-/* == Record groups and database selection ================================= */
+/* == Zebra resources and database selection =============================== */
-/* initialize a recordGroup (zebra_api_ext.c); */
-void init_recordGroup (recordGroup *rg);
+/* set a resource */
+%name(set_resource)
+void zebra_set_resource(ZebraHandle zh, const char *name, const char *value);
-/* set up a recordGroup for a specific file extension from zebra.cfg
- (zebra_api_ext.c); */
-void res_get_recordGroup (ZebraHandle zh, recordGroup *rg,
- const char *ext);
-/* set current record group for update purposes (zebraapi.c) */
-%name(set_group)
-void zebra_set_group (ZebraHandle zh, struct recordGroup *rg);
+/* get a resource */
+%name(get_resource)
+const char *zebra_set_resource(ZebraHandle zh, const char *name,
+ const char *defaultvalue);
/* select database for update purposes (zebraapi.c) */
%name(select_database)
int zebra_compact (ZebraHandle zh);
%name(repository_update)
-void zebra_repository_update (ZebraHandle zh);
+void zebra_repository_update (ZebraHandle zh, const char *path);
%name(repository_delete)
-void zebra_repository_delete (ZebraHandle zh);
+void zebra_repository_delete (ZebraHandle zh, const char *path);
%name(repository_show)
-void zebra_repository_show (ZebraHandle zh);
+void zebra_repository_show (ZebraHandle zh, const char *path);
/* == Record update/delete (zebra_api_ext.c) =============================== */
If not, and match_criteria is provided, then sysno is guessed
If not, and a record is provided, then sysno is got from there */
-%apply int *REFERENCE { int *sysno };
+%apply long long *INOUT { long long *sysno };
+
%name(insert_record)
int zebra_insert_record (ZebraHandle zh,
- recordGroup *rGroup,
const char *recordType,
- int *sysno,
+ long long *sysno,
const char *match,
const char *fname,
const char *buf,
int buf_size,
- int force_update);
+ int force_update);
+/* actually, sysno is only output param in insert_record, but kept */
+/* as inout for symmetry in the interface. The session class assures */
+/* that nothing goes in... */
+
%name(update_record)
int zebra_update_record (ZebraHandle zh,
- recordGroup *rGroup,
const char *recordType,
- int *sysno,
+ long long *sysno,
const char *match,
const char *fname,
const char *buf,
%name(delete_record)
int zebra_delete_record (ZebraHandle zh,
- recordGroup *rGroup,
const char *recordType,
- int *sysno,
+ long long *sysno,
const char *match,
const char *fname,
const char *buf,
int buf_size,
int force_update);
-
/* == Search (zebraapi.c) ================================================== */
%include "typemaps.i"
%apply int *REFERENCE { int *hits };
int *statuses);
+/* Resultset terms */
+/* disabled
+%name(resultSetTerms)
+int zebra_resultSetTerms (ZebraHandle zh, const char *setname,
+ int no, int *REFERENCE,
+ int *REFERENCE, char *out, int *REFERENCE);
+*/
+
/* == Sort ================================================================= */
%name(sort)
int zebra_sort_by_specstr (ZebraHandle zh,