X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=index%2Fzebraapi.h;h=8197db7272cecd9bd95e9e3b74c3b34c66556107;hb=4e62ee01de32fadf7036b0a6aa61a76528f6e3e0;hp=e59018efa0d09656dc7d446dbb712e15a5ebfb76;hpb=896c0427df9d8eff5de6a1735dcd992e067df844;p=idzebra-moved-to-github.git diff --git a/index/zebraapi.h b/index/zebraapi.h index e59018e..8197db7 100644 --- a/index/zebraapi.h +++ b/index/zebraapi.h @@ -1,4 +1,4 @@ -/* $Id: zebraapi.h,v 1.19 2002-08-02 19:26:56 adam Exp $ +/* $Id: zebraapi.h,v 1.25 2003-02-11 17:28:10 heikki Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002 Index Data Aps @@ -30,20 +30,28 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include #include +/* Fixme! Compare string (ignore case) */ +#ifdef WIN32 +#define STRCASECMP stricmp +#else +#define STRCASECMP strcasecmp +#endif + 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; + char *groupName; + char *databaseName; + char *path; + char *recordId; + char *recordType; + int flagStoreData; + int flagStoreKeys; + int flagRw; + int fileVerboseLimit; + int databaseNamePath; + int explainDatabase; + int followLinks; }; /* Retrieval Record Descriptor */ @@ -66,9 +74,50 @@ typedef struct { typedef struct zebra_session *ZebraHandle; typedef struct zebra_service *ZebraService; -/* Open Zebra using file 'configName' (usually zebra.cfg) */ + +/****** + * Starting and stopping + */ + +/* Start Zebra using file 'configName' (usually zebra.cfg) */ +/* There should be exactly one ZebraService */ +YAZ_EXPORT ZebraService zebra_start (const char *configName); + +/* Close the whole Zebra */ +YAZ_EXPORT void zebra_stop (ZebraService zs); + + +/* Open a ZebraHandle */ +/* There should be one handle for each thred doing something */ +/* with zebra, be that searching or indexing. In simple apps */ +/* one handle is sufficient */ YAZ_EXPORT ZebraHandle zebra_open (ZebraService zs); +/* Close handle */ +YAZ_EXPORT void zebra_close (ZebraHandle zh); + +/********* + * Error handling + */ + +/* last error code */ +YAZ_EXPORT int zebra_errCode (ZebraHandle zh); + +/* string representatio of above */ +YAZ_EXPORT const char *zebra_errString (ZebraHandle zh); + +/* extra information associated with error */ +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); +/* FIXME - why is this needed?? -H */ + + +/************** + * Searching + */ + /* Search using RPN-Query */ YAZ_EXPORT void zebra_search_rpn (ZebraHandle zh, ODR input, ODR output, Z_RPNQuery *query, @@ -80,6 +129,12 @@ YAZ_EXPORT void zebra_records_retrieve (ZebraHandle zh, ODR stream, oid_value input_format, int num_recs, ZebraRetrievalRecord *recs); +/* Delete Result Set(s) */ +YAZ_EXPORT int zebra_deleleResultSet(ZebraHandle zh, int function, + int num_setnames, char **setnames, + int *statuses); + + /* Browse */ YAZ_EXPORT void zebra_scan (ZebraHandle zh, ODR stream, Z_AttributesPlusTerm *zapt, @@ -87,23 +142,13 @@ YAZ_EXPORT void zebra_scan (ZebraHandle zh, ODR stream, int *position, int *num_entries, ZebraScanEntry **list, int *is_partial); - -/* Delete Result Set(s) */ -YAZ_EXPORT int zebra_deleleResultSet(ZebraHandle zh, int function, - int num_setnames, char **setnames, - int *statuses); - -/* Close zebra and destroy handle */ -YAZ_EXPORT void zebra_close (ZebraHandle zh); - -/* last error code */ -YAZ_EXPORT int zebra_errCode (ZebraHandle zh); -/* string representatio of above */ -YAZ_EXPORT const char *zebra_errString (ZebraHandle zh); - -/* extra information associated with error */ -YAZ_EXPORT char *zebra_errAdd (ZebraHandle zh); + + +/********* + * Other + */ + /* do authentication */ YAZ_EXPORT int zebra_auth (ZebraHandle zh, const char *user, const char *pass); @@ -113,23 +158,34 @@ YAZ_EXPORT int zebra_string_norm (ZebraHandle zh, unsigned reg_id, const char *input_str, int input_len, char *output_str, int output_len); + +/****** + * Admin + */ + YAZ_EXPORT void zebra_admin_create (ZebraHandle zh, const char *db); -YAZ_EXPORT ZebraService zebra_start (const char *configName); -YAZ_EXPORT void zebra_stop (ZebraService zs); YAZ_EXPORT void zebra_admin_shutdown (ZebraHandle zh); YAZ_EXPORT void zebra_admin_start (ZebraHandle zh); YAZ_EXPORT void zebra_shutdown (ZebraService zs); -YAZ_EXPORT void zebra_admin_import_begin (ZebraHandle zh, const char *database); +YAZ_EXPORT void zebra_admin_import_begin (ZebraHandle zh, const char *database, + const char *record_type); YAZ_EXPORT void zebra_admin_import_segment (ZebraHandle zh, Z_Segment *segment); void 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 action); + void zebra_begin_trans (ZebraHandle zh); void zebra_end_trans (ZebraHandle zh); @@ -144,8 +200,6 @@ int zebra_record_insert (ZebraHandle zh, const char *buf, int len); YAZ_EXPORT void zebra_set_group (ZebraHandle zh, struct recordGroup *rg); -YAZ_EXPORT void zebra_result (ZebraHandle zh, int *code, char **addinfo); - YAZ_EXPORT int zebra_resultSetTerms (ZebraHandle zh, const char *setname, int no, int *count, @@ -175,5 +229,13 @@ void 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); +YAZ_EXPORT +const char *zebra_get_resource(ZebraHandle zh, + const char *name, const char *defaultvalue); + + YAZ_END_CDECL #endif