-/* $Id: zebraapi.h,v 1.7 2003-06-18 11:46:33 adam Exp $
- Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003
+/* $Id: zebraapi.h,v 1.14 2004-08-04 08:35:23 adam Exp $
+ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004
Index Data Aps
This file is part of the Zebra server.
02111-1307, USA.
*/
+/* Return codes:
+ * Most functions return an int. Unix-like, 0 means OK,
+ * non-zero means an error. The error info should be available
+ * via zebra_errCode and friends.
+ */
+
#ifndef ZEBRAAPI_H
#define ZEBRAAPI_H
#include <yaz/odr.h>
#include <yaz/oid.h>
#include <yaz/proto.h>
+#include <res.h>
#include <zebraver.h>
/* Fixme! Compare string (ignore case) */
YAZ_BEGIN_CDECL
-struct recordGroup {
- char *groupName;
- char *databaseName;
- char *path;
- char *recordId;
- char *recordType;
- int flagStoreData;
- int flagStoreKeys;
- int flagRw;
- int fileVerboseLimit;
- int databaseNamePath;
- int explainDatabase;
- int followLinks;
-};
-
typedef struct {
int processed;
int inserted;
int len; /* length */
oid_value format; /* record syntax */
char *base;
- int sysno;
+ SYSNO sysno;
int score;
} ZebraRetrievalRecord;
/* Start Zebra using file 'configName' (usually zebra.cfg) */
/* There should be exactly one ZebraService */
YAZ_EXPORT ZebraService zebra_start (const char *configName);
+YAZ_EXPORT ZebraService zebra_start_res (const char *configName,
+ Res def_res, Res over_res);
/* Close the whole Zebra */
-YAZ_EXPORT void zebra_stop (ZebraService zs);
+YAZ_EXPORT int zebra_stop (ZebraService zs);
/* Open a ZebraHandle */
YAZ_EXPORT ZebraHandle zebra_open (ZebraService zs);
/* Close handle */
-YAZ_EXPORT void zebra_close (ZebraHandle zh);
+YAZ_EXPORT int zebra_close (ZebraHandle zh);
/*********
* Error handling
YAZ_EXPORT char *zebra_errAdd (ZebraHandle zh);
/* get the result code and addinfo from zh */
-YAZ_EXPORT void zebra_result (ZebraHandle zh, int *code, char **addinfo);
+YAZ_EXPORT int zebra_result (ZebraHandle zh, int *code, char **addinfo);
/* FIXME - why is this needed?? -H */
+/* clear them error things */
+YAZ_EXPORT void zebra_clearError(ZebraHandle zh);
/**************
* Searching
/* Search using PQF Query */
YAZ_EXPORT int zebra_search_PQF (ZebraHandle zh, const char *pqf_query,
- const char *setname);
+ const char *setname, int *numhits);
/* Search using RPN Query */
-YAZ_EXPORT void zebra_search_RPN (ZebraHandle zh, ODR o, Z_RPNQuery *query,
- const char *setname, int *hits);
+YAZ_EXPORT int zebra_search_RPN (ZebraHandle zh, ODR o, Z_RPNQuery *query,
+ const char *setname, int *hits);
/* Retrieve record(s) */
-YAZ_EXPORT void zebra_records_retrieve (ZebraHandle zh, ODR stream,
+YAZ_EXPORT int zebra_records_retrieve (ZebraHandle zh, ODR stream,
const char *setname, Z_RecordComposition *comp,
oid_value input_format,
int num_recs, ZebraRetrievalRecord *recs);
/* Browse */
-YAZ_EXPORT void zebra_scan (ZebraHandle zh, ODR stream,
+YAZ_EXPORT int zebra_scan (ZebraHandle zh, ODR stream,
Z_AttributesPlusTerm *zapt,
oid_value attributeset,
int *position, int *num_entries,
* Admin
*/
-YAZ_EXPORT void zebra_create_database (ZebraHandle zh, const char *db);
-
+YAZ_EXPORT int zebra_create_database (ZebraHandle zh, const char *db);
+YAZ_EXPORT int zebra_drop_database (ZebraHandle zh, const char *db);
-YAZ_EXPORT void zebra_admin_shutdown (ZebraHandle zh);
-YAZ_EXPORT void zebra_admin_start (ZebraHandle zh);
+YAZ_EXPORT int zebra_admin_shutdown (ZebraHandle zh);
+YAZ_EXPORT int zebra_admin_start (ZebraHandle zh);
-YAZ_EXPORT void zebra_shutdown (ZebraService zs);
+YAZ_EXPORT int zebra_shutdown (ZebraService zs);
-YAZ_EXPORT void zebra_admin_import_begin (ZebraHandle zh, const char *database,
+YAZ_EXPORT int zebra_admin_import_begin (ZebraHandle zh, const char *database,
const char *record_type);
-YAZ_EXPORT void zebra_admin_import_segment (ZebraHandle zh,
+YAZ_EXPORT int zebra_admin_import_segment (ZebraHandle zh,
Z_Segment *segment);
-void zebra_admin_import_end (ZebraHandle zh);
+YAZ_EXPORT int zebra_admin_import_end (ZebraHandle zh);
int zebra_admin_exchange_record (ZebraHandle zh,
- const char *database,
const char *rec_buf,
size_t rec_len,
const char *recid_buf, size_t recid_len,
int zebra_init (ZebraHandle zh);
int zebra_compact (ZebraHandle zh);
-void zebra_repository_update (ZebraHandle zh);
-void zebra_repository_delete (ZebraHandle zh);
-void zebra_repository_show (ZebraHandle zh);
-int zebra_record_insert (ZebraHandle zh, const char *buf, int len);
-
-YAZ_EXPORT void zebra_set_group (ZebraHandle zh, struct recordGroup *rg);
-
+int zebra_repository_update (ZebraHandle zh, const char *path);
+int zebra_repository_delete (ZebraHandle zh, const char *path);
+int zebra_repository_show (ZebraHandle zh, const char *path);
+
+int zebra_add_record (ZebraHandle zh, const char *buf, int buf_size);
+
+int zebra_insert_record (ZebraHandle zh,
+ const char *recordType,
+ SYSNO *sysno, const char *match, const char *fname,
+ const char *buf, int buf_size,
+ int force_update);
+int zebra_update_record (ZebraHandle zh,
+ const char *recordType,
+ SYSNO *sysno, const char *match, const char *fname,
+ const char *buf, int buf_size,
+ int force_update);
+int zebra_delete_record (ZebraHandle zh,
+ const char *recordType,
+ SYSNO *sysno, const char *match, const char *fname,
+ const char *buf, int buf_size,
+ int force_update);
YAZ_EXPORT int zebra_resultSetTerms (ZebraHandle zh, const char *setname,
int no, int *count,
int *type, char *out, size_t *len);
-YAZ_EXPORT 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);
-
+YAZ_EXPORT int 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);
YAZ_EXPORT
int zebra_select_databases (ZebraHandle zh, int num_bases,
int zebra_select_database (ZebraHandle zh, const char *basename);
YAZ_EXPORT
-void zebra_shadow_enable (ZebraHandle zh, int value);
+int zebra_shadow_enable (ZebraHandle zh, int value);
YAZ_EXPORT
-void zebra_register_statistics (ZebraHandle zh, int dumpdict);
+int zebra_register_statistics (ZebraHandle zh, int dumpdict);
YAZ_EXPORT
int zebra_record_encoding (ZebraHandle zh, const char *encoding);
/* Resources */
YAZ_EXPORT
-void zebra_set_resource(ZebraHandle zh, const char *name, const char *value);
+int zebra_set_resource(ZebraHandle zh, const char *name, const char *value);
YAZ_EXPORT
const char *zebra_get_resource(ZebraHandle zh,
const char *name, const char *defaultvalue);
+YAZ_EXPORT void zebra_pidfname(ZebraService zs, char *path);
+
YAZ_END_CDECL
#endif