X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=blobdiff_plain;f=include%2Fidzebra%2Fapi.h;h=82bf7ce54686ffb02c1cac34a19388781961b096;hp=e5ed46144e1dbc91286944d3dc306d4a2dde0a21;hb=16853a7593f10680ea8d6895aa0720b9af3779e6;hpb=4478d785b7769691261005c98063b98a5a5971b3 diff --git a/include/idzebra/api.h b/include/idzebra/api.h index e5ed461..82bf7ce 100644 --- a/include/idzebra/api.h +++ b/include/idzebra/api.h @@ -1,8 +1,5 @@ -/* $Id: api.h,v 1.38 2006-08-14 10:40:14 adam Exp $ - Copyright (C) 1995-2006 - Index Data ApS - -This file is part of the Zebra server. +/* This file is part of the Zebra server. + Copyright (C) 1994-2010 Index Data Zebra is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free @@ -32,26 +29,13 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #define IDZEBRA_API_H #include -#include #include #include #include +#include YAZ_BEGIN_CDECL -/** - expand GCC_ATTRIBUTE if GCC is in use. See : - http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html -*/ - -#ifndef GCC_ATTRIBUTE -#ifdef __GNUC__ -#define GCC_ATTRIBUTE(x) __attribute__ (x) -#else -#define GCC_ATTRIBUTE(x) -#endif -#endif - typedef struct { zint processed; zint inserted; @@ -68,9 +52,9 @@ typedef struct { int position; /* position of record in result set (1,2,..) */ char *buf; /* record buffer (void pointer really) */ int len; /* length */ - oid_value format; /* record syntax */ + const Odr_oid *format; /* record syntax */ char *base; - SYSNO sysno; + zint sysno; int score; } ZebraRetrievalRecord; @@ -78,6 +62,7 @@ typedef struct { typedef struct { zint occurrences; /* scan term occurrences */ char *term; /* scan term string */ + char *display_term; /* display scan term entry */ } ZebraScanEntry; /** \var ZebraHandle @@ -97,7 +82,7 @@ typedef struct zebra_service *ZebraService; */ YAZ_EXPORT ZebraService zebra_start(const char *configName - ) GCC_ATTRIBUTE((warn_unused_result)); + ) ZEBRA_GCC_ATTR((warn_unused_result)); /** \brief Creates a Zebra service with resources. \param configName name of configuration file @@ -110,7 +95,7 @@ ZebraService zebra_start(const char *configName YAZ_EXPORT ZebraService zebra_start_res(const char *configName, Res def_res, Res over_res - ) GCC_ATTRIBUTE((warn_unused_result)); + ) ZEBRA_GCC_ATTR((warn_unused_result)); /** \brief stops a Zebra service. \param zs service handle @@ -140,7 +125,7 @@ void zebra_filter_info(ZebraService zs, void *cd, */ YAZ_EXPORT ZebraHandle zebra_open(ZebraService zs, Res res - ) GCC_ATTRIBUTE((warn_unused_result)); + ) ZEBRA_GCC_ATTR((warn_unused_result)); /** \brief Destroys Zebra session handle. \param zh zebra session handle. @@ -174,6 +159,14 @@ char *zebra_errAdd(ZebraHandle zh); YAZ_EXPORT void zebra_result(ZebraHandle zh, int *code, char **addinfo); + +/** \brief Returns character set encoding for session + \param zh zebra session handle. + \returns encoding name (e.g. "iso-8859-1") +*/ +YAZ_EXPORT +const char *zebra_get_encoding(ZebraHandle zh); + /** \brief Set limit before Zebra does approx hit count \param zh session handle \param approx_limit the limit @@ -199,6 +192,22 @@ ZEBRA_RES zebra_search_PQF(ZebraHandle zh, const char *pqf_query, \param query RPN query using YAZ structure \param setname name of resultset \param hits number of hits is returned + \param estimated_hit_count whether hit count is an estimate + \param partial_resultset whether result is only partially evaluated +*/ +YAZ_EXPORT +ZEBRA_RES zebra_search_RPN_x(ZebraHandle zh, ODR o, Z_RPNQuery *query, + const char *setname, zint *hits, + int *estimated_hit_count, + int *partial_resultset); + + +/** \brief Search using RPN Query structure (from ASN.1) + \param zh session handle + \param o ODR handle + \param query RPN query using YAZ structure + \param setname name of resultset + \param hits number of hits is returned */ YAZ_EXPORT ZEBRA_RES zebra_search_RPN(ZebraHandle zh, ODR o, Z_RPNQuery *query, @@ -217,7 +226,7 @@ YAZ_EXPORT ZEBRA_RES zebra_records_retrieve(ZebraHandle zh, ODR stream, const char *setname, Z_RecordComposition *comp, - oid_value input_format, + const Odr_oid *input_format, int num_recs, ZebraRetrievalRecord *recs); /** \brief Deletes one or more resultsets @@ -284,7 +293,7 @@ ZEBRA_RES zebra_result_set_term_info(ZebraHandle zh, const char *setname, */ YAZ_EXPORT ZEBRA_RES zebra_scan(ZebraHandle zh, ODR stream, Z_AttributesPlusTerm *zapt, - oid_value attributeset, + const Odr_oid *attributeset, int *position, int *num_entries, ZebraScanEntry **entries, int *is_partial, @@ -316,14 +325,15 @@ ZEBRA_RES zebra_auth(ZebraHandle zh, const char *user, const char *pass); /** \brief Normalize zebra term for register (subject to change!) \param zh session handle - \param reg_id register ID, 'w', 'p',.. + \param index_type "w", "p",.. \param input_str input string buffer \param input_len input string length \param output_str output string buffer \param output_len output string length */ YAZ_EXPORT -int zebra_string_norm(ZebraHandle zh, unsigned reg_id, const char *input_str, +int zebra_string_norm(ZebraHandle zh, const char *index_type, + const char *input_str, int input_len, char *output_str, int output_len); /** \brief Creates a database @@ -361,19 +371,12 @@ YAZ_EXPORT ZEBRA_RES zebra_admin_import_end(ZebraHandle zh); YAZ_EXPORT -ZEBRA_RES zebra_admin_exchange_record(ZebraHandle zh, - const char *rec_buf, - size_t rec_len, - const char *recid_buf, size_t recid_len, - int action); - -YAZ_EXPORT ZEBRA_RES zebra_begin_trans(ZebraHandle zh, int rw - ) GCC_ATTRIBUTE((warn_unused_result)); + ) ZEBRA_GCC_ATTR((warn_unused_result)); YAZ_EXPORT ZEBRA_RES zebra_end_trans(ZebraHandle zh - ) GCC_ATTRIBUTE((warn_unused_result)); + ) ZEBRA_GCC_ATTR((warn_unused_result)); YAZ_EXPORT ZEBRA_RES zebra_end_transaction(ZebraHandle zh, @@ -392,6 +395,10 @@ YAZ_EXPORT ZEBRA_RES zebra_compact(ZebraHandle zh); YAZ_EXPORT +ZEBRA_RES zebra_repository_index(ZebraHandle zh, const char *path, + enum zebra_recctrl_action_t action); + +YAZ_EXPORT ZEBRA_RES zebra_repository_update(ZebraHandle zh, const char *path); YAZ_EXPORT @@ -400,29 +407,34 @@ ZEBRA_RES zebra_repository_delete(ZebraHandle zh, const char *path); YAZ_EXPORT ZEBRA_RES zebra_repository_show(ZebraHandle zh, const char *path); +/** \brief Simple update record + \param zh session handle + \param buf record buffer + \param buf_size record buffer size + + This function is a simple wrapper or zebra_update_record with + action=action_update (insert or replace) . +*/ YAZ_EXPORT ZEBRA_RES zebra_add_record(ZebraHandle zh, const char *buf, int buf_size); -YAZ_EXPORT -ZEBRA_RES 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); +/** \brief Updates record + \param zh session handle + \param action (insert,replace,delete or update (replace/insert) + \param recordType filter type (0 indicates default) + \param sysno system id (0 may be passed for no known id) + \param match match criteria (0 may be passed for no known criteria) + \param fname filename to be printed for logging (0 may be passed) + \param buf record buffer + \param buf_size record buffer size +*/ YAZ_EXPORT ZEBRA_RES 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); -YAZ_EXPORT -ZEBRA_RES 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); + enum zebra_recctrl_action_t action, + const char *recordType, + zint *sysno, const char *match, + const char *fname, + const char *buf, int buf_size); YAZ_EXPORT ZEBRA_RES zebra_sort(ZebraHandle zh, ODR stream, @@ -431,16 +443,16 @@ ZEBRA_RES zebra_sort(ZebraHandle zh, ODR stream, const char *output_setname, Z_SortKeySpecList *sort_sequence, int *sort_status - ) GCC_ATTRIBUTE((warn_unused_result)); + ) ZEBRA_GCC_ATTR((warn_unused_result)); YAZ_EXPORT ZEBRA_RES zebra_select_databases(ZebraHandle zh, int num_bases, const char **basenames - ) GCC_ATTRIBUTE((warn_unused_result)); + ) ZEBRA_GCC_ATTR((warn_unused_result)); YAZ_EXPORT ZEBRA_RES zebra_select_database(ZebraHandle zh, const char *basename - ) GCC_ATTRIBUTE((warn_unused_result)); + ) ZEBRA_GCC_ATTR((warn_unused_result)); YAZ_EXPORT void zebra_shadow_enable(ZebraHandle zh, int value); @@ -493,6 +505,14 @@ struct BFiles_struct *zebra_get_bfs(ZebraHandle zh); YAZ_EXPORT ZEBRA_RES zebra_set_limit(ZebraHandle zh, int complement_flag, zint *ids); +YAZ_EXPORT +ZEBRA_RES zebra_set_break_handler(ZebraHandle zh, + int (*f)(void *client_data), + void *client_data); + +YAZ_EXPORT +ZEBRA_RES zebra_register_check(ZebraHandle zh); + YAZ_END_CDECL /** \mainpage Zebra @@ -580,6 +600,7 @@ YAZ_END_CDECL /* * Local variables: * c-basic-offset: 4 + * c-file-style: "Stroustrup" * indent-tabs-mode: nil * End: * vim: shiftwidth=4 tabstop=8 expandtab