projects
/
idzebra-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixed bug in sort for unset entries at end of sort file.
[idzebra-moved-to-github.git]
/
perl
/
IDZebra.i
diff --git
a/perl/IDZebra.i
b/perl/IDZebra.i
index
a2528f8
..
88e6a7b
100644
(file)
--- a/
perl/IDZebra.i
+++ b/
perl/IDZebra.i
@@
-1,8
+1,10
@@
%module "IDZebra"
%module "IDZebra"
+%include typemaps.i // Load the typemaps librayr
%{
#include "zebraapi.h"
#include "zebra_api_ext.h"
%{
#include "zebraapi.h"
#include "zebra_api_ext.h"
+#include "zebra_perl.h"
#include "data1.h"
#include "yaz/odr.h"
%}
#include "data1.h"
#include "yaz/odr.h"
%}
@@
-45,29
+47,27
@@
/* Creates a new Perl array and places a NULL-terminated char ** into it */
%typemap(out) char ** {
/* Creates a new Perl array and places a NULL-terminated char ** into it */
%typemap(out) char ** {
- AV *myav;
- SV **svs;
- int i = 0,len = 0;
- /* Figure out how many elements we have */
- while ($1[len])
- len++;
- svs = (SV **) malloc(len*sizeof(SV *));
- for (i = 0; i < len ; i++) {
- svs[i] = sv_newmortal();
- sv_setpv((SV*)svs[i],$1[i]);
- };
- myav = av_make(len,svs);
- free(svs);
+ AV *myav;
+ SV **svs;
+ int i = 0,len = 0;
+ /* Figure out how many elements we have */
+ while ($1[len])
+ len++;
+ svs = (SV **) malloc(len*sizeof(SV *));
+ for (i = 0; i < len ; i++) {
+ svs[i] = sv_newmortal();
+ sv_setpv((SV*)svs[i],$1[i]);
+ };
+ myav = av_make(len,svs);
+ free(svs);
$result = newRV((SV*)myav);
sv_2mortal($result);
argvi++;
}
$result = newRV((SV*)myav);
sv_2mortal($result);
argvi++;
}
-
/* == Structures for shadow classes ======================================= */
/* == Structures for shadow classes ======================================= */
-%include "zebra_api_ext.h"
-
+%include "zebra_perl.h"
/* == Module initialization and cleanup (zebra_perl.c) ===================== */
/* == Module initialization and cleanup (zebra_perl.c) ===================== */
@@
-270,15
+270,28
@@
int sort (ZebraHandle zh,
const char *output_setname,
const char **input_setnames
);
const char *output_setname,
const char **input_setnames
);
+
+/* == Scan ================================================================= */
/*
/*
+%apply int *INOUT {int *position};
+%apply int *INOUT {int *num_entries};
+%apply int *INOUT {int *is_partial};
-void zebra_sort (ZebraHandle zh, ODR stream,
- int num_input_setnames,
- const char **input_setnames,
- const char *output_setname,
- Z_SortKeySpecList *sort_sequence,
- int *sort_status);
+%name(scan_PQF)
+void zebra_scan_PQF (ZebraHandle zh,
+ ODR stream,
+ const char *pqf_query,
+ int *position,
+ int *num_entries,
+ int *is_partial);
*/
*/
+%name(scan_PQF)
+void zebra_scan_PQF (ZebraHandle zh,
+ ScanObj *so,
+ ODR stream,
+ const char *pqf_query);
+
+ScanEntry *getScanEntry(ScanObj *so, int pos);
/* Admin functionality */
/*
/* Admin functionality */
/*
@@
-286,14
+299,6
@@
void zebra_sort (ZebraHandle zh, ODR stream,
%name(admin_shutdown) void zebra_admin_shutdown (ZebraHandle zh);
*/
%name(admin_shutdown) void zebra_admin_shutdown (ZebraHandle zh);
*/
-/* Browse
-void zebra_scan (ZebraHandle zh, ODR stream,
- Z_AttributesPlusTerm *zapt,
- oid_value attributeset,
- int *position, int *num_entries,
- ZebraScanEntry **list,
- int *is_partial);
-*/
/* Delete Result Set(s) */
/*
/* Delete Result Set(s) */
/*
@@
-557,7
+562,7
@@
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);
off_t grs_perl_tellf(struct perl_context *context);
void grs_perl_endf(struct perl_context *context, off_t offset);
-data1_handle grs_perl_get_dh(struct perl_context *context);
-NMEM grs_perl_get_mem(struct perl_context *context);
+data1_handle *grs_perl_get_dh(struct perl_context *context);
+NMEM *grs_perl_get_mem(struct perl_context *context);
void grs_perl_set_res(struct perl_context *context, data1_node *n);
void grs_perl_set_res(struct perl_context *context, data1_node *n);