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