X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=blobdiff_plain;f=include%2Fidzebra%2Fdata1.h;h=c52eaff13b8cd4bfa549ff8fc5d344c2da5a3659;hp=b09f3a1ff8e291edfbfa54ee7f28f3f03c880172;hb=aeea139423b8eaf28a4de53b3d7b2ad1f22284e7;hpb=d1e1a6a2a574e8019e700abb9d8a9d03ba41aab5 diff --git a/include/idzebra/data1.h b/include/idzebra/data1.h index b09f3a1..c52eaff 100644 --- a/include/idzebra/data1.h +++ b/include/idzebra/data1.h @@ -1,8 +1,5 @@ -/* $Id: data1.h,v 1.16 2006-07-06 11:40:24 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-2011 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 @@ -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 -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 @@ -26,7 +23,6 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include #include -#include #include #include @@ -52,7 +48,7 @@ YAZ_BEGIN_CDECL struct data1_attset; -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; @@ -72,7 +68,7 @@ struct data1_attset_child { 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 */ @@ -101,23 +97,18 @@ typedef struct 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; - oid_value target_absyn_ref; + Odr_oid *oid; /* target abstract syntax */ char *target_absyn_name; data1_mapunit *map; struct data1_maptab *next; } data1_maptab; + typedef struct data1_name { char *name; @@ -146,7 +137,7 @@ typedef enum data1_datatype typedef struct data1_marctab { char *name; - oid_value reference; + Odr_oid *oid; /* MARC OID */ char record_status[2]; char implementation_codes[5]; @@ -161,7 +152,7 @@ typedef struct data1_marctab 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; @@ -197,7 +188,7 @@ typedef struct data1_varclass typedef struct data1_varset { char *name; - oid_value reference; + Odr_oid *oid; /* variant OID */ data1_varclass *classes; } data1_varset; @@ -230,7 +221,7 @@ struct data1_tagset { 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 */ @@ -280,9 +271,9 @@ typedef struct data1_xattr { typedef struct data1_node { /* the root of a record (containing global data) */ -#define DATA1N_root 1 +#define DATA1N_root 1 /* 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) */ @@ -300,7 +291,7 @@ typedef struct data1_node struct data1_absyn *absyn; /* abstract syntax for this type */ } root; - struct + struct { char *tag; data1_element *element; @@ -320,7 +311,7 @@ typedef struct data1_node /* 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 */ @@ -368,17 +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_record(data1_handle dh, +YAZ_EXPORT data1_node *data1_read_record(data1_handle dh, int (*rf)(void *, char *, size_t), void *fh, NMEM m); + +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_tagset *data1_read_tagset(data1_handle dh, +YAZ_EXPORT data1_tagset *data1_read_tagset(data1_handle dh, 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); @@ -405,7 +399,7 @@ YAZ_EXPORT data1_vartype *data1_getvartypeby_absyn(data1_handle dh, 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, @@ -414,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_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, @@ -490,7 +484,7 @@ YAZ_EXPORT data1_absyn *data1_get_absyn (data1_handle dh, const char *name, 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); @@ -499,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, - data1_absyn *absyn); + data1_node *root); 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, @@ -509,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_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, @@ -539,7 +533,8 @@ YAZ_EXPORT void data1_absyn_trav (data1_handle dh, void *handle, 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); @@ -564,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, - const char *tocode, + const char *tocode, const char *fromcode); YAZ_EXPORT const char *data1_get_encoding (data1_handle dh, data1_node *n); @@ -575,15 +570,19 @@ 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); +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 const char *data1_absyn_get_staticrank(data1_absyn *absyn); + 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