/*
- * Copyright (C) 1994-1996, Index Data I/S
+ * Copyright (C) 1994-2002, Index Data
* All rights reserved.
* Sebastian Hammer, Adam Dickmeiss
*
- * $Log: grsread.h,v $
- * Revision 1.3 1997-09-04 13:54:40 adam
- * Added MARC filter - type grs.marc.<syntax> where syntax refers
- * to abstract syntax. New method tellf in retrieve/extract method.
- *
- * Revision 1.2 1997/04/30 08:56:08 quinn
- * null
- *
- * Revision 1.1 1996/10/11 10:57:23 adam
- * New module recctrl. Used to manage records (extract/retrieval).
- *
+ * $Id: grsread.h,v 1.9 2002-05-13 14:13:43 adam Exp $
*/
#ifndef GRSREAD_H
#define GRSREAD_H
-#include <data1.h>
+#include <yaz/data1.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
struct grs_read_info {
+ void *clientData;
int (*readf)(void *, char *, size_t);
off_t (*seekf)(void *, off_t);
off_t (*tellf)(void *);
off_t offset;
char type[80];
NMEM mem;
+ data1_handle dh;
};
-data1_node *grs_read_regx (struct grs_read_info *p);
-data1_node *grs_read_sgml (struct grs_read_info *p);
-data1_node *grs_read_marc (struct grs_read_info *p);
+typedef struct recTypeGrs {
+ char *type;
+ void *(*init)(void);
+ void (*destroy)(void *clientData);
+ data1_node *(*read)(struct grs_read_info *p);
+} *RecTypeGrs;
+
+extern RecTypeGrs recTypeGrs_sgml;
+extern RecTypeGrs recTypeGrs_regx;
+extern RecTypeGrs recTypeGrs_tcl;
+extern RecTypeGrs recTypeGrs_marc;
+extern RecTypeGrs recTypeGrs_xml;
+
+#ifdef __cplusplus
+}
+#endif
+
#endif