-/* $Id: recctrl.h,v 1.1 2004-09-28 10:15:03 adam Exp $
- Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004
- Index Data Aps
+/* $Id: recctrl.h,v 1.14 2005-08-22 08:19:51 adam Exp $
+ Copyright (C) 1995-2005
+ Index Data ApS
This file is part of the Zebra server.
02111-1307, USA.
*/
-
-
#ifndef RECCTRL_H
#define RECCTRL_H
+#include <sys/types.h>
#include <yaz/proto.h>
#include <yaz/oid.h>
#include <yaz/odr.h>
#include <idzebra/res.h>
#include <idzebra/data1.h>
-#include <zebramap.h>
+#include <idzebra/snippet.h>
+#include <idzebra/zebramap.h>
+
+YAZ_BEGIN_CDECL
-#ifdef __cplusplus
-extern "C" {
+#if NATTR
+#define ZEBRA_XPATH_ELM_BEGIN "_XPATH_BEGIN"
+#define ZEBRA_XPATH_ELM_END "_XPATH_END"
+#define ZEBRA_XPATH_CDATA "_XPATH_CDATA"
+#define ZEBRA_XPATH_ATTR "_XPATH_ATTR"
#endif
/* single word entity */
typedef struct {
+#if NATTR
+#else
int attrSet;
int attrUse;
- unsigned reg_type;
- char *string;
- int length;
- int seqno;
+#endif
+ unsigned index_type;
+ const char *index_name;
+ const char *term_buf;
+ int term_len;
+ zint seqno;
+ zint record_id;
+ zint section_id;
ZebraMaps zebra_maps;
struct recExtractCtrl *extractCtrl;
} RecWord;
void (*init)(struct recExtractCtrl *p, RecWord *w);
void *clientData;
void (*tokenAdd)(RecWord *w);
+ void (*setStoreData)(struct recExtractCtrl *p, void *buf, size_t size);
ZebraMaps zebra_maps;
+ int first_record;
int flagShowRecords;
int seqno[256];
+ char match_criteria[256];
+ int staticrank;
void (*schemaAdd)(struct recExtractCtrl *p, Odr_oid *oid);
data1_handle dh;
void *handle;
int recordSize; /* size of record in bytes */
char *fname; /* name of file (or NULL if internal) */
data1_handle dh;
+ zebra_snippets *hit_snippet;
+ zebra_snippets *doc_snippet;
/* response */
oid_value output_format;
void *rec_buf;
int rec_len;
int diagnostic;
- char *message;
+ char *addinfo;
};
typedef struct recType *RecType;
struct recType
{
+ int version;
char *name; /* Name of record type */
void *(*init)(Res res, RecType recType); /* Init function - called once */
void (*config)(void *clientData, Res res, const char *args); /* Config */
typedef struct recTypeClass *RecTypeClass;
typedef struct recTypes *RecTypes;
+YAZ_EXPORT
RecTypeClass recTypeClass_create (Res res, NMEM nmem);
+
+YAZ_EXPORT
void recTypeClass_destroy(RecTypeClass rtc);
+
+YAZ_EXPORT
void recTypeClass_info(RecTypeClass rtc, void *cd,
void (*cb)(void *cd, const char *s));
+YAZ_EXPORT
RecTypes recTypes_init(RecTypeClass rtc, data1_handle dh);
+
+YAZ_EXPORT
void recTypes_destroy(RecTypes recTypes);
+
+YAZ_EXPORT
void recTypes_default_handlers(RecTypes recTypes, Res res);
+YAZ_EXPORT
RecType recType_byName(RecTypes rts, Res res, const char *name,
void **clientDataP);
-#ifdef __cplusplus
-}
-#endif
+YAZ_END_CDECL
#endif