YAZ 5.35.1
prt-ext.h
Go to the documentation of this file.
1/* This file is part of the YAZ toolkit.
2 * Copyright (C) Index Data.
3 * All rights reserved.
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are met:
6 *
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of Index Data nor the names of its contributors
13 * may be used to endorse or promote products derived from this
14 * software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
33/*
34 * Biased-choice External for Z39.50.
35 */
36
37#ifndef PRT_EXT_H
38#define PRT_EXT_H
39
40#include <yaz/yconfig.h>
41#include <yaz/oid_util.h>
42
43
45
50typedef struct Z_ext_typeent
51{
52 Odr_oid oid[OID_SIZE]; /* the direct-reference OID */
53 int what; /* discriminator value for the external CHOICE */
54 Odr_fun fun; /* decoder function */
56
59{
63 int which;
64/* Generic types */
65#define Z_External_single 0
66#define Z_External_octet 1
67#define Z_External_arbitrary 2
68/* Specific types */
69#define Z_External_sutrs 3
70#define Z_External_explainRecord 4
71#define Z_External_resourceReport1 5
72#define Z_External_resourceReport2 6
73#define Z_External_promptObject1 7
74#define Z_External_grs1 8
75#define Z_External_extendedService 9
76#define Z_External_itemOrder 10
77#define Z_External_diag1 11
78#define Z_External_espec1 12
79#define Z_External_summary 13
80#define Z_External_OPAC 14
81#define Z_External_searchResult1 15
82#define Z_External_update 16
83#define Z_External_dateTime 17
84#define Z_External_universeReport 18
85#define Z_External_ESAdmin 19
86#define Z_External_update0 20
87#define Z_External_userInfo1 21
88#define Z_External_charSetandLanguageNegotiation 22
89#define Z_External_acfPrompt1 23
90#define Z_External_acfDes1 24
91#define Z_External_acfKrb1 25
92#define Z_External_multisrch2 26
93#define Z_External_CQL 27
94#define Z_External_OCLCUserInfo 28
95#define Z_External_persistentResultSet 29
96#define Z_External_persistentQuery 30
97#define Z_External_periodicQuerySchedule 31
98#define Z_External_exportSpecification 32
99#define Z_External_exportInvocation 33
100#define Z_External_userFacets 34
101 union
102 {
103 /* Generic types */
107
108 /* Specific types */
111
117
123
129
135
141
147 } u;
148};
149
150
152YAZ_EXPORT int z_External(ODR o, Z_External **p, int opt, const char *name);
154YAZ_EXPORT Z_ext_typeent *z_ext_getentbyref(const Odr_oid *oid);
156YAZ_EXPORT Z_External *z_ext_record_oid(ODR o, const Odr_oid *oid,
157 const char *buf, int len);
159YAZ_EXPORT Z_External *z_ext_record_oid_nmem(NMEM nmem, const Odr_oid *oid,
160 const char *buf, int len);
162YAZ_EXPORT Z_External *z_ext_record_oid_any(ODR o, const Odr_oid *oid,
163 const char *buf, int len);
165YAZ_EXPORT Z_External *z_ext_record_xml(ODR o, const char *buf, int len);
166
168YAZ_EXPORT Z_External *z_ext_record_sutrs(ODR o, const char *buf, int len);
169
171YAZ_EXPORT Z_External *z_ext_record_usmarc(ODR o, const char *buf, int len);
172
174
175#endif
176/*
177 * Local variables:
178 * c-basic-offset: 4
179 * c-file-style: "Stroustrup"
180 * indent-tabs-mode: nil
181 * End:
182 * vim: shiftwidth=4 tabstop=8 expandtab
183 */
184
int opt
Definition initopt.c:19
char * name
Definition initopt.c:18
nmem_int_t Odr_int
Definition odr.h:47
int(* Odr_fun)(ODR, char **, int, const char *)
Definition odr.h:135
Header for OID basic functions.
short Odr_oid
Definition oid_util.h:42
#define OID_SIZE
Definition oid_util.h:39
Z_External * z_ext_record_oid(ODR o, const Odr_oid *oid, const char *buf, int len)
encodes EXTERNAL record based on OID (NULL if not known)
Definition prt-ext.c:338
Z_ext_typeent * z_ext_getentbyref(const Odr_oid *oid)
returns type information for OID (NULL if not known)
Definition prt-ext.c:66
Z_External * z_ext_record_oid_any(ODR o, const Odr_oid *oid, const char *buf, int len)
encodes EXTERNAL record as ANY
Definition prt-ext.c:344
Z_External * z_ext_record_oid_nmem(NMEM nmem, const Odr_oid *oid, const char *buf, int len)
encodes EXTERNAL record based on OID (NULL if not known)
Definition prt-ext.c:262
Z_External * z_ext_record_xml(ODR o, const char *buf, int len)
encodes EXTERNAL XML record
Definition prt-ext.c:368
Z_External * z_ext_record_usmarc(ODR o, const char *buf, int len)
encodes EXTERNAL USMARC/MARC21 record
Definition prt-ext.c:378
int z_External(ODR o, Z_External **p, int opt, const char *name)
codec for BER EXTERNAL
Definition prt-ext.c:95
Z_External * z_ext_record_sutrs(ODR o, const char *buf, int len)
encodes EXTERNAL SUTRS record
Definition prt-ext.c:373
structure for all known EXTERNALs
Definition prt-ext.h:59
Z_DateTime * dateTime
Definition prt-ext.h:126
Z_BriefBib * summary
Definition prt-ext.h:121
Z_CharSetandLanguageNegotiation * charNeg3
Definition prt-ext.h:132
Z_ItemOrder * itemOrder
Definition prt-ext.h:118
Z_EIExportInvocation * exportInvocation
Definition prt-ext.h:145
Odr_int * indirect_reference
Definition prt-ext.h:61
Z_DES_RN_Object * acfDes1
Definition prt-ext.h:134
Z_IUUpdate * update
Definition prt-ext.h:125
Z_DiagnosticFormat * diag1
Definition prt-ext.h:119
Z_OPACRecord * opac
Definition prt-ext.h:122
Z_ExplainRecord * explainRecord
Definition prt-ext.h:110
Z_MultipleSearchTerms_2 * multipleSearchTerms_2
Definition prt-ext.h:137
Z_TaskPackage * extendedService
Definition prt-ext.h:116
Z_InternationalString * cql
Definition prt-ext.h:138
int which
Definition prt-ext.h:63
Z_GenericRecord * grs1
Definition prt-ext.h:115
Z_Espec1 * espec1
Definition prt-ext.h:120
union Z_External::@27 u
Z_UniverseReport * universeReport
Definition prt-ext.h:127
Z_SUTRS * sutrs
Definition prt-ext.h:109
Odr_oid * direct_reference
Definition prt-ext.h:60
Z_ResourceReport1 * resourceReport1
Definition prt-ext.h:112
Z_OtherInformation * userInfo1
Definition prt-ext.h:131
Z_PRPersistentResultSet * persistentResultSet
Definition prt-ext.h:140
Z_FacetList * facetList
Definition prt-ext.h:146
Z_Admin * adminService
Definition prt-ext.h:128
Z_ResourceReport2 * resourceReport2
Definition prt-ext.h:113
Z_OCLC_UserInformation * oclc
Definition prt-ext.h:139
Odr_any * single_ASN1_type
Definition prt-ext.h:104
Z_PQueryPersistentQuery * persistentQuery
Definition prt-ext.h:142
Odr_bitmask * arbitrary
Definition prt-ext.h:106
Z_SearchInfoReport * searchResult1
Definition prt-ext.h:124
Odr_oct * octet_aligned
Definition prt-ext.h:105
Z_PromptObject1 * promptObject1
Definition prt-ext.h:114
Z_IU0Update * update0
Definition prt-ext.h:130
Z_ESExportSpecification * exportSpecification
Definition prt-ext.h:144
char * descriptor
Definition prt-ext.h:62
Z_KRBObject * acfKrb1
Definition prt-ext.h:136
Z_PQSPeriodicQuerySchedule * periodicQuerySchedule
Definition prt-ext.h:143
Z_PromptObject1 * acfPrompt1
Definition prt-ext.h:133
Odr_fun fun
Definition prt-ext.h:54
Odr_oid oid[OID_SIZE]
Definition prt-ext.h:52
Definition odr.h:100
Definition odr.h:125
Header with fundamental macros.
#define YAZ_BEGIN_CDECL
Definition yconfig.h:56
#define YAZ_END_CDECL
Definition yconfig.h:57
char Z_InternationalString
Definition z-core.h:301