source: trunk/gsdl/packages/yaz/include/yaz/prt-esp.h@ 1343

Last change on this file since 1343 was 1343, checked in by johnmcp, 24 years ago

Added the YAZ toolkit source to the packages directory (for z39.50 stuff)

  • Property svn:keywords set to Author Date Id Revision
File size: 3.5 KB
Line 
1/*
2 * Copyright (c) 1995, Index Data.
3 *
4 * Permission to use, copy, modify, distribute, and sell this software and
5 * its documentation, in whole or in part, for any purpose, is hereby granted,
6 * provided that:
7 *
8 * 1. This copyright and permission notice appear in all copies of the
9 * software and its documentation. Notices of copyright or attribution
10 * which appear at the beginning of any file must remain unchanged.
11 *
12 * 2. The names of Index Data or the individual authors may not be used to
13 * endorse or promote products derived from this software without specific
14 * prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND,
17 * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
18 * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
19 * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
20 * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES
21 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR
22 * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
23 * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
24 * OF THIS SOFTWARE.
25 *
26 */
27
28#ifndef PRT_ESP_H
29#define PRT_ESP_H
30
31#include <yaz/yconfig.h>
32
33#ifdef __cplusplus
34extern "C" {
35#endif
36
37typedef struct Z_OccurValues
38{
39 int *start;
40 int *howMany; /* OPTIONAL */
41} Z_OccurValues;
42
43typedef struct Z_Occurrences
44{
45 int which;
46#define Z_Occurrences_all 0
47#define Z_Occurrences_last 1
48#define Z_Occurrences_values 2
49 union
50 {
51 Odr_null *all;
52 Odr_null *last;
53 Z_OccurValues *values;
54 } u;
55} Z_Occurrences;
56
57typedef struct Z_SpecificTag
58{
59 Odr_oid *schemaId; /* OPTIONAL */
60 int *tagType; /* OPTIONAL */
61 Z_StringOrNumeric *tagValue;
62 Z_Occurrences *occurrences; /* OPTIONAL */
63} Z_SpecificTag;
64
65typedef struct Z_ETagUnit
66{
67 int which;
68#define Z_ETagUnit_specificTag 0
69#define Z_ETagUnit_wildThing 1
70#define Z_ETagUnit_wildPath 2
71 union
72 {
73 Z_SpecificTag *specificTag;
74 Z_Occurrences *wildThing;
75 Odr_null *wildPath;
76 } u;
77} Z_ETagUnit;
78
79typedef struct Z_ETagPath
80{
81 int num_tags;
82 Z_ETagUnit **tags;
83} Z_ETagPath;
84
85typedef struct Z_SimpleElement
86{
87 Z_ETagPath *path;
88 Z_Variant *variantRequest; /* OPTIONAL */
89} Z_SimpleElement;
90
91typedef struct Z_CompoPrimitives
92{
93 int num_primitives;
94 char **primitives;
95} Z_CompoPrimitives;
96
97typedef struct Z_CompoSpecs
98{
99 int num_specs;
100 Z_SimpleElement **specs;
101} Z_CompoSpecs;
102
103typedef struct Z_CompositeElement
104{
105 int which;
106#define Z_CompoElement_primitives 0
107#define Z_CompoElement_specs 1
108 union
109 {
110 Z_CompoPrimitives *primitives;
111 Z_CompoSpecs *specs;
112 } elementList;
113 Z_ETagPath *deliveryTag;
114 Z_Variant *variantRequest;
115} Z_CompositeElement;
116
117typedef struct Z_ElementRequest
118{
119 int which;
120#define Z_ERequest_simpleElement 0
121#define Z_ERequest_compositeElement 1
122 union
123 {
124 Z_SimpleElement *simpleElement;
125 Z_CompositeElement *compositeElement;
126 } u;
127} Z_ElementRequest;
128
129typedef struct Z_Espec1
130{
131 int num_elementSetNames;
132 char **elementSetNames; /* OPTIONAL */
133 Odr_oid *defaultVariantSetId; /* OPTIONAL */
134 Z_Variant *defaultVariantRequest; /* OPTIONAL */
135 int *defaultTagType; /* OPTIONAL */
136 int num_elements;
137 Z_ElementRequest **elements; /* OPTIONAL */
138} Z_Espec1;
139
140YAZ_EXPORT int z_Espec1(ODR o, Z_Espec1 **p, int opt, const char *name);
141
142#ifdef __cplusplus
143}
144#endif
145
146#endif
Note: See TracBrowser for help on using the repository browser.