-/* $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-2009 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
#define IDZEBRA_API_H
#include <yaz/odr.h>
-#include <yaz/oid.h>
#include <yaz/proto.h>
#include <idzebra/res.h>
#include <idzebra/version.h>
+#include <idzebra/recctrl.h>
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;
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;
typedef struct {
zint occurrences; /* scan term occurrences */
char *term; /* scan term string */
+ char *display_term; /* display scan term entry */
} ZebraScanEntry;
/** \var ZebraHandle
*/
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
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
*/
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.
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
\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,
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
*/
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,
/** \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
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,
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
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,
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);
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_END_CDECL
/** \mainpage Zebra
/*
* Local variables:
* c-basic-offset: 4
+ * c-file-style: "Stroustrup"
* indent-tabs-mode: nil
* End:
* vim: shiftwidth=4 tabstop=8 expandtab