1# YC Sample Config File for Z39.50
2# ----------------------------------------------------------
3# Prefix Specifications
4#
5#    1: C function prefix
6#    2: C type prefix
7#    3: C preprocessor prefix
8
9# Default prefix
10set default-prefix {z_ Z_ Z_}
11
12# Name clash in extended services (TargetPart, OriginPartToKeep, etc)
13# You can possibly think of better names :)
14set prefix(ESFormat-PersistentResultSet) {z_PR Z_PR Z_PR}
15set prefix(ESFormat-PersistentQuery) {z_PQuery Z_PQuery Z_PQuery}
16set prefix(ESFormat-PeriodicQuerySchedule) {z_PQS Z_PQS Z_PQS}
17set prefix(ESFormat-ItemOrder) {z_IO Z_IO Z_IO}
18set prefix(ESFormat-Update0) {z_IU0 Z_IU0 Z_IU0}
19set prefix(ESFormat-Update) {z_IU Z_IU Z_IU}
20set prefix(ESFormat-ExportSpecification) {z_ES Z_ES Z_ES}
21set prefix(ESFormat-ExportInvocation) {z_EI Z_EI Z_EI}
22
23# ----------------------------------------------------------
24# Settings for core of the protocol
25set m Z39-50-APDU-1995
26
27# Filename
28set filename($m) z-core
29
30# Public header initialization code
31set init($m,h) {
32typedef struct Z_External Z_External;
33YAZ_EXPORT int z_External(ODR o, Z_External **p, int opt, const char *name);
34}
35
36set body($m,h) "
37#ifdef __cplusplus
38extern \"C\" \{
39#endif
40
41int z_ANY_type_0 (ODR o, void **p, int opt);
42
43#ifdef __cplusplus
44\}
45#endif
46"
47set body($m,c) {
48
49/* the type-0 query ... */
50int z_ANY_type_0 (ODR o, void **p, int opt)
51{
52    return 0;
53}
54
55}
56
57# Type Name overrides
58set map($m,PDU) APDU
59set membermap($m,Operator,and) {Operator_and op_and}
60set membermap($m,Operator,or) {Operator_or op_or}
61#set membermap($m,Operator,and-not) {Operator_and_not op_and_not}
62set map($m,AttributeElement_complex) ComplexAttribute
63set map($m,DeleteSetStatus) DeleteStatus
64set membermap($m,ProximityOperator,private) {ProximityOperator_private zprivate}
65set unionmap($m,AttributeElement,attributeValue) {which value AttributeValue}
66set membermap($m,ElementSpec,externalEspec) externalSpec
67set membermap($m,RPNStructure,op) simple
68set membermap($m,RPNStructure,rpnRpnOp) complex
69set map($m,RPNStructure_complex) Complex
70set membermap($m,Operand,attrTerm) {Operand_APT attributesPlusTerm}
71set membermap($m,Operand,resultSet) {Operand_resultSetId resultSetId}
72set membermap($m,Operand,resultAttr) {Operand_resultAttr resultAttr}
73set membermap($m,Complex,rpn1) s1
74set membermap($m,Complex,rpn2) s2
75set membermap($m,Complex,op) roperator
76set membermap($m,RPNQuery,attributeSet) attributeSetId
77set membermap($m,RPNQuery,rpn) RPNStructure
78set map($m,KnownProximityUnit) ProxUnit
79set membermap($m,ProximityOperator,lessThan) {Prox_lessThan 1}
80set membermap($m,ProximityOperator,lessThanOrEqual) {Prox_lessThanOrEqual 1}
81set membermap($m,ProximityOperator,equal) {Prox_equal 1}
82set membermap($m,ProximityOperator,greaterThanOrEqual) {Prox_greaterThanOrEqual 1}
83set membermap($m,ProximityOperator,greaterThan) {Prox_greaterThan 1}
84set membermap($m,ProximityOperator,notEqual) {Prox_notEqual 1}
85#
86set membermap($m,Records,responseRecords) {Records_DBOSD databaseOrSurDiagnostics}
87set membermap($m,Records,nonSurrogateDiagnostic) {Records_NSD nonSurrogateDiagnostic}
88set membermap($m,Records,multipleNonSurDiagnostics) {Records_multipleNSD multipleNonSurDiagnostics}
89set map($m,Records_DBOSD) NamePlusRecordList
90set map($m,Records_NSD) DiagRec
91set map($m,Records_multipleNSD) DiagRecs
92set membermap($m,NamePlusRecord,name) databaseName
93set unionmap($m,DiagRecs) {num_diagRecs diagRecs}
94set unionmap($m,NamePlusRecordList) {num_records records}
95#
96set membermap($m,ElementSetNames,genericElementSetName) generic
97set map($m,ElementSetNames_databaseSpecific) DatabaseSpecific
98#
99set map($m,OccurrenceByAttributes_s) OccurrenceByAttributesElem
100set map($m,OccurrenceByAttributesElem_byDatabase) byDatabaseList
101#
102set membermap($m,SortElement,datbaseSpecific) databaseSpecific
103set map($m,SortElement_databaseSpecific) SortDbSpecificList
104#
105set map($m,SortKey_sortAttributes) SortAttributes
106set unionmap($m,PresentRequest,recordComposition) {}
107set map($m,PresentRequest_0) RecordComposition
108set unionmap($m,PresentRequest,additionalRanges) {num_ranges additionalRanges}
109set unionmap($m,SortRequest,sortSequence) {}
110set map($m,SortRequest_0) SortKeySpecList
111set unionmap($m,SortKeySpecList) {num_specs specs}
112set map($m,InitializeRequest) InitRequest
113set map($m,InitializeResponse) InitResponse
114set unionmap($m,CloseReason) Close
115set membermap($m,ProtocolVersion,version-1) 1
116set membermap($m,ProtocolVersion,version-2) 2
117set membermap($m,ProtocolVersion,version-3) 3
118set membermap($m,InitRequest,exceptionalRecordSize) maximumRecordSize
119set membermap($m,InitResponse,exceptionalRecordSize) maximumRecordSize
120set map($m,RecordsMultipleNonSurDiagnostics) DiagRecs
121set map($m,RecordsDatabaseOrSurDiagnostics) NamePlusRecordList
122set membermap($m,NamePlusRecord,retrievalRecord) databaseRecord
123set unionmap($m,RecordComposition) {which u RecordComp}
124set unionmap($m,ScanResponse,scanStatus) Scan
125set unionmap($m,AttributeList) {num_attributes attributes}
126set membermap($m,SortKey,sortfield) sortField
127set map($m,CompSpec_0) DbSpecific
128set map($m,DatabaseSpecific_s) DatabaseSpecificUnit
129set map($m,ListStatuses_s) ListStatus
130set map($m,IdAuthenticationIdPass) IdPass
131set map($m,OtherInformation_s) OtherInformationUnit
132set unionmap($m,OtherInformationUnit,information) {which information OtherInfo}
133set unionmap($m,OtherInformation) {num_elements list}
134set unionmap($m,Specification,elementSpec) {}
135set map($m,Specification_0) ElementSpec
136set unionmap($m,Specification,schema) {which schema Schema}
137
138# ----
139set m DiagnosticFormatDiag1
140set filename($m) z-diag1
141set map($m,DiagFormat_tooMany) TooMany
142set map($m,DiagFormat_badSpec) BadSpec
143set map($m,DiagFormat_dbUnavail) DbUnavail
144set map($m,DiagFormat_attribute) Attribute
145set map($m,DiagFormat_attCombo) AttCombo
146set map($m,DiagFormat_term) DiagTerm
147set map($m,DiagFormat_proximity) Proximity
148set map($m,DiagFormat_scan) Scan
149set map($m,DiagFormat_sort) Sort
150set unionmap($m,Sort) {which u SortD}
151set map($m,DiagFormat_segmentation) Segmentation
152set map($m,DiagFormat_extServices) ExtServices
153set map($m,DiagFormat_accessCtrl) AccessCtrl
154set map($m,DiagFormat_recordSyntax) RecordSyntax
155#
156set map($m,Scan_termList2) AttrListList
157set map($m,Sort_inputTooLarge) StringList
158#
159set map($m,AccessCtrl_oid) OidList
160set map($m,AccessCtrl_alternative) AltOidList
161# ----
162set m RecordSyntax-explain
163set filename($m) z-exp
164set map($m,Explain-Record) ExplainRecord
165set map($m,ElementDataType_structured) ElementInfoList
166set map($m,HumanString_s) HumanStringUnit
167set unionmap($m,HumanString) {num_strings strings}
168set membermap($m,CommonInfo,humanString-Language) humanStringLanguage
169set unionmap($m,AttributeOccurrence,attributeValues) {which attributeValues AttributeOcc}
170set unionmap($m,AttributeCombination) {num_occurrences occurrences}
171#
172set membermap($m,NetworkAddress,internetAddress) {NetworkAddress_iA internetAddress}
173set map($m,NetworkAddress_iA) NetworkAddressIA
174set membermap($m,NetworkAddress,osiPresentationAddress) {NetworkAddress_oPA osiPresentationAddress}
175set map($m,NetworkAddress_oPA) NetworkAddressOPA
176set map($m,NetworkAddress_other) NetworkAddressOther
177set unionmap($m,DatabaseList) {num_databases databases}
178set membermap($m,TargetInfo,recent-news) recentNews
179set membermap($m,TargetInfo,usage-restrictions) usageRest
180set membermap($m,DatabaseInfo,user-fee) userFee
181#
182set map($m,ProximitySupport_0) ProxSupportUnit
183set map($m,ProxSupportUnitZprivate) ProxSupportPrivate
184set membermap($m,ProxSupportUnit,private) {ProxSupportUnit_private zprivate}
185#
186set map($m,AttributeOccurrence_specific) AttributeValueList
187set unionmap($m,AttributeValueList) {num_attributes attributes}
188
189set unionmap($m,ExplainRecord) {which u Explain}
190set map($m,SchemaInfo_0) TagTypeMapping
191set map($m,TagSetInfo_0) TagSetElements
192set map($m,TermListInfo_0) TermListElement
193set map($m,TermListDetails_0) EScanInfo
194set map($m,PrivateCapabilities_0) PrivateCapOperator
195set map($m,Costs_0) CostsOtherCharge
196set map($m,Path_s) PathUnit
197set map($m,IconObject_s) IconObjectUnit
198set map($m,NetworkAddressInternetAddress) NetworkAddressIA
199set map($m,NetworkAddressOsiPresentationAddress) NetworkAddressOPA
200set membermap($m,QueryTypeDetails,private) {QueryTypeDetails_private zprivate}
201set membermap($m,PrivateCapOperator,operator) roperator
202set map($m,AccessRestrictions_s) AccessRestrictionsUnit
203# ----
204set m RecordSyntax-SUTRS
205set filename($m) z-sutrs
206#set map($m,SutrsRecord) SUTRS
207set body($m,c) {
208int z_SUTRS (ODR o, Odr_oct **p, int opt, const char *name)
209{
210    return odr_implicit_tag(o, odr_octetstring, p, ODR_UNIVERSAL,
211        ODR_GENERALSTRING, opt, name);
212}
213}
214
215set init($m,h) {
216typedef Odr_oct Z_SUTRS;
217YAZ_EXPORT int z_SUTRS (ODR o, Odr_oct **p, int opt, const char *name);
218}
219# ----
220set m RecordSyntax-opac
221set filename($m) z-opac
222# ----
223set m RecordSyntax-summary
224set filename($m) z-sum
225# ----
226set m RecordSyntax-generic
227set filename($m) z-grs
228set map($m,ElementData_subtree) GenericRecord
229set map($m,Variant_0) Triple
230set membermap($m,Triple,class) zclass
231set unionmap($m,Triple,value) {which value Triple}
232set unionmap($m,GenericRecord) {num_elements elements}
233# ----
234set m RecordSyntax-ESTaskPackage
235set filename($m) z-estask
236# ----
237set m ResourceReport-Format-Resource-1
238set filename($m) z-rrf1
239set map($m,ResourceReport) ResourceReport1
240set map($m,Estimate) Estimate1
241# ----
242set m ResourceReport-Format-Resource-2
243set filename($m) z-rrf2
244set map($m,ResourceReport) ResourceReport2
245set map($m,Estimate) Estimate2
246# ----
247set m AccessControlFormat-prompt-1
248set filename($m) z-accform1
249set membermap($m,PromptId,enummeratedPrompt) enumeratedPrompt
250set map($m,PromptObject) PromptObject1
251set map($m,Challenge) Challenge1
252set map($m,Challenge1_s) ChallengeUnit1
253set map($m,Response) Response1
254set map($m,Response1_s) ResponseUnit1
255set map($m,PromptObject) PromptObject1
256# ----
257set m AccessControlFormat-des-1
258set filename($m) z-accdes1
259# ----
260set m AccessControlFormat-krb-1
261set filename($m) z-acckrb1
262# ----
263set m ESFormat-PersistentResultSet
264set filename($m) zes-pset
265# ----
266set m ESFormat-PersistentQuery
267set filename($m) zes-pquery
268# ----
269set m ESFormat-PeriodicQuerySchedule
270set filename($m) zes-psched
271# ----
272set m ESFormat-ItemOrder
273set filename($m) zes-order
274set map($m,ItemOrderEsRequest) Request
275set map($m,ItemOrderTaskPackage) TaskPackage
276set map($m,OriginPartToKeep_0) Contact
277set map($m,OriginPartToKeep_1) Billing
278set map($m,OriginPartNotToKeep_0) ResultSetItem
279#
280# ---- (old version)
281set m ESFormat-Update0
282set filename($m) zes-update0
283set map($m,SuppliedRecords_s) SuppliedRecords_elem
284set map($m,SuppliedRecords_elem_0) SuppliedRecordsId
285#
286# ---- (new, current version)
287set m ESFormat-Update
288set filename($m) zes-update
289set map($m,SuppliedRecords_s) SuppliedRecords_elem
290set map($m,SuppliedRecords_elem_0) SuppliedRecordsId
291# ----
292set m ESFormat-ExportSpecification
293set filename($m) zes-exps
294# ----
295set m ESFormat-ExportInvocation
296set filename($m) zes-expi
297# ----
298set m UserInfoFormat-searchResult-1
299set filename($m) z-uifr1
300# ----
301set m ElementSpecificationFormat-eSpec-1
302set filename($m) z-espec1
303set map($m,Espec-1) Espec1
304set map($m,TagPath) ETagPath
305set map($m,ETagPath_s) ETagUnit
306set map($m,ETagUnitSpecificTag) SpecificTag
307set membermap($m,SpecificTag,occurrence) occurrences
308set unionmap($m,ElementRequest) {which u ERequest}
309set unionmap($m,ETagPath) {num_tags tags}
310set map($m,OccurrencesValues) OccurValues
311# ----
312set m UserInfoFormat-dateTime
313set filename($m) z-date
314set map($m,Z3950Date) Date
315set map($m,Z3950Time) Time
316set unionmap($m,Z3950Date,era) {}
317set map($m,DateFlags_0) Era
318set map($m,Z3950DateMonthAndDay) MonthAndDay
319set map($m,Z3950DateQuarter) DateQuater
320set map($m,Z3950DateSeason) DateSeason
321set map($m,Date_0) DateFlags
322set unionmap($m,DateFlags,era) {}
323# ----
324set m UserInfoFormat-multipleSearchTerms-2
325set filename($m) z-mterm2
326# ----
327set m ResourceReport-Format-Universe-1
328set filename($m) z-univ
329# ----
330set m UserInfoFormat-oclcUserInformation
331set filename($m) z-oclcui
332# ----
333set m ESFormat-Admin
334set filename($m) zes-admin
335set map($m,EsRequest) ESAdminRequest
336set map($m,TaskPackage) ESAdminTaskPackage
337set map($m,OriginPartToKeep) ESAdminOriginPartToKeep
338set map($m,OriginPartNotToKeep) ESAdminOriginPartNotToKeep
339set map($m,TargetPart) ESAdminTargetPart
340# ----
341set m NegotiationRecordDefinition-charSetandLanguageNegotiation-3
342set filename($m) z-charneg
343set membermap($m,OriginProposal_0,private) {OriginProposal_0_private zprivate}
344set membermap($m,TargetResponse,private) {TargetResponse_private zprivate}
345# ----
346set m UserInfoFormat-facet-1
347set filename($m) z-facet-1
348# ----------------------------------------------------------
349# "Constructed" types defined by means of C-types are declared here.
350# Each function returns the C-handler and the C-type.
351proc asnBasicEXTERNAL {} {
352    return {z_External Z_External}
353}
354