X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=asn%2Fprt-exp.c;h=7b7e140ce6e2a8923ffbe58965c2a432d808afc1;hp=b11a9aa612d8fe4b121d9ed2c25aec10fdb7ed89;hb=f69d4aa4609ff3daa71733da1ea0fcd8322ab954;hpb=8bec24d252450a514ba47690ef187a76a29f8b47 diff --git a/asn/prt-exp.c b/asn/prt-exp.c index b11a9aa..7b7e140 100644 --- a/asn/prt-exp.c +++ b/asn/prt-exp.c @@ -1,10 +1,18 @@ /* - * Copyright (c) 1995, Index Data. + * Copyright (c) 1995-1998, Index Data. * See the file LICENSE for details. * Sebastian Hammer, Adam Dickmeiss * * $Log: prt-exp.c,v $ - * Revision 1.8 1996-01-02 11:46:41 quinn + * Revision 1.10 1998-05-18 13:06:52 adam + * Changed the way attribute sets are handled by the retriaval module. + * Extended Explain conversion / schema. + * Modified server and client to work with ASN.1 compiled protocol handlers. + * + * Revision 1.9 1998/02/11 11:53:32 adam + * Changed code so that it compiles as C++. + * + * Revision 1.8 1996/01/02 11:46:41 quinn * Changed 'operator' to 'roperator' to avoid C++ conflict. * * Revision 1.7 1995/12/14 16:28:07 quinn @@ -94,7 +102,6 @@ int z_RetrievalRecordDetails(ODR o, Z_RetrievalRecordDetails **p, int opt); int z_PerElementDetails(ODR o, Z_PerElementDetails **p, int opt); int z_RecordTag(ODR o, Z_RecordTag **p, int opt); int z_SortDetails(ODR o, Z_SortDetails **p, int opt); -int z_SortKeyDetailsSortType(ODR o, Z_SortKeyDetailsSortType **p, int opt); int z_SortKeyDetails(ODR o, Z_SortKeyDetails **p, int opt); int z_ProcessingInformation(ODR o, Z_ProcessingInformation **p, int opt); int z_VariantSetInfo(ODR o, Z_VariantSetInfo **p, int opt); @@ -145,7 +152,7 @@ int z_HumanString(ODR o, Z_HumanString **p, int opt) { if (!odr_initmember(o, p, sizeof(**p))) return opt && odr_ok(o); - if (odr_sequence_of(o, z_HumanStringUnit, &(*p)->strings, + if (odr_sequence_of(o, (Odr_fun)z_HumanStringUnit, &(*p)->strings, &(*p)->num_strings)) return 1; *p = 0; @@ -156,11 +163,11 @@ int z_IconObjectUnit(ODR o, Z_IconObjectUnit **p, int opt) { static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IconObject_ianaType, + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IconObjectUnit_ianaType, z_InternationalString}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IconObject_z3950type, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IconObjectUnit_z3950type, z_InternationalString}, - {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_IconObject_otherType, + {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_IconObjectUnit_otherType, z_InternationalString}, {-1, -1, -1, -1, 0} }; @@ -179,8 +186,8 @@ int z_IconObject(ODR o, Z_IconObject **p, int opt) { if (!odr_initmember(o, p, sizeof(**p))) return opt && odr_ok(o); - if (odr_sequence_of(o, z_IconObjectUnit, &(*p)->iconUnits, - &(*p)->num_iconUnits)) + if (odr_sequence_of(o, (Odr_fun)z_IconObjectUnit, &(*p)->elements, + &(*p)->num)) return 1; *p = 0; return opt && odr_ok(o); @@ -236,11 +243,11 @@ int z_NetworkAddress(ODR o, Z_NetworkAddress **p, int opt) static Odr_arm arm[] = { {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_NetworkAddress_iA, - z_NetworkAddressIA}, + (Odr_fun)z_NetworkAddressIA}, {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_NetworkAddress_oPA, - z_NetworkAddressOPA}, + (Odr_fun)z_NetworkAddressOPA}, {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_NetworkAddress_other, - z_NetworkAddressOther}, + (Odr_fun)z_NetworkAddressOther}, {-1, -1, -1, -1, 0} }; @@ -258,34 +265,34 @@ int z_AccessInfo(ODR o, Z_AccessInfo **p, int opt) return opt && odr_ok(o); return odr_implicit_settag(o, ODR_CONTEXT, 0) && - (odr_sequence_of(o, z_QueryTypeDetails, &(*p)->queryTypesSupported, + (odr_sequence_of(o, (Odr_fun)z_QueryTypeDetails, &(*p)->queryTypesSupported, &(*p)->num_queryTypesSupported) || odr_ok(o)) && odr_implicit_settag(o, ODR_CONTEXT, 1) && - (odr_sequence_of(o, odr_oid, &(*p)->diagnosticsSets, + (odr_sequence_of(o, (Odr_fun)odr_oid, &(*p)->diagnosticsSets, &(*p)->num_diagnosticsSets) || odr_ok(o)) && odr_implicit_settag(o, ODR_CONTEXT, 2) && - (odr_sequence_of(o, odr_oid, &(*p)->attributeSetIds, + (odr_sequence_of(o, (Odr_fun)odr_oid, &(*p)->attributeSetIds, &(*p)->num_attributeSetIds) || odr_ok(o)) && odr_implicit_settag(o, ODR_CONTEXT, 3) && - (odr_sequence_of(o, odr_oid, &(*p)->schemas, &(*p)->num_schemas) || + (odr_sequence_of(o, (Odr_fun)odr_oid, &(*p)->schemas, &(*p)->num_schemas) || odr_ok(o)) && odr_implicit_settag(o, ODR_CONTEXT, 4) && - (odr_sequence_of(o, odr_oid, &(*p)->recordSyntaxes, + (odr_sequence_of(o, (Odr_fun)odr_oid, &(*p)->recordSyntaxes, &(*p)->num_recordSyntaxes) || odr_ok(o)) && odr_implicit_settag(o, ODR_CONTEXT, 5) && - (odr_sequence_of(o, odr_oid, &(*p)->resourceChallenges, + (odr_sequence_of(o, (Odr_fun)odr_oid, &(*p)->resourceChallenges, &(*p)->num_resourceChallenges) || odr_ok(o)) && odr_implicit(o, z_AccessRestrictions, &(*p)->restrictedAccess, ODR_CONTEXT, 6, 1) && odr_implicit(o, z_Costs, &(*p)->costInfo, ODR_CONTEXT, 8, 1) && odr_implicit_settag(o, ODR_CONTEXT, 9) && - (odr_sequence_of(o, odr_oid, &(*p)->variantSets, + (odr_sequence_of(o, (Odr_fun)odr_oid, &(*p)->variantSets, &(*p)->num_variantSets) || odr_ok(o)) && odr_implicit_settag(o, ODR_CONTEXT, 10) && - (odr_sequence_of(o, z_ElementSetName, &(*p)->elementSetNames, + (odr_sequence_of(o, (Odr_fun)z_ElementSetName, &(*p)->elementSetNames, &(*p)->num_elementSetNames) || odr_ok(o)) && odr_implicit_settag(o, ODR_CONTEXT, 11) && - (odr_sequence_of(o, z_InternationalString, &(*p)->unitSystems, + (odr_sequence_of(o, (Odr_fun)z_InternationalString, &(*p)->unitSystems, &(*p)->num_unitSystems) || odr_ok(o)) && odr_sequence_end(o); } @@ -295,17 +302,17 @@ int z_QueryTypeDetails(ODR o, Z_QueryTypeDetails **p, int opt) static Odr_arm arm[] = { {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_QueryTypeDetails_private, - z_PrivateCapabilities}, + (Odr_fun)z_PrivateCapabilities}, {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_QueryTypeDetails_rpn, - z_RpnCapabilities}, + (Odr_fun)z_RpnCapabilities}, {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_QueryTypeDetails_iso8777, - z_Iso8777Capabilities}, - {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_QueryTypeDetails_z3958, - z_HumanString}, + (Odr_fun)z_Iso8777Capabilities}, + {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_QueryTypeDetails_z39_58, + (Odr_fun)z_HumanString}, {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_QueryTypeDetails_erpn, - z_RpnCapabilities}, + (Odr_fun)z_RpnCapabilities}, {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_QueryTypeDetails_rankedList, - z_HumanString}, + (Odr_fun)z_HumanString}, {-1, -1, -1, -1, 0} }; @@ -333,13 +340,13 @@ int z_PrivateCapabilities(ODR o, Z_PrivateCapabilities **p, int opt) return opt && odr_ok(o); return odr_implicit_settag(o, ODR_CONTEXT, 0) && - (odr_sequence_of(o, z_PrivateCapOperator, &(*p)->operators, + (odr_sequence_of(o, (Odr_fun)z_PrivateCapOperator, &(*p)->operators, &(*p)->num_operators) || odr_ok(o)) && odr_implicit_settag(o, ODR_CONTEXT, 1) && - (odr_sequence_of(o, z_SearchKey, &(*p)->searchKeys, + (odr_sequence_of(o, (Odr_fun)z_SearchKey, &(*p)->searchKeys, &(*p)->num_searchKeys) || odr_ok(o)) && odr_implicit_settag(o, ODR_CONTEXT, 2) && - (odr_sequence_of(o, z_HumanString, &(*p)->description, + (odr_sequence_of(o, (Odr_fun)z_HumanString, &(*p)->description, &(*p)->num_description) || odr_ok(o)) && odr_sequence_end(o); } @@ -350,7 +357,7 @@ int z_RpnCapabilities(ODR o, Z_RpnCapabilities **p, int opt) return opt && odr_ok(o); return odr_implicit_settag(o, ODR_CONTEXT, 0) && - (odr_sequence_of(o, odr_integer, &(*p)->operators, &(*p)->num_operators) || odr_ok(o)) && + (odr_sequence_of(o, (Odr_fun)odr_integer, &(*p)->operators, &(*p)->num_operators) || odr_ok(o)) && odr_implicit(o, odr_bool, &(*p)->resultSetAsOperandSupported, ODR_CONTEXT, 1, 0) && odr_implicit(o, odr_bool, &(*p)->restrictionOperandSupported, @@ -366,7 +373,7 @@ int z_Iso8777Capabilities(ODR o, Z_Iso8777Capabilities **p, int opt) return opt && odr_ok(o); return odr_implicit_settag(o, ODR_CONTEXT, 0) && - odr_sequence_of(o, z_SearchKey, &(*p)->searchKeys, + odr_sequence_of(o, (Odr_fun)z_SearchKey, &(*p)->searchKeys, &(*p)->num_searchKeys) && odr_implicit(o, z_HumanString, &(*p)->restrictions, ODR_CONTEXT, 1, 1) && @@ -388,9 +395,9 @@ int z_ProxSupportUnit(ODR o, Z_ProxSupportUnit **p, int opt) static Odr_arm arm[] = { {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ProxSupportUnit_known, - odr_integer}, + (Odr_fun)odr_integer}, {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ProxSupportUnit_private, - z_ProxSupportPrivate}, + (Odr_fun)z_ProxSupportPrivate}, {-1, -1, -1, -1, 0} }; @@ -409,7 +416,7 @@ int z_ProximitySupport(ODR o, Z_ProximitySupport **p, int opt) return odr_implicit(o, odr_bool, &(*p)->anySupport, ODR_CONTEXT, 0, 0) && odr_implicit_settag(o, ODR_CONTEXT, 1) && - (odr_sequence_of(o, z_ProxSupportUnit, &(*p)->unitsSupported, + (odr_sequence_of(o, (Odr_fun)z_ProxSupportUnit, &(*p)->unitsSupported, &(*p)->num_unitsSupported) || odr_ok(o)) && odr_sequence_end(o); } @@ -432,7 +439,7 @@ int z_AccessRestrictionsUnit(ODR o, Z_AccessRestrictionsUnit **p, int opt) odr_explicit(o, odr_integer, &(*p)->accessType, ODR_CONTEXT, 0, 0) && odr_implicit(o, z_HumanString, &(*p)->accessText, ODR_CONTEXT, 1, 1) && odr_implicit_settag(o, ODR_CONTEXT, 2) && - (odr_sequence_of(o, odr_oid, &(*p)->accessChallenges, + (odr_sequence_of(o, (Odr_fun)odr_oid, &(*p)->accessChallenges, &(*p)->num_accessChallenges) || odr_ok(o)) && odr_sequence_end(o); } @@ -441,8 +448,8 @@ int z_AccessRestrictions(ODR o, Z_AccessRestrictions **p, int opt) { if (!odr_initmember(o, p, sizeof(**p))) return opt && odr_ok(o); - if (odr_sequence_of(o, z_AccessRestrictionsUnit, &(*p)->restrictions, - &(*p)->num_restrictions)) + if (odr_sequence_of(o, (Odr_fun)z_AccessRestrictionsUnit, &(*p)->elements, + &(*p)->num)) return 1; *p = 0; return opt && odr_ok(o); @@ -469,7 +476,7 @@ int z_Costs(ODR o, Z_Costs **p, int opt) odr_implicit(o, z_Charge, &(*p)->searchCharge, ODR_CONTEXT, 3, 1) && odr_implicit(o, z_Charge, &(*p)->subscriptCharge, ODR_CONTEXT, 4, 1) && odr_implicit_settag(o, ODR_CONTEXT, 5) && - (odr_sequence_of(o, z_CostsOtherCharge, &(*p)->otherCharges, + (odr_sequence_of(o, (Odr_fun)z_CostsOtherCharge, &(*p)->otherCharges, &(*p)->num_otherCharges) || odr_ok(o)) && odr_sequence_end(o); } @@ -504,7 +511,7 @@ int z_AttributeCombinations(ODR o, Z_AttributeCombinations **p, int opt) odr_implicit(o, odr_oid, &(*p)->defaultAttributeSet, ODR_CONTEXT, 0, 0) && odr_implicit_settag(o, ODR_CONTEXT, 1) && - odr_sequence_of(o, z_AttributeCombination, &(*p)->legalCombinations, + odr_sequence_of(o, (Odr_fun)z_AttributeCombination, &(*p)->legalCombinations, &(*p)->num_legalCombinations) && odr_sequence_end(o); } @@ -513,7 +520,7 @@ int z_AttributeCombination(ODR o, Z_AttributeCombination **p, int opt) { if (!odr_initmember(o, p, sizeof(**p))) return opt && odr_ok(o); - if (odr_sequence_of(o, z_AttributeOccurrence, &(*p)->occurrences, + if (odr_sequence_of(o, (Odr_fun)z_AttributeOccurrence, &(*p)->occurrences, &(*p)->num_occurrences)) return 1; *p = 0; @@ -524,7 +531,7 @@ int z_AttributeValueList(ODR o, Z_AttributeValueList **p, int opt) { if (!odr_initmember(o, p, sizeof(**p))) return opt && odr_ok(o); - if (odr_sequence_of(o, z_StringOrNumeric, &(*p)->attributes, + if (odr_sequence_of(o, (Odr_fun)z_StringOrNumeric, &(*p)->attributes, &(*p)->num_attributes)) return 1; *p = 0; @@ -535,9 +542,9 @@ int z_AttributeOccurrence(ODR o, Z_AttributeOccurrence **p, int opt) { static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_AttributeOcc_anyOrNone, odr_null}, + {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_AttributeOcc_any_or_none, (Odr_fun)odr_null}, {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_AttributeOcc_specific, - z_AttributeValueList}, + (Odr_fun)z_AttributeValueList}, {-1, -1, -1, -1, 0} }; @@ -559,10 +566,10 @@ int z_AttributeValue(ODR o, Z_AttributeValue **p, int opt) odr_explicit(o, z_StringOrNumeric, &(*p)->value, ODR_CONTEXT, 0, 0) && odr_implicit(o, z_HumanString, &(*p)->description, ODR_CONTEXT, 1, 1) && odr_implicit_settag(o, ODR_CONTEXT, 2) && - (odr_sequence_of(o, z_StringOrNumeric, &(*p)->subAttributes, + (odr_sequence_of(o, (Odr_fun)z_StringOrNumeric, &(*p)->subAttributes, &(*p)->num_subAttributes) || odr_ok(o)) && odr_implicit_settag(o, ODR_CONTEXT, 3) && - (odr_sequence_of(o, z_StringOrNumeric, &(*p)->superAttributes, + (odr_sequence_of(o, (Odr_fun)z_StringOrNumeric, &(*p)->superAttributes, &(*p)->num_superAttributes) || odr_ok(o)) && odr_implicit(o, odr_null, &(*p)->partialSupport, ODR_CONTEXT, 4, 1) && odr_sequence_end(o); @@ -600,11 +607,13 @@ int z_TargetInfo(ODR o, Z_TargetInfo **p, int opt) 15, 1) && odr_implicit(o, z_HumanString, &(*p)->hours, ODR_CONTEXT, 16, 1) && odr_implicit_settag(o, ODR_CONTEXT, 17) && - (odr_sequence_of(o, z_DatabaseList, &(*p)->dbCombinations, + (odr_sequence_of(o, (Odr_fun)z_DatabaseList, &(*p)->dbCombinations, &(*p)->num_dbCombinations) || odr_ok(o)) && odr_implicit_settag(o, ODR_CONTEXT, 18) && - (odr_sequence_of(o, z_NetworkAddress, &(*p)->addresses, + (odr_sequence_of(o, (Odr_fun)z_NetworkAddress, &(*p)->addresses, &(*p)->num_addresses) || odr_ok(o)) && + (odr_sequence_of(o, (Odr_fun)z_InternationalString, &(*p)->languages, + &(*p)->num_languages) || odr_ok(o)) && odr_implicit(o, z_AccessInfo, &(*p)->commonAccessInfo, ODR_CONTEXT, 19, 1) && odr_sequence_end(o); @@ -614,10 +623,10 @@ int z_DatabaseInfo(ODR o, Z_DatabaseInfo **p, int opt) { static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_Exp_RecordCount_actualNumber, - odr_integer}, - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Exp_RecordCount_approxNumber, - odr_integer}, + {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_DatabaseInfo_actualNumber, + (Odr_fun)odr_integer}, + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_DatabaseInfo_approxNumber, + (Odr_fun)odr_integer}, {-1, -1, -1, -1, 0} }; @@ -635,7 +644,7 @@ int z_DatabaseInfo(ODR o, Z_DatabaseInfo **p, int opt) odr_implicit(o, odr_bool, &(*p)->available, ODR_CONTEXT, 6, 0) && odr_implicit(o, z_HumanString, &(*p)->titleString, ODR_CONTEXT, 7, 1) && odr_implicit_settag(o, ODR_CONTEXT, 8) && - (odr_sequence_of(o, z_HumanString, &(*p)->keywords, + (odr_sequence_of(o, (Odr_fun)z_HumanString, &(*p)->keywords, &(*p)->num_keywords) || odr_ok(o)) && odr_implicit(o, z_HumanString, &(*p)->description, ODR_CONTEXT, 9, 1) && odr_implicit(o, z_DatabaseList, &(*p)->associatedDbs, ODR_CONTEXT, @@ -644,8 +653,8 @@ int z_DatabaseInfo(ODR o, Z_DatabaseInfo **p, int opt) odr_implicit(o, z_HumanString, &(*p)->disclaimers, ODR_CONTEXT, 12, 1) && odr_implicit(o, z_HumanString, &(*p)->news, ODR_CONTEXT, 13, 1) && - ((odr_constructed_begin(o, &(*p)->recordCount, ODR_CONTEXT, 14) && - odr_choice(o, arm, &(*p)->recordCount, &(*p)->recordCount_which) && + ((odr_constructed_begin(o, &(*p)->u.actualNumber, ODR_CONTEXT, 14) && + odr_choice(o, arm, &(*p)->u.actualNumber, &(*p)->which) && odr_constructed_end(o)) || odr_ok(o)) && odr_implicit(o, z_HumanString, &(*p)->defaultOrder, ODR_CONTEXT, 15, 1) && @@ -695,10 +704,10 @@ int z_SchemaInfo(ODR o, Z_SchemaInfo **p, int opt) 2, 0) && odr_implicit(o, z_HumanString, &(*p)->description, ODR_CONTEXT, 3, 1) && odr_implicit_settag(o, ODR_CONTEXT, 4) && - (odr_sequence_of(o, z_TagTypeMapping, &(*p)->tagTypeMapping, + (odr_sequence_of(o, (Odr_fun)z_TagTypeMapping, &(*p)->tagTypeMapping, &(*p)->num_tagTypeMapping) || odr_ok(o)) && odr_implicit_settag(o, ODR_CONTEXT, 5) && - (odr_sequence_of(o, z_ElementInfo, &(*p)->recordStructure, + (odr_sequence_of(o, (Odr_fun)z_ElementInfo, &(*p)->recordStructure, &(*p)->num_recordStructure) || odr_ok(o)) && odr_sequence_end(o); } @@ -733,7 +742,7 @@ int z_Path(ODR o, Z_Path **p, int opt) if (!odr_initmember(o, p, sizeof(**p))) return opt && odr_ok(o); odr_implicit_settag(o, ODR_CONTEXT, 201); - if (odr_sequence_of(o, z_OtherInformationUnit, &(*p)->list, + if (odr_sequence_of(o, (Odr_fun)z_OtherInformationUnit, &(*p)->list, &(*p)->num)) return 1; *p = 0; @@ -745,7 +754,7 @@ int z_ElementInfoList(ODR o, Z_Path **p, int opt) if (!odr_initmember(o, p, sizeof(**p))) return opt && odr_ok(o); odr_implicit_settag(o, ODR_CONTEXT, 201); - if (odr_sequence_of(o, z_OtherInformationUnit, &(*p)->list, + if (odr_sequence_of(o, (Odr_fun)z_OtherInformationUnit, &(*p)->list, &(*p)->num)) return 1; *p = 0; @@ -757,9 +766,9 @@ int z_ElementDataType(ODR o, Z_ElementDataType **p, int opt) static Odr_arm arm[] = { {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_ElementDataType_primitive, - odr_integer}, + (Odr_fun)odr_integer}, {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ElementDataType_structured, - z_ElementInfoList}, + (Odr_fun)z_ElementInfoList}, {-1, -1, -1, -1, 0} }; @@ -776,7 +785,7 @@ int z_TagSetInfoElements(ODR o, Z_TagSetInfoElements **p, int opt) if (!odr_sequence_begin(o, p, sizeof(**p))) return opt; return - odr_implicit(o, z_InternationalString, &(*p)->elementName, + odr_implicit(o, z_InternationalString, &(*p)->elementname, ODR_CONTEXT, 1, 0) && odr_implicit_settag(o, ODR_CONTEXT, 2) && (odr_sequence_of(o, z_InternationalString, &(*p)->nicknames, @@ -802,7 +811,7 @@ int z_TagSetInfo(ODR o, Z_TagSetInfo **p, int opt) odr_implicit(o, z_HumanString, &(*p)->description, ODR_CONTEXT, 3, 1) && odr_implicit_settag(o, ODR_CONTEXT, 4) && - (odr_sequence_of(o, z_TagSetInfoElements, &(*p)->elements, + (odr_sequence_of(o, (Odr_fun)z_TagSetInfoElements, &(*p)->elements, &(*p)->num_elements) || odr_ok(o)) && odr_sequence_end(o); } @@ -817,13 +826,13 @@ int z_RecordSyntaxInfo(ODR o, Z_RecordSyntaxInfo **p, int opt) odr_implicit(o, z_InternationalString, &(*p)->name, ODR_CONTEXT, 2, 0) && odr_implicit_settag(o, ODR_CONTEXT, 3) && - (odr_sequence_of(o, odr_oid, &(*p)->transferSyntaxes, + (odr_sequence_of(o, (Odr_fun)odr_oid, &(*p)->transferSyntaxes, &(*p)->num_transferSyntaxes) || odr_ok(o)) && odr_implicit(o, z_HumanString, &(*p)->description, ODR_CONTEXT, 4, 1) && odr_implicit(o, z_InternationalString, &(*p)->asn1Module, ODR_CONTEXT, 5, 1) && odr_implicit_settag(o, ODR_CONTEXT, 6) && - (odr_sequence_of(o, z_ElementInfo, &(*p)->abstractStructure, + (odr_sequence_of(o, (Odr_fun)z_ElementInfo, &(*p)->abstractStructure, &(*p)->num_abstractStructure) || odr_ok(o)) && odr_sequence_end(o); } @@ -837,7 +846,7 @@ int z_AttributeSetInfo(ODR o, Z_AttributeSetInfo **p, int opt) odr_implicit(o, odr_oid, &(*p)->attributeSet, ODR_CONTEXT, 1, 0) && odr_implicit(o, z_InternationalString, &(*p)->name, ODR_CONTEXT, 2, 0) && odr_implicit_settag(o, ODR_CONTEXT, 3) && - (odr_sequence_of(o, z_AttributeType, &(*p)->attributes, + (odr_sequence_of(o, (Odr_fun)z_AttributeType, &(*p)->attributes, &(*p)->num_attributes) || odr_ok(o)) && odr_implicit(o, z_HumanString, &(*p)->description, ODR_CONTEXT, 4, 1) && odr_sequence_end(o); @@ -852,7 +861,7 @@ int z_AttributeType(ODR o, Z_AttributeType **p, int opt) odr_implicit(o, z_HumanString, &(*p)->description, ODR_CONTEXT, 1, 1) && odr_implicit(o, odr_integer, &(*p)->attributeType, ODR_CONTEXT, 2, 0) && odr_implicit_settag(o, ODR_CONTEXT, 3) && - odr_sequence_of(o, z_AttributeDescription, &(*p)->attributeValues, + odr_sequence_of(o, (Odr_fun)z_AttributeDescription, &(*p)->attributeValues, &(*p)->num_attributeValues) && odr_sequence_end(o); } @@ -866,7 +875,7 @@ int z_AttributeDescription(ODR o, Z_AttributeDescription **p, int opt) odr_implicit(o, z_HumanString, &(*p)->description, ODR_CONTEXT, 1, 1) && odr_explicit(o, z_StringOrNumeric, &(*p)->attributeValue, ODR_CONTEXT, 2, 0) && odr_implicit_settag(o, ODR_CONTEXT, 3) && - (odr_sequence_of(o, z_StringOrNumeric, &(*p)->equivalentAttributes, + (odr_sequence_of(o, (Odr_fun)z_StringOrNumeric, &(*p)->equivalentAttributes, &(*p)->num_equivalentAttributes) || odr_ok(o)) && odr_sequence_end(o); } @@ -898,7 +907,7 @@ int z_TermListInfo(ODR o, Z_TermListInfo **p, int opt) odr_implicit(o, z_DatabaseName, &(*p)->databaseName, ODR_CONTEXT, 1, 0) && odr_implicit_settag(o, ODR_CONTEXT, 2) && - (odr_sequence_of(o, z_TermListElement, &(*p)->termLists, + (odr_sequence_of(o, (Odr_fun)z_TermListElement, &(*p)->termLists, &(*p)->num_termLists) || odr_ok(o)) && odr_sequence_end(o); } @@ -931,7 +940,7 @@ int z_AttributeDetails(ODR o, Z_AttributeDetails **p, int opt) odr_implicit(o, z_CommonInfo, &(*p)->commonInfo, ODR_CONTEXT, 0, 1) && odr_implicit(o, z_DatabaseName, &(*p)->databaseName, ODR_CONTEXT, 1, 0) && odr_implicit_settag(o, ODR_CONTEXT, 2) && - (odr_sequence_of(o, z_AttributeSetDetails, &(*p)->attributesBySet, + (odr_sequence_of(o, (Odr_fun)z_AttributeSetDetails, &(*p)->attributesBySet, &(*p)->num_attributesBySet) && odr_ok(o)) && odr_implicit(o, z_AttributeCombinations, &(*p)->attributeCombinations, ODR_CONTEXT, 3, 1) && odr_sequence_end(o); @@ -945,7 +954,7 @@ int z_AttributeSetDetails(ODR o, Z_AttributeSetDetails **p, int opt) odr_implicit(o, odr_oid, &(*p)->attributeSet, ODR_CONTEXT, 0, 0) && odr_implicit_settag(o, ODR_CONTEXT, 1) && - odr_sequence_of(o, z_AttributeTypeDetails, &(*p)->attributesByType, + odr_sequence_of(o, (Odr_fun)z_AttributeTypeDetails, &(*p)->attributesByType, &(*p)->num_attributesByType) && odr_sequence_end(o); } @@ -956,9 +965,10 @@ int z_AttributeTypeDetails(ODR o, Z_AttributeTypeDetails **p, int opt) return opt && odr_ok(o); return odr_implicit(o, odr_integer, &(*p)->attributeType, ODR_CONTEXT, 0, 0) && - odr_implicit(o, z_OmittedAttributeInterpretation, &(*p)->optionalType, ODR_CONTEXT, 1, 1) && + odr_implicit(o, z_OmittedAttributeInterpretation, &(*p)->defaultIfOmitted, + ODR_CONTEXT, 1, 1) && odr_implicit_settag(o, ODR_CONTEXT, 2) && - (odr_sequence_of(o, z_AttributeValue, &(*p)->attributeValues, + (odr_sequence_of(o, (Odr_fun)z_AttributeValue, &(*p)->attributeValues, &(*p)->num_attributeValues) || odr_ok(o)) && odr_sequence_end(o); } @@ -996,7 +1006,7 @@ int z_TermListDetails(ODR o, Z_TermListDetails **p, int opt) odr_implicit(o, z_EScanInfo, &(*p)->scanInfo, ODR_CONTEXT, 4, 1) && odr_implicit(o, odr_integer, &(*p)->estNumberTerms, ODR_CONTEXT, 5, 1) && odr_implicit_settag(o, ODR_CONTEXT, 6) && - (odr_sequence_of(o, z_Term, &(*p)->sampleTerms, + (odr_sequence_of(o, (Odr_fun)z_Term, &(*p)->sampleTerms, &(*p)->num_sampleTerms) || odr_ok(o)) && odr_sequence_end(o); } @@ -1013,7 +1023,7 @@ int z_ElementSetDetails(ODR o, Z_ElementSetDetails **p, int opt) odr_implicit(o, odr_oid, &(*p)->schema, ODR_CONTEXT, 4, 0) && odr_implicit(o, z_HumanString, &(*p)->description, ODR_CONTEXT, 5, 1) && odr_implicit_settag(o, ODR_CONTEXT, 6) && - (odr_sequence_of(o, z_PerElementDetails, &(*p)->detailsPerElement, &(*p)->num_detailsPerElement) || odr_ok(o)) && + (odr_sequence_of(o, (Odr_fun)z_PerElementDetails, &(*p)->detailsPerElement, &(*p)->num_detailsPerElement) || odr_ok(o)) && odr_sequence_end(o); } @@ -1028,7 +1038,7 @@ int z_RetrievalRecordDetails(ODR o, Z_RetrievalRecordDetails **p, int opt) odr_implicit(o, odr_oid, &(*p)->recordSyntax, ODR_CONTEXT, 3, 0) && odr_implicit(o, z_HumanString, &(*p)->description, ODR_CONTEXT, 4, 1) && odr_implicit_settag(o, ODR_CONTEXT, 5) && - (odr_sequence_of(o, z_PerElementDetails, &(*p)->detailsPerElement, + (odr_sequence_of(o, (Odr_fun)z_PerElementDetails, &(*p)->detailsPerElement, &(*p)->num_detailsPerElement) || odr_ok(o)) && odr_sequence_end(o); } @@ -1041,7 +1051,7 @@ int z_PerElementDetails(ODR o, Z_PerElementDetails **p, int opt) odr_implicit(o, z_InternationalString, &(*p)->name, ODR_CONTEXT, 0, 1) && odr_implicit(o, z_RecordTag, &(*p)->recordTag, ODR_CONTEXT, 1, 1) && odr_implicit_settag(o, ODR_CONTEXT, 2) && - (odr_sequence_of(o, z_Path, &(*p)->schemaTags, &(*p)->num_schemaTags) || + (odr_sequence_of(o, (Odr_fun)z_Path, &(*p)->schemaTags, &(*p)->num_schemaTags) || odr_ok(o)) && odr_implicit(o, odr_integer, &(*p)->maxSize, ODR_CONTEXT, 3, 1) && odr_implicit(o, odr_integer, &(*p)->minSize, ODR_CONTEXT, 4, 1) && @@ -1085,48 +1095,38 @@ int z_SortDetails(ODR o, Z_SortDetails **p, int opt) odr_implicit(o, z_DatabaseName, &(*p)->databaseName, ODR_CONTEXT, 1, 0) && odr_implicit_settag(o, ODR_CONTEXT, 2) && - (odr_sequence_of(o, z_SortKeyDetails, &(*p)->sortKeys, + (odr_sequence_of(o, (Odr_fun)z_SortKeyDetails, &(*p)->sortKeys, &(*p)->num_sortKeys) || odr_ok(o)) && odr_sequence_end(o); } -int z_SortKeyDetailsSortType(ODR o, Z_SortKeyDetailsSortType **p, int opt) -{ - static Odr_arm arm[] = - { - {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_SortKeyDetailsSortType_character, - odr_null}, - {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_SortKeyDetailsSortType_numeric, - odr_null}, - {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_SortKeyDetailsSortType_structured, - z_HumanString}, - {-1, -1, -1, -1, 0} - }; - - if (!odr_initmember(o, p, sizeof(**p))) - return opt && odr_ok(o); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which)) - return 1; - *p = 0; - return opt && odr_ok(o); -} - -int z_SortKeyDetails(ODR o, Z_SortKeyDetails **p, int opt) -{ - if (!odr_sequence_begin(o, p, sizeof(**p))) - return opt && odr_ok(o); - return - odr_implicit(o, z_HumanString, &(*p)->description, ODR_CONTEXT, 0, 1) && - odr_implicit_settag(o, ODR_CONTEXT, 1) && - (odr_sequence_of(o, z_Specification, &(*p)->elementSpecifications, - &(*p)->num_elementSpecifications) || odr_ok(o)) && - odr_implicit(o, z_AttributeCombinations, &(*p)->attributeSpecifications, - ODR_CONTEXT, 2, 1) && - odr_explicit(o, z_SortKeyDetailsSortType, &(*p)->sortType, ODR_CONTEXT, - 3, 1) && - odr_implicit(o, odr_integer, &(*p)->caseSensitivity, ODR_CONTEXT, - 4, 1) && - odr_sequence_end(o); +int z_SortKeyDetails (ODR o, Z_SortKeyDetails **p, int opt) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_SortKeyDetails_character, + (Odr_fun) odr_null}, + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_SortKeyDetails_numeric, + (Odr_fun) odr_null}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_SortKeyDetails_structured, + (Odr_fun) z_HumanString}, + {-1, -1, -1, -1, (Odr_fun) 0} + }; + if (!odr_sequence_begin (o, p, sizeof(**p))) + return opt && odr_ok (o); + return + odr_implicit (o, z_HumanString, + &(*p)->description, ODR_CONTEXT, 0, 1) && + odr_implicit_settag (o, ODR_CONTEXT, 1) && + (odr_sequence_of(o, (Odr_fun) z_Specification, &(*p)->elementSpecifications, + &(*p)->num_elementSpecifications) || odr_ok(o)) && + odr_implicit (o, z_AttributeCombinations, + &(*p)->attributeSpecifications, ODR_CONTEXT, 2, 1) && + ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 3) && + odr_choice (o, arm, &(*p)->u, &(*p)->which) && + odr_constructed_end (o)) || odr_ok(o)) && + odr_implicit (o, odr_integer, + &(*p)->caseSensitivity, ODR_CONTEXT, 4, 1) && + odr_sequence_end (o); } int z_ProcessingInformation(ODR o, Z_ProcessingInformation **p, int opt) @@ -1157,7 +1157,7 @@ int z_VariantSetInfo(ODR o, Z_VariantSetInfo **p, int opt) odr_implicit(o, z_InternationalString, &(*p)->name, ODR_CONTEXT, 2, 0) && odr_implicit_settag(o, ODR_CONTEXT, 3) && - (odr_sequence_of(o, z_VariantClass, &(*p)->variants, + (odr_sequence_of(o, (Odr_fun)z_VariantClass, &(*p)->variants, &(*p)->num_variants) || odr_ok(o)) && odr_sequence_end(o); } @@ -1172,7 +1172,7 @@ int z_VariantClass(ODR o, Z_VariantClass **p, int opt) odr_implicit(o, z_HumanString, &(*p)->description, ODR_CONTEXT, 1, 1) && odr_implicit(o, odr_integer, &(*p)->variantClass, ODR_CONTEXT, 2, 0) && odr_implicit_settag(o, ODR_CONTEXT, 3) && - odr_sequence_of(o, z_VariantType, &(*p)->variantTypes, + odr_sequence_of(o, (Odr_fun)z_VariantType, &(*p)->variantTypes, &(*p)->num_variantTypes) && odr_sequence_end(o); } @@ -1203,8 +1203,8 @@ int z_ValueSetEnumerated(ODR o, Z_ValueSetEnumerated **p, int opt) { if (!odr_initmember(o, p, sizeof(**p))) return opt && odr_ok(o); - if (odr_sequence_of(o, z_ValueDescription, &(*p)->enumerated, - &(*p)->num_enumerated)) + if (odr_sequence_of(o, (Odr_fun)z_ValueDescription, &(*p)->elements, + &(*p)->num)) return 1; *p = 0; return opt && odr_ok(o); @@ -1214,9 +1214,9 @@ int z_ValueSet(ODR o, Z_ValueSet **p, int opt) { static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_ValueSet_range, z_ValueRange}, + {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_ValueSet_range, (Odr_fun)z_ValueRange}, {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ValueSet_enumerated, - z_ValueSetEnumerated}, + (Odr_fun)z_ValueSetEnumerated}, {-1, -1, -1, -1, 0} }; @@ -1242,12 +1242,12 @@ int z_ValueDescription(ODR o, Z_ValueDescription **p, int opt) { static Odr_arm arm[] = { - {ODR_NONE, -1, -1, Z_ValueDescription_integer, odr_integer}, - {ODR_NONE, -1, -1, Z_ValueDescription_string, z_InternationalString}, - {ODR_NONE, -1, -1, Z_ValueDescription_octets, odr_octetstring}, - {ODR_NONE, -1, -1, Z_ValueDescription_oid, odr_oid}, - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ValueDescription_unit, z_Unit}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ValueDescription_valueAndUnit, z_IntUnit}, + {ODR_NONE, -1, -1, Z_ValueDescription_integer, (Odr_fun)odr_integer}, + {ODR_NONE, -1, -1, Z_ValueDescription_string, (Odr_fun)z_InternationalString}, + {ODR_NONE, -1, -1, Z_ValueDescription_octets, (Odr_fun)odr_octetstring}, + {ODR_NONE, -1, -1, Z_ValueDescription_oid, (Odr_fun)odr_oid}, + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ValueDescription_unit, (Odr_fun)z_Unit}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ValueDescription_valueAndUnit, (Odr_fun)z_IntUnit}, {-1, -1, -1, -1, 0} }; @@ -1269,7 +1269,7 @@ int z_UnitInfo(ODR o, Z_UnitInfo **p, int opt) 1, 0) && odr_implicit(o, z_HumanString, &(*p)->description, ODR_CONTEXT, 2, 1) && odr_implicit_settag(o, ODR_CONTEXT, 3) && - (odr_sequence_of(o, z_UnitType, &(*p)->units, &(*p)->num_units) || + (odr_sequence_of(o, (Odr_fun)z_UnitType, &(*p)->units, &(*p)->num_units) || odr_ok(o)) && odr_sequence_end(o); } @@ -1285,7 +1285,7 @@ int z_UnitType(ODR o, Z_UnitType **p, int opt) odr_explicit(o, z_StringOrNumeric, &(*p)->unitType, ODR_CONTEXT, 2, 0) && odr_implicit_settag(o, ODR_CONTEXT, 3) && - odr_sequence_of(o, z_Units, &(*p)->units, &(*p)->num_units) && + odr_sequence_of(o, (Odr_fun)z_Units, &(*p)->units, &(*p)->num_units) && odr_sequence_end(o); } @@ -1307,7 +1307,7 @@ int z_CategoryList(ODR o, Z_CategoryList **p, int opt) return odr_implicit(o, z_CommonInfo, &(*p)->commonInfo, ODR_CONTEXT, 0, 1) && odr_implicit_settag(o, ODR_CONTEXT, 1) && - odr_sequence_of(o, z_CategoryInfo, &(*p)->categories, + odr_sequence_of(o, (Odr_fun)z_CategoryInfo, &(*p)->categories, &(*p)->num_categories) && odr_sequence_end(o); } @@ -1331,35 +1331,35 @@ int z_ExplainRecord(ODR o, Z_ExplainRecord **p, int opt) { static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_Explain_targetInfo, z_TargetInfo}, - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Explain_databaseInfo, z_DatabaseInfo}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Explain_schemaInfo, z_SchemaInfo}, - {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Explain_tagSetInfo, z_TagSetInfo}, + {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_Explain_targetInfo, (Odr_fun)z_TargetInfo}, + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Explain_databaseInfo, (Odr_fun)z_DatabaseInfo}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Explain_schemaInfo, (Odr_fun)z_SchemaInfo}, + {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Explain_tagSetInfo, (Odr_fun)z_TagSetInfo}, {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_Explain_recordSyntaxInfo, - z_RecordSyntaxInfo}, + (Odr_fun)z_RecordSyntaxInfo}, {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_Explain_attributeSetInfo, - z_AttributeSetInfo}, + (Odr_fun)z_AttributeSetInfo}, {ODR_IMPLICIT, ODR_CONTEXT, 6, Z_Explain_termListInfo, - z_TermListInfo}, + (Odr_fun)z_TermListInfo}, {ODR_IMPLICIT, ODR_CONTEXT, 7, Z_Explain_extendedServicesInfo, - z_ExtendedServicesInfo}, + (Odr_fun)z_ExtendedServicesInfo}, {ODR_IMPLICIT, ODR_CONTEXT, 8, Z_Explain_attributeDetails, - z_AttributeDetails}, + (Odr_fun)z_AttributeDetails}, {ODR_IMPLICIT, ODR_CONTEXT, 9, Z_Explain_termListDetails, - z_TermListDetails}, + (Odr_fun)z_TermListDetails}, {ODR_IMPLICIT, ODR_CONTEXT, 10, Z_Explain_elementSetDetails, - z_ElementSetDetails}, + (Odr_fun)z_ElementSetDetails}, {ODR_IMPLICIT, ODR_CONTEXT, 11, Z_Explain_retrievalRecordDetails, - z_RetrievalRecordDetails}, + (Odr_fun)z_RetrievalRecordDetails}, {ODR_IMPLICIT, ODR_CONTEXT, 12, Z_Explain_sortDetails, - z_SortDetails}, + (Odr_fun)z_SortDetails}, {ODR_IMPLICIT, ODR_CONTEXT, 13, Z_Explain_processing, - z_ProcessingInformation}, + (Odr_fun)z_ProcessingInformation}, {ODR_IMPLICIT, ODR_CONTEXT, 14, Z_Explain_variants, - z_VariantSetInfo}, - {ODR_IMPLICIT, ODR_CONTEXT, 15, Z_Explain_units, z_UnitInfo}, + (Odr_fun)z_VariantSetInfo}, + {ODR_IMPLICIT, ODR_CONTEXT, 15, Z_Explain_units, (Odr_fun)z_UnitInfo}, {ODR_IMPLICIT, ODR_CONTEXT, 100, Z_Explain_categoryList, - z_CategoryList}, + (Odr_fun)z_CategoryList}, {-1, -1, -1, -1, 0} };