/*
- * 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.9 1998-02-11 11:53:32 adam
+ * 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
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);
{
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}
};
{
if (!odr_initmember(o, p, sizeof(**p)))
return opt && odr_ok(o);
- if (odr_sequence_of(o, (Odr_fun)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);
(Odr_fun)z_RpnCapabilities},
{ODR_IMPLICIT, ODR_CONTEXT, 2, Z_QueryTypeDetails_iso8777,
(Odr_fun)z_Iso8777Capabilities},
- {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_QueryTypeDetails_z3958,
+ {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_QueryTypeDetails_z39_58,
(Odr_fun)z_HumanString},
{ODR_IMPLICIT, ODR_CONTEXT, 4, Z_QueryTypeDetails_erpn,
(Odr_fun)z_RpnCapabilities},
{
if (!odr_initmember(o, p, sizeof(**p)))
return opt && odr_ok(o);
- if (odr_sequence_of(o, (Odr_fun)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);
{
static Odr_arm arm[] =
{
- {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_AttributeOcc_anyOrNone, (Odr_fun)odr_null},
+ {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_AttributeOcc_any_or_none, (Odr_fun)odr_null},
{ODR_IMPLICIT, ODR_CONTEXT, 4, Z_AttributeOcc_specific,
(Odr_fun)z_AttributeValueList},
{-1, -1, -1, -1, 0}
odr_implicit_settag(o, ODR_CONTEXT, 18) &&
(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);
{
static Odr_arm arm[] =
{
- {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_Exp_RecordCount_actualNumber,
+ {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_DatabaseInfo_actualNumber,
(Odr_fun)odr_integer},
- {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Exp_RecordCount_approxNumber,
+ {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_DatabaseInfo_approxNumber,
(Odr_fun)odr_integer},
{-1, -1, -1, -1, 0}
};
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) &&
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,
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, (Odr_fun)z_AttributeValue, &(*p)->attributeValues,
&(*p)->num_attributeValues) || 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_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_SortKeyDetailsSortType_numeric,
- (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_SortKeyDetailsSortType_structured,
- (Odr_fun)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, (Odr_fun)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)
{
if (!odr_initmember(o, p, sizeof(**p)))
return opt && odr_ok(o);
- if (odr_sequence_of(o, (Odr_fun)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);