projects
/
idzebra-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Listen on @6:2100 only (not @:2100)
[idzebra-moved-to-github.git]
/
include
/
idzebra
/
data1.h
diff --git
a/include/idzebra/data1.h
b/include/idzebra/data1.h
index
75c35cb
..
f5a34cf
100644
(file)
--- a/
include/idzebra/data1.h
+++ b/
include/idzebra/data1.h
@@
-1,8
+1,5
@@
-/* $Id: data1.h,v 1.3 2004-10-04 09:19:16 adam Exp $
- Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004
- Index Data Aps
-
-This file is part of the Zebra server.
+/* This file is part of the Zebra server.
+ Copyright (C) 2004-2013 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
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
@@
-15,9
+12,9
@@
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
-along with Zebra; see the file LICENSE.zebra. If not, write to the
-Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA.
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
*/
#ifndef DATA1_H
*/
#ifndef DATA1_H
@@
-26,12
+23,10
@@
Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include <stdio.h>
#include <yaz/nmem.h>
#include <stdio.h>
#include <yaz/nmem.h>
-#include <yaz/oid.h>
#include <yaz/proto.h>
#include <yaz/proto.h>
-
-#include <idzebra/version.h>
#include <yaz/yaz-util.h>
#include <yaz/yaz-util.h>
-#include <yaz/wrbuf.h>
+
+#include <idzebra/util.h>
#define d1_isspace(c) strchr(" \r\n\t\f", c)
#define d1_isdigit(c) ((c) <= '9' && (c) >= '0')
#define d1_isspace(c) strchr(" \r\n\t\f", c)
#define d1_isdigit(c) ((c) <= '9' && (c) >= '0')
@@
-53,13
+48,7
@@
YAZ_BEGIN_CDECL
struct data1_attset;
struct data1_attset;
-typedef struct data1_local_attribute
-{
- int local;
- struct data1_local_attribute *next;
-} data1_local_attribute;
-
-typedef struct data1_attset data1_attset;
+typedef struct data1_attset data1_attset;
typedef struct data1_att data1_att;
typedef struct data1_attset_child data1_attset_child;
typedef struct data1_att data1_att;
typedef struct data1_attset_child data1_attset_child;
@@
-68,7
+57,6
@@
struct data1_att
data1_attset *parent; /* attribute set */
char *name; /* symbolic name of this attribute */
int value; /* attribute value */
data1_attset *parent; /* attribute set */
char *name; /* symbolic name of this attribute */
int value; /* attribute value */
- data1_local_attribute *locals; /* local index values */
data1_att *next;
};
data1_att *next;
};
@@
-80,7
+68,7
@@
struct data1_attset_child {
struct data1_attset
{
char *name; /* symbolic name */
struct data1_attset
{
char *name; /* symbolic name */
- oid_value reference; /* external ID of attset */
+ Odr_oid *oid; /* attribute set OID */
data1_att *atts; /* attributes */
data1_attset_child *children; /* included attset */
data1_attset *next; /* next in cache */
data1_att *atts; /* attributes */
data1_attset_child *children; /* included attset */
data1_attset *next; /* next in cache */
@@
-89,7
+77,7
@@
struct data1_attset
typedef struct data1_handle_info *data1_handle;
YAZ_EXPORT data1_att *data1_getattbyname(data1_handle dh, data1_attset *s,
typedef struct data1_handle_info *data1_handle;
YAZ_EXPORT data1_att *data1_getattbyname(data1_handle dh, data1_attset *s,
- char *name);
+ const char *name);
YAZ_EXPORT data1_attset *data1_read_attset(data1_handle dh, const char *file);
YAZ_EXPORT data1_attset *data1_empty_attset(data1_handle dh);
YAZ_EXPORT data1_attset *data1_read_attset(data1_handle dh, const char *file);
YAZ_EXPORT data1_attset *data1_empty_attset(data1_handle dh);
@@
-109,23
+97,18
@@
typedef struct data1_maptag
struct data1_maptag *next;
} data1_maptag;
struct data1_maptag *next;
} data1_maptag;
-typedef struct data1_mapunit
-{
- int no_data;
- char *source_element_name;
- data1_maptag *target_path;
- struct data1_mapunit *next;
-} data1_mapunit;
+typedef struct data1_mapunit data1_mapunit;
typedef struct data1_maptab
{
char *name;
typedef struct data1_maptab
{
char *name;
- oid_value target_absyn_ref;
+ Odr_oid *oid; /* target abstract syntax */
char *target_absyn_name;
data1_mapunit *map;
struct data1_maptab *next;
} data1_maptab;
char *target_absyn_name;
data1_mapunit *map;
struct data1_maptab *next;
} data1_maptab;
+
typedef struct data1_name
{
char *name;
typedef struct data1_name
{
char *name;
@@
-154,7
+137,7
@@
typedef enum data1_datatype
typedef struct data1_marctab
{
char *name;
typedef struct data1_marctab
{
char *name;
- oid_value reference;
+ Odr_oid *oid; /* MARC OID */
char record_status[2];
char implementation_codes[5];
char record_status[2];
char implementation_codes[5];
@@
-169,7
+152,7
@@
typedef struct data1_marctab
int force_indicator_length;
int force_identifier_length;
int force_indicator_length;
int force_identifier_length;
- char leader[24]; /* Fixme! Need linear access to LEADER of MARC record */
+ char leader[24]; /* Fixme! Need linear access to LEADER of MARC record */
struct data1_marctab *next;
} data1_marctab;
struct data1_marctab *next;
} data1_marctab;
@@
-205,7
+188,7
@@
typedef struct data1_varclass
typedef struct data1_varset
{
char *name;
typedef struct data1_varset
{
char *name;
- oid_value reference;
+ Odr_oid *oid; /* variant OID */
data1_varclass *classes;
} data1_varset;
data1_varclass *classes;
} data1_varset;
@@
-238,7
+221,7
@@
struct data1_tagset
{
int type; /* type of tagset in current context */
char *name; /* symbolic name */
{
int type; /* type of tagset in current context */
char *name; /* symbolic name */
- oid_value reference;
+ Odr_oid *oid; /* variant OID */
data1_tag *tags; /* tags defined by this set */
data1_tagset *children; /* children */
data1_tagset *next; /* sibling */
data1_tag *tags; /* tags defined by this set */
data1_tagset *children; /* children */
data1_tagset *next; /* sibling */
@@
-246,7
+229,7
@@
struct data1_tagset
typedef struct data1_termlist
{
typedef struct data1_termlist
{
- data1_att *att;
+ char *index_name;
char *structure;
char *source;
struct data1_termlist *next;
char *structure;
char *source;
struct data1_termlist *next;
@@
-264,7
+247,7
@@
typedef struct data1_element
char *sub_name;
struct data1_element *children;
struct data1_element *next;
char *sub_name;
struct data1_element *children;
struct data1_element *next;
- struct data1_hash *hash;
+ struct data1_hash_table *hash;
} data1_element;
typedef struct data1_sub_elements {
} data1_element;
typedef struct data1_sub_elements {
@@
-288,9
+271,9
@@
typedef struct data1_xattr {
typedef struct data1_node
{
/* the root of a record (containing global data) */
typedef struct data1_node
{
/* the root of a record (containing global data) */
-#define DATA1N_root 1
+#define DATA1N_root 1
/* a tag */
/* a tag */
-#define DATA1N_tag 2
+#define DATA1N_tag 2
/* some data under a leaf tag or variant */
#define DATA1N_data 3
/* variant specification (a triple, actually) */
/* some data under a leaf tag or variant */
#define DATA1N_data 3
/* variant specification (a triple, actually) */
@@
-308,7
+291,7
@@
typedef struct data1_node
struct data1_absyn *absyn; /* abstract syntax for this type */
} root;
struct data1_absyn *absyn; /* abstract syntax for this type */
} root;
- struct
+ struct
{
char *tag;
data1_element *element;
{
char *tag;
data1_element *element;
@@
-328,7
+311,7
@@
typedef struct data1_node
/* binary data inclusion */
#define DATA1I_incbin 2
/* text data */
/* binary data inclusion */
#define DATA1I_incbin 2
/* text data */
-#define DATA1I_text 3
+#define DATA1I_text 3
/* numerical data */
#define DATA1I_num 4
/* object identifier */
/* numerical data */
#define DATA1I_num 4
/* object identifier */
@@
-352,7
+335,6
@@
typedef struct data1_node
} preprocess;
} u;
} preprocess;
} u;
- void (*destroy)(struct data1_node *n);
#define DATA1_LOCALDATA 12
char lbuf[DATA1_LOCALDATA]; /* small buffer for local data */
struct data1_node *next;
#define DATA1_LOCALDATA 12
char lbuf[DATA1_LOCALDATA]; /* small buffer for local data */
struct data1_node *next;
@@
-362,10
+344,13
@@
typedef struct data1_node
struct data1_node *root;
} data1_node;
struct data1_node *root;
} data1_node;
+enum DATA1_XPATH_INDEXING {
+ DATA1_XPATH_INDEXING_DISABLE,
+ DATA1_XPATH_INDEXING_ENABLE
+};
+
YAZ_EXPORT data1_handle data1_create (void);
YAZ_EXPORT data1_handle data1_create (void);
-#define DATA1_FLAG_XML 1
-YAZ_EXPORT data1_handle data1_createx (int flags);
YAZ_EXPORT void data1_destroy(data1_handle dh);
YAZ_EXPORT data1_node *get_parent_tag(data1_handle dh, data1_node *n);
YAZ_EXPORT void data1_destroy(data1_handle dh);
YAZ_EXPORT data1_node *get_parent_tag(data1_handle dh, data1_node *n);
@@
-374,19
+359,20
@@
YAZ_EXPORT data1_node *data1_read_node(data1_handle dh, const char **buf,
YAZ_EXPORT data1_node *data1_read_nodex (data1_handle dh, NMEM m,
int (*get_byte)(void *fh), void *fh,
WRBUF wrbuf);
YAZ_EXPORT data1_node *data1_read_nodex (data1_handle dh, NMEM m,
int (*get_byte)(void *fh), void *fh,
WRBUF wrbuf);
-YAZ_EXPORT data1_node *data1_read_record(data1_handle dh,
+YAZ_EXPORT data1_node *data1_read_record(data1_handle dh,
int (*rf)(void *, char *, size_t),
void *fh, NMEM m);
int (*rf)(void *, char *, size_t),
void *fh, NMEM m);
-YAZ_EXPORT data1_absyn *data1_read_absyn(data1_handle dh, const char *file,
- int file_must_exist);
+
+YAZ_EXPORT void data1_remove_node (data1_handle dh, data1_node *n);
+YAZ_EXPORT void data1_remove_idzebra_subtree (data1_handle dh, data1_node *n);
YAZ_EXPORT data1_tag *data1_gettagbynum(data1_handle dh,
data1_tagset *s,
int type, int value);
YAZ_EXPORT data1_tagset *data1_empty_tagset (data1_handle dh);
YAZ_EXPORT data1_tag *data1_gettagbynum(data1_handle dh,
data1_tagset *s,
int type, int value);
YAZ_EXPORT data1_tagset *data1_empty_tagset (data1_handle dh);
-YAZ_EXPORT data1_tagset *data1_read_tagset(data1_handle dh,
+YAZ_EXPORT data1_tagset *data1_read_tagset(data1_handle dh,
const char *file,
int type);
const char *file,
int type);
-YAZ_EXPORT data1_element *data1_getelementbytagname(data1_handle dh,
+YAZ_EXPORT data1_element *data1_getelementbytagname(data1_handle dh,
data1_absyn *abs,
data1_element *parent,
const char *tagname);
data1_absyn *abs,
data1_element *parent,
const char *tagname);
@@
-395,7
+381,6
@@
YAZ_EXPORT Z_GenericRecord *data1_nodetogr(data1_handle dh, data1_node *n,
int *len);
YAZ_EXPORT data1_tag *data1_gettagbyname(data1_handle dh, data1_tagset *s,
const char *name);
int *len);
YAZ_EXPORT data1_tag *data1_gettagbyname(data1_handle dh, data1_tagset *s,
const char *name);
-YAZ_EXPORT void data1_free_tree(data1_handle dh, data1_node *t);
YAZ_EXPORT char *data1_nodetobuf(data1_handle dh, data1_node *n,
int select, int *len);
YAZ_EXPORT data1_node *data1_mk_tag_data_wd(data1_handle dh,
YAZ_EXPORT char *data1_nodetobuf(data1_handle dh, data1_node *n,
int select, int *len);
YAZ_EXPORT data1_node *data1_mk_tag_data_wd(data1_handle dh,
@@
-407,13
+392,14
@@
YAZ_EXPORT data1_datatype data1_maptype(data1_handle dh, char *t);
YAZ_EXPORT data1_varset *data1_read_varset(data1_handle dh, const char *file);
YAZ_EXPORT data1_vartype *data1_getvartypebyct(data1_handle dh,
data1_varset *set,
YAZ_EXPORT data1_varset *data1_read_varset(data1_handle dh, const char *file);
YAZ_EXPORT data1_vartype *data1_getvartypebyct(data1_handle dh,
data1_varset *set,
- char *zclass, char *type);
+ const char *zclass,
+ const char *type);
YAZ_EXPORT data1_vartype *data1_getvartypeby_absyn(data1_handle dh,
data1_absyn *absyn,
char *zclass, char *type);
YAZ_EXPORT Z_Espec1 *data1_read_espec1(data1_handle dh, const char *file);
YAZ_EXPORT int data1_doespec1(data1_handle dh, data1_node *n, Z_Espec1 *e);
YAZ_EXPORT data1_vartype *data1_getvartypeby_absyn(data1_handle dh,
data1_absyn *absyn,
char *zclass, char *type);
YAZ_EXPORT Z_Espec1 *data1_read_espec1(data1_handle dh, const char *file);
YAZ_EXPORT int data1_doespec1(data1_handle dh, data1_node *n, Z_Espec1 *e);
-YAZ_EXPORT data1_esetname *data1_getesetbyname(data1_handle dh,
+YAZ_EXPORT data1_esetname *data1_getesetbyname(data1_handle dh,
data1_absyn *a,
const char *name);
YAZ_EXPORT data1_element *data1_getelementbyname(data1_handle dh,
data1_absyn *a,
const char *name);
YAZ_EXPORT data1_element *data1_getelementbyname(data1_handle dh,
@@
-422,7
+408,7
@@
YAZ_EXPORT data1_element *data1_getelementbyname(data1_handle dh,
YAZ_EXPORT data1_node *data1_mk_node2(data1_handle dh, NMEM m,
int type, data1_node *parent);
YAZ_EXPORT data1_node *data1_mk_node2(data1_handle dh, NMEM m,
int type, data1_node *parent);
-YAZ_EXPORT data1_node *data1_mk_tag (data1_handle dh, NMEM nmem,
+YAZ_EXPORT data1_node *data1_mk_tag (data1_handle dh, NMEM nmem,
const char *tag, const char **attr,
data1_node *at);
YAZ_EXPORT data1_node *data1_mk_tag_n (data1_handle dh, NMEM nmem,
const char *tag, const char **attr,
data1_node *at);
YAZ_EXPORT data1_node *data1_mk_tag_n (data1_handle dh, NMEM nmem,
@@
-493,11
+479,12
@@
YAZ_EXPORT data1_node *data1_mk_tag_data_text_uni (data1_handle dh,
const char *str,
NMEM nmem);
const char *str,
NMEM nmem);
-YAZ_EXPORT data1_absyn *data1_get_absyn (data1_handle dh, const char *name);
+YAZ_EXPORT data1_absyn *data1_get_absyn (data1_handle dh, const char *name,
+ enum DATA1_XPATH_INDEXING en);
YAZ_EXPORT data1_node *data1_search_tag (data1_handle dh, data1_node *n,
const char *tag);
YAZ_EXPORT data1_node *data1_search_tag (data1_handle dh, data1_node *n,
const char *tag);
-YAZ_EXPORT data1_node *data1_mk_tag_uni (data1_handle dh, NMEM nmem,
+YAZ_EXPORT data1_node *data1_mk_tag_uni (data1_handle dh, NMEM nmem,
const char *tag, data1_node *at);
YAZ_EXPORT data1_attset *data1_get_attset (data1_handle dh, const char *name);
YAZ_EXPORT data1_maptab *data1_read_maptab(data1_handle dh, const char *file);
const char *tag, data1_node *at);
YAZ_EXPORT data1_attset *data1_get_attset (data1_handle dh, const char *name);
YAZ_EXPORT data1_maptab *data1_read_maptab(data1_handle dh, const char *file);
@@
-506,9
+493,9
@@
YAZ_EXPORT data1_node *data1_map_record(data1_handle dh, data1_node *n,
YAZ_EXPORT data1_marctab *data1_read_marctab (data1_handle dh,
const char *file);
YAZ_EXPORT data1_marctab *data1_absyn_getmarctab(data1_handle dh,
YAZ_EXPORT data1_marctab *data1_read_marctab (data1_handle dh,
const char *file);
YAZ_EXPORT data1_marctab *data1_absyn_getmarctab(data1_handle dh,
- data1_absyn *absyn);
+ data1_node *root);
YAZ_EXPORT data1_element *data1_absyn_getelements(data1_handle dh,
YAZ_EXPORT data1_element *data1_absyn_getelements(data1_handle dh,
- data1_absyn *absyn);
+ data1_node *root);
YAZ_EXPORT char *data1_nodetomarc(data1_handle dh, data1_marctab *p,
data1_node *n, int selected, int *len);
YAZ_EXPORT char *data1_nodetoidsgml(data1_handle dh, data1_node *n,
YAZ_EXPORT char *data1_nodetomarc(data1_handle dh, data1_marctab *p,
data1_node *n, int selected, int *len);
YAZ_EXPORT char *data1_nodetoidsgml(data1_handle dh, data1_node *n,
@@
-516,7
+503,7
@@
YAZ_EXPORT char *data1_nodetoidsgml(data1_handle dh, data1_node *n,
YAZ_EXPORT Z_ExplainRecord *data1_nodetoexplain(data1_handle dh,
data1_node *n, int select,
ODR o);
YAZ_EXPORT Z_ExplainRecord *data1_nodetoexplain(data1_handle dh,
data1_node *n, int select,
ODR o);
-YAZ_EXPORT Z_BriefBib *data1_nodetosummary(data1_handle dh,
+YAZ_EXPORT Z_BriefBib *data1_nodetosummary(data1_handle dh,
data1_node *n, int select,
ODR o);
YAZ_EXPORT char *data1_nodetosoif(data1_handle dh, data1_node *n, int select,
data1_node *n, int select,
ODR o);
YAZ_EXPORT char *data1_nodetosoif(data1_handle dh, data1_node *n, int select,
@@
-546,7
+533,8
@@
YAZ_EXPORT void data1_absyn_trav (data1_handle dh, void *handle,
void (*fh)(data1_handle dh,
void *h, data1_absyn *a));
void (*fh)(data1_handle dh,
void *h, data1_absyn *a));
-YAZ_EXPORT data1_attset *data1_attset_search_id (data1_handle dh, int id);
+YAZ_EXPORT data1_attset *data1_attset_search_id (data1_handle dh,
+ const Odr_oid *oid);
YAZ_EXPORT char *data1_getNodeValue(data1_node* node, char* pTagPath);
YAZ_EXPORT data1_node *data1_LookupNode(data1_node* node, char* pTagPath);
YAZ_EXPORT char *data1_getNodeValue(data1_node* node, char* pTagPath);
YAZ_EXPORT data1_node *data1_LookupNode(data1_node* node, char* pTagPath);
@@
-571,7
+559,7
@@
YAZ_EXPORT data1_node *data1_add_taggeddata (data1_handle dh, data1_node *root,
YAZ_EXPORT data1_node *data1_get_root_tag (data1_handle dh, data1_node *n);
YAZ_EXPORT int data1_iconv (data1_handle dh, NMEM m, data1_node *n,
YAZ_EXPORT data1_node *data1_get_root_tag (data1_handle dh, data1_node *n);
YAZ_EXPORT int data1_iconv (data1_handle dh, NMEM m, data1_node *n,
- const char *tocode,
+ const char *tocode,
const char *fromcode);
YAZ_EXPORT const char *data1_get_encoding (data1_handle dh, data1_node *n);
const char *fromcode);
YAZ_EXPORT const char *data1_get_encoding (data1_handle dh, data1_node *n);
@@
-582,9
+570,21
@@
YAZ_EXPORT const char *data1_systag_lookup(data1_absyn *absyn, const char *tag,
const char *default_value);
YAZ_EXPORT void data1_concat_text(data1_handle dh, NMEM m, data1_node *n);
const char *default_value);
YAZ_EXPORT void data1_concat_text(data1_handle dh, NMEM m, data1_node *n);
+YAZ_EXPORT void data1_chop_text(data1_handle dh, NMEM m, data1_node *n);
YAZ_EXPORT void data1_absyn_destroy(data1_handle dh);
YAZ_EXPORT void data1_absyn_destroy(data1_handle dh);
+YAZ_EXPORT const char *data1_absyn_get_staticrank(data1_absyn *absyn);
+
YAZ_END_CDECL
#endif
YAZ_END_CDECL
#endif
+/*
+ * Local variables:
+ * c-basic-offset: 4
+ * c-file-style: "Stroustrup"
+ * indent-tabs-mode: nil
+ * End:
+ * vim: shiftwidth=4 tabstop=8 expandtab
+ */
+