Modified all encoders/decoders to reflect this change.
Possible compatibility problems with earlier versions marked with '*'.
+* Added 'name' parameter to ODR encoder/decoder routines to facilitate
+pretty ODR print. Updated whole Z39.50 encoder/decoder to reflect the
+change. The name parameter can be set to 0 in which no name is specified
+for the construction. The macros odr_implicit and odr_explicit sets name
+parameter to zero for the construction involved. New macros
+odr_implicit_tag and odr_explicit_tag are similar to the others,
+except that a name parameter is added. For programmers' that don't use
+ODR they probably only need to change the call to z_APDU and z_External.
+
Added access control facility by interfacing the TCP wrapper library.
YAZ automatically attempts to find the TCP wrapper Library (-lwrap) and
tcpd.h on Unix systems. For the server, option -d<daemon> specifies the
/*
- * Copyright (c) 1995-1998, Index Data
+ * Copyright (c) 1995-1999, Index Data
* See the file LICENSE for details.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: proto.c,v $
- * Revision 1.57 1998-10-20 13:55:37 quinn
+ * Revision 1.58 1999-04-20 09:56:47 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.57 1998/10/20 13:55:37 quinn
* Fixed Scan bug in asn and client
*
* Revision 1.56 1998/08/19 16:10:04 adam
* We'll use a general octetstring here, since string operations are
* clumsy on long strings.
*/
-int z_SUTRS(ODR o, Odr_oct **p, int opt)
+int z_SUTRS(ODR o, Odr_oct **p, int opt, const char *name)
{
return odr_implicit(o, odr_octetstring, p, ODR_UNIVERSAL,
ODR_GENERALSTRING, opt);
}
-int z_ReferenceId(ODR o, Z_ReferenceId **p, int opt)
+int z_ReferenceId(ODR o, Z_ReferenceId **p, int opt, const char *name)
{
- return odr_implicit(o, odr_octetstring, (Odr_oct**) p, ODR_CONTEXT, 2, opt);
+ return odr_implicit(o, odr_octetstring, (Odr_oct**) p, ODR_CONTEXT, 2,
+ opt);
}
-int z_DatabaseName(ODR o, Z_DatabaseName **p, int opt)
+int z_DatabaseName(ODR o, Z_DatabaseName **p, int opt, const char *name)
{
return odr_implicit(o, odr_visiblestring, (char **) p, ODR_CONTEXT, 105,
opt);
}
-int z_ResultSetId(ODR o, char **p, int opt)
+int z_ResultSetId(ODR o, char **p, int opt, const char *name)
{
return odr_implicit(o, odr_visiblestring, (char **) p, ODR_CONTEXT, 31,
opt);
}
-int z_ElementSetName(ODR o, char **p, int opt)
+int z_ElementSetName(ODR o, char **p, int opt, const char *name)
{
return odr_implicit(o, odr_visiblestring, p, ODR_CONTEXT, 103, opt);
}
-int z_UserInformationField(ODR o, Z_External **p, int opt)
+int z_UserInformationField(ODR o, Z_External **p, int opt, const char *name)
{
return odr_explicit(o, z_External, (Z_External **)p, ODR_CONTEXT,
11, opt);
}
-int z_InternationalString(ODR o, char **p, int opt)
+int z_InternationalString(ODR o, char **p, int opt, const char *name)
{
- return odr_generalstring(o, p, opt);
+ return odr_generalstring(o, p, opt, 0);
}
-int z_InfoCategory(ODR o, Z_InfoCategory **p, int opt)
+int z_InfoCategory(ODR o, Z_InfoCategory **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, odr_oid, &(*p)->categoryTypeId, ODR_CONTEXT, 1, 1) &&
- odr_implicit(o, odr_integer, &(*p)->categoryValue, ODR_CONTEXT, 2, 0) &&
+ odr_implicit(o, odr_integer, &(*p)->categoryValue, ODR_CONTEXT, 2,
+ 0) &&
odr_sequence_end(o);
}
-int z_OtherInformationUnit(ODR o, Z_OtherInformationUnit **p, int opt)
+int z_OtherInformationUnit(ODR o, Z_OtherInformationUnit **p, int opt,
+ const char *name)
{
static Odr_arm arm[] =
{
{ODR_IMPLICIT, ODR_CONTEXT, 2, Z_OtherInfo_characterInfo,
- odr_visiblestring},
+ odr_visiblestring, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 3, Z_OtherInfo_binaryInfo,
- (Odr_fun)odr_octetstring},
+ (Odr_fun)odr_octetstring, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 4, Z_OtherInfo_externallyDefinedInfo,
- (Odr_fun)z_External},
- {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_OtherInfo_oid, (Odr_fun)odr_oid},
- {-1, -1, -1, -1, 0}
+ (Odr_fun)z_External, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_OtherInfo_oid,
+ (Odr_fun)odr_oid, 0},
+ {-1, -1, -1, -1, 0, 0}
};
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, z_InfoCategory, &(*p)->category, ODR_CONTEXT, 1, 1) &&
- odr_choice(o, arm, &(*p)->information, &(*p)->which) &&
+ odr_choice(o, arm, &(*p)->information, &(*p)->which, 0) &&
odr_sequence_end(o);
}
-int z_OtherInformation(ODR o, Z_OtherInformation **p, int opt)
+int z_OtherInformation(ODR o, Z_OtherInformation **p, int opt,
+ const char *name)
{
if (o->direction == ODR_DECODE)
*p = (Z_OtherInformation *)odr_malloc(o, sizeof(**p));
return opt;
odr_implicit_settag(o, ODR_CONTEXT, 201);
if (odr_sequence_of(o, (Odr_fun)z_OtherInformationUnit, &(*p)->list,
- &(*p)->num_elements))
+ &(*p)->num_elements, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_StringOrNumeric(ODR o, Z_StringOrNumeric **p, int opt)
+int z_StringOrNumeric(ODR o, Z_StringOrNumeric **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
{ODR_IMPLICIT, ODR_CONTEXT, 1, Z_StringOrNumeric_string,
- odr_visiblestring},
+ odr_visiblestring, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 2, Z_StringOrNumeric_numeric,
- (Odr_fun)odr_integer},
- {-1, -1, -1, -1, 0}
+ (Odr_fun)odr_integer, 0},
+ {-1, -1, -1, -1, 0, 0}
};
if (o->direction == ODR_DECODE)
*p = (Z_StringOrNumeric *)odr_malloc(o, sizeof(**p));
else if (!*p)
return opt;
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
/*
* check tagging!!
*/
-int z_Unit(ODR o, Z_Unit **p, int opt)
+int z_Unit(ODR o, Z_Unit **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_explicit(o, z_InternationalString, &(*p)->unitSystem, ODR_CONTEXT,
odr_sequence_end(o);
}
-int z_IntUnit(ODR o, Z_IntUnit **p, int opt)
+int z_IntUnit(ODR o, Z_IntUnit **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, odr_integer, &(*p)->value, ODR_CONTEXT, 1, 0) &&
odr_sequence_end(o);
}
-int z_StringList(ODR o, Z_StringList **p, int opt)
+int z_StringList(ODR o, Z_StringList **p, int opt, const char *name)
{
if (o->direction == ODR_DECODE)
*p = (Z_StringList *)odr_malloc(o, sizeof(**p));
else if (!*p)
return opt;
if (odr_sequence_of(o, (Odr_fun)z_InternationalString, &(*p)->strings,
- &(*p)->num_strings))
+ &(*p)->num_strings, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
/* ---------------------- INITIALIZE SERVICE ------------------- */
-#if 0
-int z_NSRAuthentication(ODR o, Z_NSRAuthentication **p, int opt)
+#if 1
+int z_NSRAuthentication(ODR o, Z_NSRAuthentication **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- odr_visiblestring(o, &(*p)->user, 0) &&
- odr_visiblestring(o, &(*p)->password, 0) &&
- odr_visiblestring(o, &(*p)->account, 0) &&
+ odr_visiblestring(o, &(*p)->user, 0, 0) &&
+ odr_visiblestring(o, &(*p)->password, 0, 0) &&
+ odr_visiblestring(o, &(*p)->account, 0, 0) &&
odr_sequence_end(o);
}
#endif
-int z_IdPass(ODR o, Z_IdPass **p, int opt)
+int z_IdPass(ODR o, Z_IdPass **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- odr_implicit(o, odr_visiblestring, &(*p)->groupId, ODR_CONTEXT, 0, 1) &&
+ odr_implicit(o, odr_visiblestring, &(*p)->groupId, ODR_CONTEXT, 0,
+ 1) &&
odr_implicit(o, odr_visiblestring, &(*p)->userId, ODR_CONTEXT, 1, 1) &&
odr_implicit(o, odr_visiblestring, &(*p)->password, ODR_CONTEXT, 2,
1) &&
odr_sequence_end(o);
}
-int z_StrAuthentication(ODR o, char **p, int opt)
+int z_StrAuthentication(ODR o, char **p, int opt, const char *name)
{
- return odr_visiblestring(o, p, opt);
+ return odr_visiblestring(o, p, opt, 0);
}
-int z_IdAuthentication(ODR o, Z_IdAuthentication **p, int opt)
+int z_IdAuthentication(ODR o, Z_IdAuthentication **p, int opt,
+ const char *name)
{
static Odr_arm arm[] =
{
- {-1, -1, -1, Z_IdAuthentication_open, z_StrAuthentication},
- {-1, -1, -1, Z_IdAuthentication_idPass, (Odr_fun)z_IdPass},
- {-1, -1, -1, Z_IdAuthentication_anonymous, (Odr_fun)odr_null},
- {-1, -1, -1, Z_IdAuthentication_other, (Odr_fun)z_External},
- {-1, -1, -1, -1, 0}
+ {-1, -1, -1, Z_IdAuthentication_open, z_StrAuthentication, 0},
+ {-1, -1, -1, Z_IdAuthentication_idPass, (Odr_fun)z_IdPass, 0},
+ {-1, -1, -1, Z_IdAuthentication_anonymous, (Odr_fun)odr_null, 0},
+ {-1, -1, -1, Z_IdAuthentication_other, (Odr_fun)z_External, 0},
+ {-1, -1, -1, -1, 0, 0}
};
if (o->direction == ODR_DECODE)
else if (!*p)
return opt;
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_InitRequest(ODR o, Z_InitRequest **p, int opt)
+int z_InitRequest(ODR o, Z_InitRequest **p, int opt, const char *name)
{
Z_InitRequest *pp;
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
pp = *p;
return
- z_ReferenceId(o, &pp->referenceId, 1) &&
- odr_implicit(o, odr_bitstring, &pp->protocolVersion, ODR_CONTEXT,
- 3, 0) &&
+ z_ReferenceId(o, &pp->referenceId, 1, 0) &&
+ odr_implicit(o, odr_bitstring, &pp->protocolVersion,
+ ODR_CONTEXT, 3, 0) &&
odr_implicit(o, odr_bitstring, &pp->options, ODR_CONTEXT, 4, 0) &&
odr_implicit(o, odr_integer, &pp->preferredMessageSize, ODR_CONTEXT,
- 5, 0) &&
- odr_implicit(o, odr_integer, &pp->maximumRecordSize, ODR_CONTEXT,
- 6, 0) &&
- odr_explicit(o, z_IdAuthentication, &pp->idAuthentication, ODR_CONTEXT,
- 7, 1) &&
- odr_implicit(o, odr_visiblestring, &pp->implementationId, ODR_CONTEXT,
- 110, 1) &&
- odr_implicit(o, odr_visiblestring, &pp->implementationName, ODR_CONTEXT,
- 111, 1) &&
+ 5, 0) &&
+ odr_implicit(o, odr_integer, &pp->maximumRecordSize,
+ ODR_CONTEXT, 6, 0) &&
+ odr_explicit(o, z_IdAuthentication, &pp->idAuthentication,
+ ODR_CONTEXT, 7, 1) &&
+ odr_implicit(o, odr_visiblestring, &pp->implementationId,
+ ODR_CONTEXT, 110, 1) &&
+ odr_implicit(o, odr_visiblestring, &pp->implementationName,
+ ODR_CONTEXT, 111, 1) &&
odr_implicit(o, odr_visiblestring, &pp->implementationVersion,
ODR_CONTEXT, 112, 1) &&
- z_UserInformationField(o, &pp->userInformationField, 1) &&
-#ifdef Z_95
- z_OtherInformation(o, &(*p)->otherInfo, 1) &&
-#endif
+ z_UserInformationField(o, &pp->userInformationField, 1, 0) &&
+ z_OtherInformation(o, &(*p)->otherInfo, 1, 0) &&
odr_sequence_end(o);
}
-int z_InitResponse(ODR o, Z_InitResponse **p, int opt)
+int z_InitResponse(ODR o, Z_InitResponse **p, int opt, const char *name)
{
Z_InitResponse *pp;
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
pp = *p;
return
- z_ReferenceId(o, &pp->referenceId, 1) &&
- odr_implicit(o, odr_bitstring, &pp->protocolVersion, ODR_CONTEXT,
- 3, 0) &&
+ z_ReferenceId(o, &pp->referenceId, 1, 0) &&
+ odr_implicit(o, odr_bitstring, &pp->protocolVersion,
+ ODR_CONTEXT, 3, 0) &&
odr_implicit(o, odr_bitstring, &pp->options, ODR_CONTEXT, 4, 0) &&
- odr_implicit(o, odr_integer, &pp->preferredMessageSize, ODR_CONTEXT,
- 5, 0) &&
- odr_implicit(o, odr_integer, &pp->maximumRecordSize, ODR_CONTEXT,
- 6, 0) &&
+ odr_implicit(o, odr_integer, &pp->preferredMessageSize,
+ ODR_CONTEXT, 5, 0) &&
+ odr_implicit(o, odr_integer, &pp->maximumRecordSize,
+ ODR_CONTEXT, 6, 0) &&
odr_implicit(o, odr_bool, &pp->result, ODR_CONTEXT, 12, 0) &&
- odr_implicit(o, odr_visiblestring, &pp->implementationId, ODR_CONTEXT,
- 110, 1) &&
- odr_implicit(o, odr_visiblestring, &pp->implementationName, ODR_CONTEXT,
- 111, 1) &&
+ odr_implicit(o, odr_visiblestring, &pp->implementationId,
+ ODR_CONTEXT, 110, 1) &&
+ odr_implicit(o, odr_visiblestring, &pp->implementationName,
+ ODR_CONTEXT, 111, 1) &&
odr_implicit(o, odr_visiblestring, &pp->implementationVersion,
- ODR_CONTEXT, 112, 1) &&
- z_UserInformationField(o, &pp->userInformationField, 1) &&
-#ifdef Z_95
- z_OtherInformation(o, &(*p)->otherInfo, 1) &&
-#endif
+ ODR_CONTEXT, 112, 1) &&
+ z_UserInformationField(o, &pp->userInformationField, 1, 0) &&
+ z_OtherInformation(o, &(*p)->otherInfo, 1, 0) &&
odr_sequence_end(o);
}
/* ------------------ RESOURCE CONTROL ----------------*/
int z_TriggerResourceControlRequest(ODR o, Z_TriggerResourceControlRequest **p,
- int opt)
+ int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- z_ReferenceId(o, &(*p)->referenceId, 1) &&
+ z_ReferenceId(o, &(*p)->referenceId, 1, 0) &&
odr_implicit(o, odr_integer, &(*p)->requestedAction, ODR_CONTEXT,
46, 0) &&
odr_implicit(o, odr_oid, &(*p)->prefResourceReportFormat,
ODR_CONTEXT, 47, 1) &&
odr_implicit(o, odr_bool, &(*p)->resultSetWanted, ODR_CONTEXT,
48, 1) &&
-#ifdef Z_95
- z_OtherInformation(o, &(*p)->otherInfo, 1) &&
-#endif
+ z_OtherInformation(o, &(*p)->otherInfo, 1, 0) &&
odr_sequence_end(o);
}
-int z_ResourceControlRequest(ODR o, Z_ResourceControlRequest **p, int opt)
+int z_ResourceControlRequest(ODR o, Z_ResourceControlRequest **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- z_ReferenceId(o, &(*p)->referenceId, 1) &&
+ z_ReferenceId(o, &(*p)->referenceId, 1, 0) &&
odr_implicit(o, odr_bool, &(*p)->suspendedFlag, ODR_CONTEXT, 39, 1)&&
odr_explicit(o, z_External, &(*p)->resourceReport, ODR_CONTEXT,
40, 1) &&
42, 0) &&
odr_implicit(o, odr_bool, &(*p)->triggeredRequestFlag,
ODR_CONTEXT, 43, 1) &&
-#ifdef Z_95
- z_OtherInformation(o, &(*p)->otherInfo, 1) &&
-#endif
+ z_OtherInformation(o, &(*p)->otherInfo, 1, 0) &&
odr_sequence_end(o);
}
-int z_ResourceControlResponse(ODR o, Z_ResourceControlResponse **p, int opt)
+int z_ResourceControlResponse(ODR o, Z_ResourceControlResponse **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- z_ReferenceId(o, &(*p)->referenceId, 1) &&
+ z_ReferenceId(o, &(*p)->referenceId, 1, 0) &&
odr_implicit(o, odr_bool, &(*p)->continueFlag, ODR_CONTEXT, 44, 0) &&
odr_implicit(o, odr_bool, &(*p)->resultSetWanted, ODR_CONTEXT,
45, 1) &&
-#ifdef Z_95
- z_OtherInformation(o, &(*p)->otherInfo, 1) &&
-#endif
+ z_OtherInformation(o, &(*p)->otherInfo, 1, 0) &&
odr_sequence_end(o);
}
/* ------------------------ SEARCH SERVICE ----------------------- */
-int z_DatabaseSpecificUnit(ODR o, Z_DatabaseSpecificUnit **p, int opt)
+int z_DatabaseSpecificUnit(ODR o, Z_DatabaseSpecificUnit **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- z_DatabaseName(o, &(*p)->databaseName, 0) &&
- z_ElementSetName(o, &(*p)->elementSetName, 0) &&
+ z_DatabaseName(o, &(*p)->databaseName, 0, 0) &&
+ z_ElementSetName(o, &(*p)->elementSetName, 0, 0) &&
odr_sequence_end(o);
}
-int z_DatabaseSpecific(ODR o, Z_DatabaseSpecific **p, int opt)
+int z_DatabaseSpecific(ODR o, Z_DatabaseSpecific **p, int opt,
+ const char *name)
{
if (o->direction == ODR_DECODE)
*p = (Z_DatabaseSpecific *)odr_malloc(o, sizeof(**p));
odr_implicit_settag(o, ODR_CONTEXT, 1);
if (odr_sequence_of(o, (Odr_fun)z_DatabaseSpecificUnit, &(*p)->elements,
- &(*p)->num_elements))
+ &(*p)->num_elements, 0))
return 1;
*p = 0;
return 0;
}
-int z_ElementSetNames(ODR o, Z_ElementSetNames **p, int opt)
+int z_ElementSetNames(ODR o, Z_ElementSetNames **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
{ODR_IMPLICIT, ODR_CONTEXT, 0, Z_ElementSetNames_generic,
- z_ElementSetName},
+ z_ElementSetName, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ElementSetNames_databaseSpecific,
- (Odr_fun)z_DatabaseSpecific},
+ (Odr_fun)z_DatabaseSpecific, 0},
{-1, -1, -1, -1, 0}
};
else if (!*p)
return opt && odr_ok(o);
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return 0;
/* ----------------------- RPN QUERY -----------------------*/
-int z_ComplexAttribute(ODR o, Z_ComplexAttribute **p, int opt)
+int z_ComplexAttribute(ODR o, Z_ComplexAttribute **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit_settag(o, ODR_CONTEXT, 1) &&
odr_sequence_of(o, (Odr_fun)z_StringOrNumeric, &(*p)->list,
- &(*p)->num_list) &&
+ &(*p)->num_list, 0) &&
odr_implicit_settag(o, ODR_CONTEXT, 2) &&
(odr_sequence_of(o, (Odr_fun)odr_integer, &(*p)->semanticAction,
- &(*p)->num_semanticAction) || odr_ok(o)) &&
+ &(*p)->num_semanticAction, 0) || odr_ok(o)) &&
odr_sequence_end(o);
}
-int z_AttributeElement(ODR o, Z_AttributeElement **p, int opt)
+int z_AttributeElement(ODR o, Z_AttributeElement **p, int opt,
+ const char *name)
{
-#ifdef Z_95
static Odr_arm arm[] =
{
{ODR_IMPLICIT, ODR_CONTEXT, 121, Z_AttributeValue_numeric,
- (Odr_fun)odr_integer},
+ (Odr_fun)odr_integer, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 224, Z_AttributeValue_complex,
- (Odr_fun)z_ComplexAttribute},
- {-1, -1, -1, -1, 0}
+ (Odr_fun)z_ComplexAttribute, 0},
+ {-1, -1, -1, -1, 0, 0}
};
-#endif
-
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
-#ifdef Z_95
odr_implicit(o, odr_oid, &(*p)->attributeSet, ODR_CONTEXT, 1, 1) &&
-#endif
odr_implicit(o, odr_integer, &(*p)->attributeType, ODR_CONTEXT,
120, 0) &&
-#ifdef Z_95
- odr_choice(o, arm, &(*p)->value, &(*p)->which) &&
-#else
- odr_implicit(o, odr_integer, &(*p)->attributeValue, ODR_CONTEXT,
- 121, 0) &&
-#endif
+ odr_choice(o, arm, &(*p)->value, &(*p)->which, 0) &&
odr_sequence_end(o);
}
-int z_Term(ODR o, Z_Term **p, int opt)
+int z_Term(ODR o, Z_Term **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
- {ODR_IMPLICIT, ODR_CONTEXT, 45, Z_Term_general, (Odr_fun)odr_octetstring},
- {ODR_IMPLICIT, ODR_CONTEXT, 215, Z_Term_numeric, (Odr_fun)odr_integer},
+ {ODR_IMPLICIT, ODR_CONTEXT, 45, Z_Term_general,
+ (Odr_fun)odr_octetstring, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 215, Z_Term_numeric,
+ (Odr_fun)odr_integer, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 216, Z_Term_characterString,
- odr_visiblestring},
- {ODR_IMPLICIT, ODR_CONTEXT, 217, Z_Term_oid, (Odr_fun)odr_oid},
- {ODR_IMPLICIT, ODR_CONTEXT, 218, Z_Term_dateTime, odr_cstring},
- {ODR_IMPLICIT, ODR_CONTEXT, 219, Z_Term_external, (Odr_fun)z_External},
+ odr_visiblestring, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 217, Z_Term_oid, (Odr_fun)odr_oid, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 218, Z_Term_dateTime, odr_cstring, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 219, Z_Term_external,
+ (Odr_fun) z_External, 0},
/* add intUnit here */
- {ODR_IMPLICIT, ODR_CONTEXT, 221, Z_Term_null, (Odr_fun)odr_null},
- {-1, -1, -1, -1, 0}
+ {ODR_IMPLICIT, ODR_CONTEXT, 221, Z_Term_null, (Odr_fun)odr_null, 0},
+ {-1, -1, -1, -1, 0, 0}
};
if (o->direction ==ODR_DECODE)
*p = (Z_Term *)odr_malloc(o, sizeof(**p));
else if (!*p)
return opt;
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_AttributesPlusTerm(ODR o, Z_AttributesPlusTerm **p, int opt)
+int z_AttributesPlusTerm(ODR o, Z_AttributesPlusTerm **p, int opt,
+ const char *name)
{
if (!(odr_implicit_settag(o, ODR_CONTEXT, 102) &&
- odr_sequence_begin(o, p, sizeof(**p))))
+ odr_sequence_begin(o, p, sizeof(**p), 0)))
return opt && odr_ok(o);
return
odr_implicit_settag(o, ODR_CONTEXT, 44) &&
odr_sequence_of(o, (Odr_fun)z_AttributeElement, &(*p)->attributeList,
- &(*p)->num_attributes) &&
- z_Term(o, &(*p)->term, 0) &&
+ &(*p)->num_attributes, 0) &&
+ z_Term(o, &(*p)->term, 0, 0) &&
odr_sequence_end(o);
}
-int z_ResultSetPlusAttributes(ODR o, Z_ResultSetPlusAttributes **p, int opt)
+int z_ResultSetPlusAttributes(ODR o, Z_ResultSetPlusAttributes **p, int opt,
+ const char *name)
{
if (!(odr_implicit_settag(o, ODR_CONTEXT, 214) &&
- odr_sequence_begin(o, p, sizeof(**p))))
+ odr_sequence_begin(o, p, sizeof(**p), 0)))
return opt && odr_ok(o);
return
- z_ResultSetId(o, &(*p)->resultSet, 0) &&
+ z_ResultSetId(o, &(*p)->resultSet, 0, 0) &&
odr_implicit_settag(o, ODR_CONTEXT, 44) &&
odr_sequence_of(o, (Odr_fun)z_AttributeElement, &(*p)->attributeList,
- &(*p)->num_attributes) &&
+ &(*p)->num_attributes, 0) &&
odr_sequence_end(o);
}
-int z_ProximityOperator(ODR o, Z_ProximityOperator **p, int opt)
+int z_ProximityOperator(ODR o, Z_ProximityOperator **p, int opt,
+ const char *name)
{
static Odr_arm arm[] =
{
- {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ProxCode_known, (Odr_fun)odr_integer},
- {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ProxCode_private, (Odr_fun)odr_integer},
- {-1, -1, -1, -1, 0}
+ {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ProxCode_known,
+ (Odr_fun)odr_integer, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ProxCode_private,
+ (Odr_fun)odr_integer, 0},
+ {-1, -1, -1, -1, 0, 0}
};
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, odr_bool, &(*p)->exclusion, ODR_CONTEXT, 1, 1) &&
odr_implicit(o, odr_integer, &(*p)->distance, ODR_CONTEXT, 2, 0) &&
odr_implicit(o, odr_bool, &(*p)->ordered, ODR_CONTEXT, 3, 0) &&
odr_implicit(o, odr_integer, &(*p)->relationType, ODR_CONTEXT, 4, 0) &&
- odr_constructed_begin(o, &(*p)->proximityUnitCode, ODR_CONTEXT, 5) &&
- odr_choice(o, arm, &(*p)->proximityUnitCode, &(*p)->which) &&
+ odr_constructed_begin(o, &(*p)->proximityUnitCode,
+ ODR_CONTEXT, 5, 0) &&
+ odr_choice(o, arm, &(*p)->proximityUnitCode, &(*p)->which, 0) &&
odr_constructed_end(o) &&
odr_sequence_end(o);
}
-int z_Operator(ODR o, Z_Operator **p, int opt)
+int z_Operator(ODR o, Z_Operator **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
- {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_Operator_and, (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Operator_or, (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Operator_and_not, (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Operator_prox, (Odr_fun)z_ProximityOperator},
- {-1, -1, -1, -1, 0}
+ {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_Operator_and, (Odr_fun)odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Operator_or, (Odr_fun)odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Operator_and_not,
+ (Odr_fun)odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Operator_prox,
+ (Odr_fun)z_ProximityOperator, 0},
+ {-1, -1, -1, -1, 0, 0}
};
if (!*p && o->direction != ODR_DECODE)
return opt;
- if (!odr_constructed_begin(o, p, ODR_CONTEXT, 46))
+ if (!odr_constructed_begin(o, p, ODR_CONTEXT, 46, 0))
return opt && odr_ok(o);
if (o->direction == ODR_DECODE)
*p = (Z_Operator *)odr_malloc(o, sizeof(**p));
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which) &&
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0) &&
odr_constructed_end(o))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_Operand(ODR o, Z_Operand **p, int opt)
+int z_Operand(ODR o, Z_Operand **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
- {-1, -1, -1, Z_Operand_APT, (Odr_fun)z_AttributesPlusTerm},
- {-1, -1, -1, Z_Operand_resultSetId, (Odr_fun)z_ResultSetId},
- {-1, -1, -1, Z_Operand_resultAttr, (Odr_fun)z_ResultSetPlusAttributes},
- {-1, -1, -1, -1, 0}
+ {-1, -1, -1, Z_Operand_APT, (Odr_fun)z_AttributesPlusTerm, 0},
+ {-1, -1, -1, Z_Operand_resultSetId, (Odr_fun)z_ResultSetId, 0},
+ {-1, -1, -1, Z_Operand_resultAttr,
+ (Odr_fun)z_ResultSetPlusAttributes, 0},
+ {-1, -1, -1, -1, 0, 0}
};
if (o->direction == ODR_DECODE)
*p = (Z_Operand *)odr_malloc(o, sizeof(**p));
else if (!*p)
return opt;
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_RPNStructure(ODR o, Z_RPNStructure **p, int opt);
+int z_RPNStructure(ODR o, Z_RPNStructure **p, int opt, const char *name);
-int z_Complex(ODR o, Z_Complex **p, int opt)
+int z_Complex(ODR o, Z_Complex **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- z_RPNStructure(o, &(*p)->s1, 0) &&
- z_RPNStructure(o, &(*p)->s2, 0) &&
- z_Operator(o, &(*p)->roperator, 0) &&
+ z_RPNStructure(o, &(*p)->s1, 0, 0) &&
+ z_RPNStructure(o, &(*p)->s2, 0, 0) &&
+ z_Operator(o, &(*p)->roperator, 0, 0) &&
odr_sequence_end(o);
}
-int z_RPNStructure(ODR o, Z_RPNStructure **p, int opt)
+int z_RPNStructure(ODR o, Z_RPNStructure **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
- {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_RPNStructure_simple, (Odr_fun)z_Operand},
- {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_RPNStructure_complex, (Odr_fun)z_Complex},
- {-1 -1, -1, -1, 0}
+ {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_RPNStructure_simple,
+ (Odr_fun)z_Operand, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_RPNStructure_complex,
+ (Odr_fun)z_Complex, 0},
+ {-1 -1, -1, -1, 0, 0}
};
if (o->direction == ODR_DECODE)
*p = (Z_RPNStructure *)odr_malloc(o, sizeof(**p));
else if (!*p)
return opt;
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_RPNQuery(ODR o, Z_RPNQuery **p, int opt)
+int z_RPNQuery(ODR o, Z_RPNQuery **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- odr_oid(o, &(*p)->attributeSetId, 0) &&
- z_RPNStructure(o, &(*p)->RPNStructure, 0) &&
+ odr_oid(o, &(*p)->attributeSetId, 0, 0) &&
+ z_RPNStructure(o, &(*p)->RPNStructure, 0, 0) &&
odr_sequence_end(o);
}
/* -----------------------END RPN QUERY ----------------------- */
-int z_Query(ODR o, Z_Query **p, int opt)
+int z_Query(ODR o, Z_Query **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
- {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Query_type_1, (Odr_fun)z_RPNQuery},
- {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_Query_type_2, (Odr_fun)odr_octetstring},
- {ODR_IMPLICIT, ODR_CONTEXT, 101, Z_Query_type_101, (Odr_fun)z_RPNQuery},
- {-1, -1, -1, -1, 0}
+ {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Query_type_1,
+ (Odr_fun)z_RPNQuery, 0},
+ {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_Query_type_2,
+ (Odr_fun)odr_octetstring, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 101, Z_Query_type_101,
+ (Odr_fun)z_RPNQuery, 0},
+ {-1, -1, -1, -1, 0, 0}
};
if (o->direction == ODR_DECODE)
*p = (Z_Query *)odr_malloc(o, sizeof(**p));
else if (!*p)
return opt;
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_SearchRequest(ODR o, Z_SearchRequest **p, int opt)
+int z_SearchRequest(ODR o, Z_SearchRequest **p, int opt, const char *name)
{
Z_SearchRequest *pp;
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
pp = *p;
return
- z_ReferenceId(o, &pp->referenceId, 1) &&
+ z_ReferenceId(o, &pp->referenceId, 1, 0) &&
odr_implicit(o, odr_integer, &pp->smallSetUpperBound, ODR_CONTEXT,
13, 0) &&
odr_implicit(o, odr_integer, &pp->largeSetLowerBound, ODR_CONTEXT,
17, 9) &&
odr_implicit_settag(o, ODR_CONTEXT, 18) &&
odr_sequence_of(o, z_DatabaseName, &pp->databaseNames,
- &pp->num_databaseNames) &&
+ &pp->num_databaseNames, 0) &&
odr_explicit(o, z_ElementSetNames, &pp->smallSetElementSetNames,
ODR_CONTEXT, 100, 1) &&
odr_explicit(o, z_ElementSetNames, &pp->mediumSetElementSetNames,
odr_implicit(o, odr_oid, &pp->preferredRecordSyntax,
ODR_CONTEXT, 104, 1) &&
odr_explicit(o, z_Query, &pp->query, ODR_CONTEXT, 21, 0) &&
-#ifdef Z_95
odr_implicit(o, z_OtherInformation, &(*p)->additionalSearchInfo,
ODR_CONTEXT, 203, 1) &&
- z_OtherInformation(o, &(*p)->otherInfo, 1) &&
-#endif
+ z_OtherInformation(o, &(*p)->otherInfo, 1, 0) &&
odr_sequence_end(o);
}
/* ------------------------ RECORD ------------------------- */
-int z_DatabaseRecord(ODR o, Z_DatabaseRecord **p, int opt)
+int z_DatabaseRecord(ODR o, Z_DatabaseRecord **p, int opt, const char *name)
{
- return z_External(o, (Z_External **) p, opt);
+ return z_External(o, (Z_External **) p, opt, 0);
}
-#ifdef Z_95
-
-int z_DefaultDiagFormat(ODR o, Z_DefaultDiagFormat **p, int opt)
+int z_DefaultDiagFormat(ODR o, Z_DefaultDiagFormat **p, int opt,
+ const char *name)
{
static Odr_arm arm[] =
{
- {-1, -1, -1, Z_DiagForm_v2AddInfo, odr_visiblestring},
- {-1, -1, -1, Z_DiagForm_v3AddInfo, z_InternationalString},
+ {-1, -1, -1, Z_DiagForm_v2AddInfo, odr_visiblestring, 0},
+ {-1, -1, -1, Z_DiagForm_v3AddInfo, z_InternationalString, 0},
{ODR_IMPLICIT, ODR_CONTEXT, ODR_VISIBLESTRING, Z_DiagForm_v2AddInfo,
- odr_visiblestring}, /* To cater to a bug in the CNIDR servers */
- {-1, -1, -1, -1, 0}
+ odr_visiblestring, 0}, /* To cater to a bug in the CNIDR servers */
+ {-1, -1, -1, -1, 0, 0}
};
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- odr_oid(o, &(*p)->diagnosticSetId, 1) && /* SHOULD NOT BE OPT! */
- odr_integer(o, &(*p)->condition, 0) &&
+ odr_oid(o, &(*p)->diagnosticSetId, 1, 0) && /* SHOULD NOT BE OPT! */
+ odr_integer(o, &(*p)->condition, 0, 0) &&
/*
* I no longer recall what server tagged the addinfo.. but it isn't
* hurting anyone, so...
* We need to turn it into a choice, or something, because of
* that damn generalstring in v3.
*/
- odr_choice(o, arm, &(*p)->addinfo, &(*p)->which) &&
+ odr_choice(o, arm, &(*p)->addinfo, &(*p)->which, 0) &&
odr_sequence_end(o);
}
-int z_DiagRec(ODR o, Z_DiagRec **p, int opt)
+int z_DiagRec(ODR o, Z_DiagRec **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
- {-1, -1, -1, Z_DiagRec_defaultFormat, (Odr_fun)z_DefaultDiagFormat},
- {-1, -1, -1, Z_DiagRec_externallyDefined, (Odr_fun)z_External},
- {-1, -1, -1, -1, 0}
+ {-1, -1, -1, Z_DiagRec_defaultFormat, (Odr_fun)z_DefaultDiagFormat, 0},
+ {-1, -1, -1, Z_DiagRec_externallyDefined, (Odr_fun)z_External, 0},
+ {-1, -1, -1, -1, 0, 0}
};
if (o->direction == ODR_DECODE)
*p = (Z_DiagRec *)odr_malloc(o, sizeof(**p));
else if (!*p)
return opt;
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-#else
-
-int z_DiagRec(ODR o, Z_DiagRec **p, int opt)
-{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
- return opt && odr_ok(o);
- return
- odr_oid(o, &(*p)->diagnosticSetId, 1) && /* SHOULD NOT BE OPT! */
- odr_integer(o, &(*p)->condition, 0) &&
- /*
- * I no longer recall what server tagged the addinfo.. but it isn't
- * hurting anyone, so...
- * We need to turn it into a choice, or something, because of
- * that damn generalstring in v3.
- */
- (odr_visiblestring(o, &(*p)->addinfo, 0) ||
- odr_implicit(o, odr_cstring, &(*p)->addinfo, ODR_CONTEXT,
- ODR_VISIBLESTRING, 1)) &&
- odr_sequence_end(o);
-}
-
-#endif
-
-int z_DiagRecs(ODR o, Z_DiagRecs **p, int opt)
+int z_DiagRecs(ODR o, Z_DiagRecs **p, int opt, const char *name)
{
if (o->direction == ODR_DECODE)
*p = (Z_DiagRecs *)odr_malloc(o, sizeof(**p));
return opt;
if (odr_sequence_of(o, (Odr_fun)z_DiagRec, &(*p)->diagRecs,
- &(*p)->num_diagRecs))
+ &(*p)->num_diagRecs, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_NamePlusRecord(ODR o, Z_NamePlusRecord **p, int opt)
+int z_NamePlusRecord(ODR o, Z_NamePlusRecord **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
{ODR_EXPLICIT, ODR_CONTEXT, 1, Z_NamePlusRecord_databaseRecord,
- (Odr_fun)z_DatabaseRecord},
+ (Odr_fun)z_DatabaseRecord, 0},
{ODR_EXPLICIT, ODR_CONTEXT, 2, Z_NamePlusRecord_surrogateDiagnostic,
- (Odr_fun)z_DiagRec},
- {-1, -1, -1, -1, 0}
+ (Odr_fun)z_DiagRec, 0},
+ {-1, -1, -1, -1, 0, 0}
};
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, z_DatabaseName, &(*p)->databaseName, ODR_CONTEXT,
0, 1) &&
- odr_constructed_begin(o, &(*p)->u, ODR_CONTEXT, 1) &&
- odr_choice(o, arm, &(*p)->u, &(*p)->which) &&
+ odr_constructed_begin(o, &(*p)->u, ODR_CONTEXT, 1, 0) &&
+ odr_choice(o, arm, &(*p)->u, &(*p)->which, 0) &&
odr_constructed_end(o) &&
odr_sequence_end(o);
}
-int z_NamePlusRecordList(ODR o, Z_NamePlusRecordList **p, int opt)
+int z_NamePlusRecordList(ODR o, Z_NamePlusRecordList **p, int opt,
+ const char *name)
{
if (o->direction == ODR_DECODE)
*p = (Z_NamePlusRecordList *)odr_malloc(o, sizeof(**p));
else if (!*p)
return opt;
if (odr_sequence_of(o, (Odr_fun)z_NamePlusRecord, &(*p)->records,
- &(*p)->num_records))
+ &(*p)->num_records, 0))
return 1;
*p = 0;
return 0;
}
-int z_Records(ODR o, Z_Records **p, int opt)
+int z_Records(ODR o, Z_Records **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
- {ODR_IMPLICIT, ODR_CONTEXT, 28, Z_Records_DBOSD, (Odr_fun)z_NamePlusRecordList},
- {ODR_IMPLICIT, ODR_CONTEXT, 130, Z_Records_NSD, (Odr_fun)z_DiagRec},
+ {ODR_IMPLICIT, ODR_CONTEXT, 28, Z_Records_DBOSD,
+ (Odr_fun)z_NamePlusRecordList, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 130, Z_Records_NSD,
+ (Odr_fun)z_DiagRec, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 205, Z_Records_multipleNSD,
- (Odr_fun)z_DiagRecs},
- {-1, -1, -1, -1, 0}
+ (Odr_fun)z_DiagRecs, 0},
+ {-1, -1, -1, -1, 0, 0}
};
if (o->direction == ODR_DECODE)
*p = (Z_Records *)odr_malloc(o, sizeof(**p));
else if (!*p)
return opt;
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
/* ------------------------ ACCESS CTRL SERVICE ----------------------- */
-int z_AccessControlRequest(ODR o, Z_AccessControlRequest **p, int opt)
+int z_AccessControlRequest(ODR o, Z_AccessControlRequest **p, int opt,
+ const char *name)
{
static Odr_arm arm[] =
{
{ODR_IMPLICIT, ODR_CONTEXT, 37, Z_AccessRequest_simpleForm,
- (Odr_fun)odr_octetstring},
+ (Odr_fun)odr_octetstring, 0},
{ODR_EXPLICIT, ODR_CONTEXT, 0, Z_AccessRequest_externallyDefined,
- (Odr_fun)z_External},
- {-1, -1, -1, -1, 0}
+ (Odr_fun)z_External, 0},
+ {-1, -1, -1, -1, 0, 0}
};
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- z_ReferenceId(o, &(*p)->referenceId, 1) &&
- odr_choice(o, arm, &(*p)->u, &(*p)->which) &&
-#ifdef Z_95
- z_OtherInformation(o, &(*p)->otherInfo, 1) &&
-#endif
+ z_ReferenceId(o, &(*p)->referenceId, 1, 0) &&
+ odr_choice(o, arm, &(*p)->u, &(*p)->which, 0) &&
+ z_OtherInformation(o, &(*p)->otherInfo, 1, 0) &&
odr_sequence_end(o);
}
-int z_AccessControlResponse(ODR o, Z_AccessControlResponse **p, int opt)
+int z_AccessControlResponse(ODR o, Z_AccessControlResponse **p, int opt,
+ const char *name)
{
static Odr_arm arm[] =
{
{ODR_IMPLICIT, ODR_CONTEXT, 38, Z_AccessResponse_simpleForm,
- (Odr_fun)odr_octetstring},
+ (Odr_fun)odr_octetstring, 0},
{ODR_EXPLICIT, ODR_CONTEXT, 0, Z_AccessResponse_externallyDefined,
- (Odr_fun)z_External},
- {-1, -1, -1, -1, 0}
+ (Odr_fun)z_External, 0},
+ {-1, -1, -1, -1, 0, 0}
};
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- z_ReferenceId(o, &(*p)->referenceId, 1) &&
- odr_choice(o, arm, &(*p)->u, &(*p)->which) &&
+ z_ReferenceId(o, &(*p)->referenceId, 1, 0) &&
+ odr_choice(o, arm, &(*p)->u, &(*p)->which, 0) &&
odr_explicit(o, z_DiagRec, &(*p)->diagnostic, ODR_CONTEXT, 223, 1) &&
-#ifdef Z_95
- z_OtherInformation(o, &(*p)->otherInfo, 1) &&
-#endif
+ z_OtherInformation(o, &(*p)->otherInfo, 1, 0) &&
odr_sequence_end(o);
}
/* ------------------------ SCAN SERVICE -------------------- */
-int z_AttributeList(ODR o, Z_AttributeList **p, int opt)
+int z_AttributeList(ODR o, Z_AttributeList **p, int opt, const char *name)
{
if (o->direction == ODR_DECODE)
*p = (Z_AttributeList *)odr_malloc(o, sizeof(**p));
odr_implicit_settag(o, ODR_CONTEXT, 44);
if (odr_sequence_of(o, (Odr_fun)z_AttributeElement, &(*p)->attributes,
- &(*p)->num_attributes))
+ &(*p)->num_attributes, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
*/
static int willow_scan = 0;
-int z_WillowAttributesPlusTerm(ODR o, Z_AttributesPlusTerm **p, int opt)
+int z_WillowAttributesPlusTerm(ODR o, Z_AttributesPlusTerm **p, int opt,
+ const char *name)
{
if (!*p && o->direction != ODR_DECODE)
return opt;
- if (!odr_constructed_begin(o, p, ODR_CONTEXT, 4))
+ if (!odr_constructed_begin(o, p, ODR_CONTEXT, 4, 0))
{
o->t_class = -1;
return opt && odr_ok(o);
}
- if (!odr_constructed_begin(o, p, ODR_CONTEXT, 1))
+ if (!odr_constructed_begin(o, p, ODR_CONTEXT, 1, 0))
return 0;
- if (!odr_constructed_begin(o, p, ODR_UNIVERSAL, ODR_SEQUENCE))
+ if (!odr_constructed_begin(o, p, ODR_UNIVERSAL, ODR_SEQUENCE, 0))
return 0;
if (!odr_implicit_settag(o, ODR_CONTEXT, 44))
return 0;
if (o->direction == ODR_DECODE)
*p = (Z_AttributesPlusTerm*)odr_malloc(o, sizeof(**p));
if (!odr_sequence_of(o, (Odr_fun)z_AttributeElement, &(*p)->attributeList,
- &(*p)->num_attributes))
+ &(*p)->num_attributes, 0))
return 0;
if (!odr_sequence_end(o) || !odr_sequence_end(o))
return 0;
- if (!z_Term(o, &(*p)->term, 0))
+ if (!z_Term(o, &(*p)->term, 0, 0))
return 0;
if (!odr_constructed_end(o))
return 0;
return 1;
}
-int z_AlternativeTerm(ODR o, Z_AlternativeTerm **p, int opt)
+int z_AlternativeTerm(ODR o, Z_AlternativeTerm **p, int opt, const char *name)
{
if (o->direction == ODR_DECODE)
*p = (Z_AlternativeTerm *)odr_malloc(o, sizeof(**p));
}
if (odr_sequence_of(o, (Odr_fun)z_AttributesPlusTerm, &(*p)->terms,
- &(*p)->num_terms))
+ &(*p)->num_terms, 0))
return 1;
*p = 0;
return opt && !o->error;
}
-#if 1
-
-int z_ByDatabase(ODR o, Z_ByDatabase **p, int opt)
+int z_ByDatabase(ODR o, Z_ByDatabase **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- z_DatabaseName(o, &(*p)->db, 1) &&
+ z_DatabaseName(o, &(*p)->db, 1, 0) &&
odr_implicit(o, odr_integer, &(*p)->num, ODR_CONTEXT, 1, 1) &&
- z_OtherInformation(o, &(*p)->otherDbInfo, 1) &&
+ z_OtherInformation(o, &(*p)->otherDbInfo, 1, 0) &&
odr_sequence_end(o);
}
-int z_ByDatabaseList(ODR o, Z_ByDatabaseList **p, int opt)
+int z_ByDatabaseList(ODR o, Z_ByDatabaseList **p, int opt, const char *name)
{
if (!odr_initmember(o, p, sizeof(**p)))
return opt && odr_ok(o);
- if (odr_sequence_of(o, (Odr_fun)z_ByDatabase, &(*p)->elements, &(*p)->num_elements))
+ if (odr_sequence_of(o, (Odr_fun)z_ByDatabase, &(*p)->elements,
+ &(*p)->num_elements, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_ScanOccurrences(ODR o, Z_ScanOccurrences **p, int opt)
+int z_ScanOccurrences(ODR o, Z_ScanOccurrences **p, int opt, const char *name)
{
Odr_arm arm[] =
{
- {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_ScanOccurrences_global, (Odr_fun)odr_integer},
+ {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_ScanOccurrences_global,
+ (Odr_fun)odr_integer, 0},
{ODR_EXPLICIT, ODR_CONTEXT, 3, Z_ScanOccurrences_byDatabase,
- (Odr_fun)z_ByDatabaseList},
- {-1, -1, -1, -1, 0}
+ (Odr_fun)z_ByDatabaseList, 0},
+ {-1, -1, -1, -1, 0, 0}
};
if (!odr_initmember(o, p, sizeof(**p)))
return opt && odr_ok(o);
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
int z_OccurrenceByAttributesElem(ODR o, Z_OccurrenceByAttributesElem **p,
- int opt)
+ int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_explicit(o, z_AttributeList, &(*p)->attributes, ODR_CONTEXT,
1, 1) &&
- z_ScanOccurrences(o, &(*p)->occurrences, 1) &&
- z_OtherInformation(o, &(*p)->otherOccurInfo, 1) &&
+ z_ScanOccurrences(o, &(*p)->occurrences, 1, 0) &&
+ z_OtherInformation(o, &(*p)->otherOccurInfo, 1, 0) &&
odr_sequence_end(o);
}
-int z_OccurrenceByAttributes(ODR o, Z_OccurrenceByAttributes **p, int opt)
+int z_OccurrenceByAttributes(ODR o, Z_OccurrenceByAttributes **p, int opt, const char *name)
{
if (!odr_initmember(o, p, sizeof(**p)))
return opt && odr_ok(o);
- if (!odr_sequence_of(o, (Odr_fun)z_OccurrenceByAttributesElem, &(*p)->elements,
- &(*p)->num_elements))
+ if (!odr_sequence_of(o, (Odr_fun)z_OccurrenceByAttributesElem,
+ &(*p)->elements, &(*p)->num_elements, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-#else
-
-/*
- * Incomplete definition of occurencebyattributes.
- */
-
-int z_OccurrenceByAttributes(ODR o, Z_OccurrenceByAttributes **p, int opt)
-{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
- return opt && odr_ok(o);
- return
- odr_explicit(o, z_AttributeList, &(*p)->attributes, ODR_CONTEXT, 1, 1)&&
- odr_explicit(o, odr_integer, &(*p)->global, ODR_CONTEXT, 2, 1) &&
- odr_sequence_end(o);
-}
-
-#endif
-
-int z_TermInfo(ODR o, Z_TermInfo **p, int opt)
+int z_TermInfo(ODR o, Z_TermInfo **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
(willow_scan ?
odr_implicit(o, z_Term, &(*p)->term, ODR_CONTEXT, 1, 0) :
- z_Term(o, &(*p)->term, 0)) &&
+ z_Term(o, &(*p)->term, 0, 0)) &&
odr_implicit(o, z_InternationalString, &(*p)->displayTerm, ODR_CONTEXT,
0, 1) &&
- z_AttributeList(o, &(*p)->suggestedAttributes, 1) &&
+ z_AttributeList(o, &(*p)->suggestedAttributes, 1, 0) &&
odr_implicit(o, z_AlternativeTerm, &(*p)->alternativeTerm,
ODR_CONTEXT, 4, 1) &&
odr_implicit(o, odr_integer, &(*p)->globalOccurrences, ODR_CONTEXT,
2, 1) &&
odr_implicit(o, z_OccurrenceByAttributes, &(*p)->byAttributes,
ODR_CONTEXT, 3, 1) &&
- z_OtherInformation(o, &(*p)->otherTermInfo, 1) &&
+ z_OtherInformation(o, &(*p)->otherTermInfo, 1, 0) &&
odr_sequence_end(o);
}
-int z_Entry(ODR o, Z_Entry **p, int opt)
+int z_Entry(ODR o, Z_Entry **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
- {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Entry_termInfo, (Odr_fun)z_TermInfo},
+ {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Entry_termInfo,
+ (Odr_fun)z_TermInfo, 0},
{ODR_EXPLICIT, ODR_CONTEXT, 2, Z_Entry_surrogateDiagnostic,
- (Odr_fun)z_DiagRec},
- {-1, -1, -1, -1, 0}
+ (Odr_fun)z_DiagRec, 0},
+ {-1, -1, -1, -1, 0, 0}
};
if (o->direction == ODR_DECODE)
else if (!*p)
return opt;
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
- return 1;
- *p = 0;
- return opt && odr_ok(o);
-}
-
-#ifdef BUGGY_LISTENTRIES
-
-int z_Entries(ODR o, Z_Entries **p, int opt)
-{
- if (o->direction == ODR_DECODE)
- *p = (Z_Entries *)odr_malloc(o, sizeof(**p));
- else if (!*p)
- return opt;
-
- if (odr_sequence_of(o, (Odr_fun)z_Entry, &(*p)->entries,
- &(*p)->num_entries))
- return 1;
- *p = 0;
- return 0;
-}
-
-int z_ListEntries(ODR o, Z_ListEntries **p, int opt)
-{
- static Odr_arm arm[] =
- {
- {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ListEntries_entries, (Odr_fun)z_Entries},
- {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ListEntries_nonSurrogateDiagnostics,
- (Odr_fun)z_DiagRecs},
- {-1, -1, -1, -1, 0}
- };
-
- if (o->direction == ODR_DECODE)
- *p = (Z_ListEntries *)odr_malloc(o, sizeof(**p));
- else if (!*p)
- return opt;
-
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-#endif
-
-int z_ListEntries (ODR o, Z_ListEntries **p, int opt)
+int z_ListEntries (ODR o, Z_ListEntries **p, int opt, const char *name)
{
- if (!odr_sequence_begin (o, p, sizeof(**p)))
- return opt && odr_ok (o);
- return
- odr_implicit_settag (o, ODR_CONTEXT, 1) &&
- (odr_sequence_of(o, (Odr_fun) z_Entry, &(*p)->entries,
- &(*p)->num_entries) || odr_ok(o)) &&
- odr_implicit_settag (o, ODR_CONTEXT, 2) &&
- (odr_sequence_of(o, (Odr_fun) z_DiagRec, &(*p)->nonsurrogateDiagnostics,
- &(*p)->num_nonsurrogateDiagnostics) || odr_ok(o)) &&
- odr_sequence_end (o);
+ if (!odr_sequence_begin (o, p, sizeof(**p), 0))
+ return opt && odr_ok (o);
+ return
+ odr_implicit_settag (o, ODR_CONTEXT, 1) &&
+ (odr_sequence_of(o, (Odr_fun) z_Entry, &(*p)->entries,
+ &(*p)->num_entries, 0) || odr_ok(o)) &&
+ odr_implicit_settag (o, ODR_CONTEXT, 2) &&
+ (odr_sequence_of(o, (Odr_fun) z_DiagRec,
+ &(*p)->nonsurrogateDiagnostics,
+ &(*p)->num_nonsurrogateDiagnostics, 0)
+ || odr_ok(o)) &&
+ odr_sequence_end (o);
}
-int z_ScanRequest(ODR o, Z_ScanRequest **p, int opt)
+int z_ScanRequest(ODR o, Z_ScanRequest **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
willow_scan = 0;
return
- z_ReferenceId(o, &(*p)->referenceId, 1) &&
+ z_ReferenceId(o, &(*p)->referenceId, 1, 0) &&
odr_implicit_settag(o, ODR_CONTEXT, 3) &&
odr_sequence_of(o, z_DatabaseName, &(*p)->databaseNames,
- &(*p)->num_databaseNames) &&
- odr_oid(o, &(*p)->attributeSet, 1) &&
- (z_AttributesPlusTerm(o, &(*p)->termListAndStartPoint, 1) ?
- ((*p)->termListAndStartPoint ? 1 :
- z_WillowAttributesPlusTerm(o, &(*p)->termListAndStartPoint, 0)) : 0) &&
+ &(*p)->num_databaseNames, 0) &&
+ odr_oid(o, &(*p)->attributeSet, 1, 0) &&
+ (z_AttributesPlusTerm(o, &(*p)->termListAndStartPoint, 1, 0) ?
+ ((*p)->termListAndStartPoint ? 1 :
+ z_WillowAttributesPlusTerm(o, &(*p)->termListAndStartPoint, 0, 0))
+ : 0) &&
odr_implicit(o, odr_integer, &(*p)->stepSize, ODR_CONTEXT, 5, 1) &&
odr_implicit(o, odr_integer, &(*p)->numberOfTermsRequested,
- ODR_CONTEXT, 6, 0) &&
+ ODR_CONTEXT, 6, 0) &&
odr_implicit(o, odr_integer, &(*p)->preferredPositionInResponse,
- ODR_CONTEXT, 7, 1) &&
+ ODR_CONTEXT, 7, 1) &&
odr_sequence_end(o);
}
-int z_ScanResponse(ODR o, Z_ScanResponse **p, int opt)
+int z_ScanResponse(ODR o, Z_ScanResponse **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- z_ReferenceId(o, &(*p)->referenceId, 1) &&
+ z_ReferenceId(o, &(*p)->referenceId, 1, 0) &&
odr_implicit(o, odr_integer, &(*p)->stepSize, ODR_CONTEXT, 3, 1) &&
odr_implicit(o, odr_integer, &(*p)->scanStatus, ODR_CONTEXT, 4, 0) &&
odr_implicit(o, odr_integer, &(*p)->numberOfEntriesReturned,
- ODR_CONTEXT, 5, 0) &&
- odr_implicit(o, odr_integer, &(*p)->positionOfTerm, ODR_CONTEXT, 6, 1)&&
+ ODR_CONTEXT, 5, 0) &&
+ odr_implicit(o, odr_integer, &(*p)->positionOfTerm,
+ ODR_CONTEXT, 6, 1) &&
odr_implicit(o, z_ListEntries, &(*p)->entries, ODR_CONTEXT, 7, 1) &&
odr_implicit(o, odr_oid, &(*p)->attributeSet, ODR_CONTEXT, 8, 1) &&
- z_OtherInformation(o, &(*p)->otherInfo, 1) &&
+ z_OtherInformation(o, &(*p)->otherInfo, 1, 0) &&
odr_sequence_end(o);
}
/* ------------------------ SEARCHRESPONSE ----------------*/
-int z_NumberOfRecordsReturned(ODR o, int **p, int opt)
+int z_NumberOfRecordsReturned(ODR o, int **p, int opt, const char *name)
{
return odr_implicit(o, odr_integer, p, ODR_CONTEXT, 24, opt);
}
-int z_NextResultSetPosition(ODR o, int **p, int opt)
+int z_NextResultSetPosition(ODR o, int **p, int opt, const char *name)
{
return odr_implicit(o, odr_integer, p, ODR_CONTEXT, 25, opt);
}
-int z_PresentStatus(ODR o, int **p, int opt)
+int z_PresentStatus(ODR o, int **p, int opt, const char *name)
{
return odr_implicit(o, odr_integer, p, ODR_CONTEXT, 27, opt);
}
-int z_SearchResponse(ODR o, Z_SearchResponse **p, int opt)
+int z_SearchResponse(ODR o, Z_SearchResponse **p, int opt, const char *name)
{
Z_SearchResponse *pp;
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
pp = *p;
return
- z_ReferenceId(o, &pp->referenceId, 1) &&
+ z_ReferenceId(o, &pp->referenceId, 1, 0) &&
odr_implicit(o, odr_integer, &pp->resultCount, ODR_CONTEXT, 23, 0) &&
- z_NumberOfRecordsReturned(o, &pp->numberOfRecordsReturned, 0) &&
- z_NextResultSetPosition(o, &pp->nextResultSetPosition, 0) &&
+ z_NumberOfRecordsReturned(o, &pp->numberOfRecordsReturned, 0, 0) &&
+ z_NextResultSetPosition(o, &pp->nextResultSetPosition, 0, 0) &&
odr_implicit(o, odr_bool, &pp->searchStatus, ODR_CONTEXT, 22, 0) &&
- odr_implicit(o, odr_integer, &pp->resultSetStatus, ODR_CONTEXT, 26,
- 1) &&
- z_PresentStatus(o, &pp->presentStatus, 1) &&
- z_Records(o, &pp->records, 1) &&
-#ifdef Z_95
+ odr_implicit(o, odr_integer, &pp->resultSetStatus,
+ ODR_CONTEXT, 26, 1) &&
+ z_PresentStatus(o, &pp->presentStatus, 1, 0) &&
+ z_Records(o, &pp->records, 1, 0) &&
odr_implicit(o, z_OtherInformation, &(*p)->additionalSearchInfo,
- ODR_CONTEXT, 203, 1) &&
- z_OtherInformation(o, &(*p)->otherInfo, 1) &&
-#endif
+ ODR_CONTEXT, 203, 1) &&
+ z_OtherInformation(o, &(*p)->otherInfo, 1, 0) &&
odr_sequence_end(o);
}
/* --------------------- PRESENT SERVICE ---------------------- */
-int z_ElementSpec(ODR o, Z_ElementSpec **p, int opt)
+int z_ElementSpec(ODR o, Z_ElementSpec **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
{ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ElementSpec_elementSetName,
- odr_visiblestring},
+ odr_visiblestring, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ElementSpec_externalSpec,
- (Odr_fun)z_External},
- {-1, -1, -1, -1, 0}
+ (Odr_fun)z_External, 0},
+ {-1, -1, -1, -1, 0, 0}
};
if (o->direction == ODR_DECODE)
else if (!*p)
return opt;
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_Specification(ODR o, Z_Specification **p, int opt)
+int z_Specification(ODR o, Z_Specification **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, odr_oid, &(*p)->schema, ODR_CONTEXT, 1, 1) &&
- z_ElementSpec(o, &(*p)->elementSpec, 1) &&
+ z_ElementSpec(o, &(*p)->elementSpec, 1, 0) &&
odr_sequence_end(o);
}
-int z_DbSpecific(ODR o, Z_DbSpecific **p, int opt)
+int z_DbSpecific(ODR o, Z_DbSpecific **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_explicit(o, z_DatabaseName, &(*p)->databaseName, ODR_CONTEXT,
odr_sequence_end(o);
}
-int z_CompSpec(ODR o, Z_CompSpec **p, int opt)
+int z_CompSpec(ODR o, Z_CompSpec **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, odr_bool, &(*p)->selectAlternativeSyntax, ODR_CONTEXT,
- 1, 0) &&
+ 1, 0) &&
odr_implicit(o, z_Specification, &(*p)->generic, ODR_CONTEXT, 2, 1) &&
odr_implicit_settag(o, ODR_CONTEXT, 3) &&
(odr_sequence_of(o, (Odr_fun)z_DbSpecific, &(*p)->dbSpecific,
- &(*p)->num_dbSpecific) || odr_ok(o)) &&
+ &(*p)->num_dbSpecific, 0) || odr_ok(o)) &&
odr_implicit_settag(o, ODR_CONTEXT, 4) &&
(odr_sequence_of(o, (Odr_fun)odr_oid, &(*p)->recordSyntax,
- &(*p)->num_recordSyntax) || odr_ok(o)) &&
+ &(*p)->num_recordSyntax, 0) || odr_ok(o)) &&
odr_sequence_end(o);
}
-int z_RecordComposition(ODR o, Z_RecordComposition **p, int opt)
+int z_RecordComposition(ODR o, Z_RecordComposition **p, int opt,
+ const char *name)
{
static Odr_arm arm[] =
{
{ODR_EXPLICIT, ODR_CONTEXT, 19, Z_RecordComp_simple,
- (Odr_fun)z_ElementSetNames},
+ (Odr_fun)z_ElementSetNames, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 209, Z_RecordComp_complex,
- (Odr_fun)z_CompSpec},
- {-1, -1, -1, -1, 0}
+ (Odr_fun)z_CompSpec, 0},
+ {-1, -1, -1, -1, 0, 0}
};
-
+
if (o->direction == ODR_DECODE)
*p = (Z_RecordComposition *)odr_malloc(o, sizeof(**p));
else if (!*p)
return opt;
-
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_Range(ODR o, Z_Range **p, int opt)
+int z_Range(ODR o, Z_Range **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- odr_implicit(o, odr_integer, &(*p)->startingPosition, ODR_CONTEXT,
- 1, 0) &&
- odr_implicit(o, odr_integer, &(*p)->numberOfRecords, ODR_CONTEXT,
- 2, 0) &&
+ odr_implicit(o, odr_integer, &(*p)->startingPosition,
+ ODR_CONTEXT, 1, 0) &&
+ odr_implicit(o, odr_integer, &(*p)->numberOfRecords,
+ ODR_CONTEXT, 2, 0) &&
odr_sequence_end(o);
}
-int z_PresentRequest(ODR o, Z_PresentRequest **p, int opt)
+int z_PresentRequest(ODR o, Z_PresentRequest **p, int opt, const char *name)
{
Z_PresentRequest *pp;
-
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
pp = *p;
return
- z_ReferenceId(o, &pp->referenceId, 1) &&
- z_ResultSetId(o, &pp->resultSetId, 0) &&
- odr_implicit(o, odr_integer, &pp->resultSetStartPoint, ODR_CONTEXT,
- 30, 0) &&
- odr_implicit(o, odr_integer, &pp->numberOfRecordsRequested, ODR_CONTEXT,
- 29, 0) &&
-#ifdef Z_95
+ z_ReferenceId(o, &pp->referenceId, 1, 0) &&
+ z_ResultSetId(o, &pp->resultSetId, 0, 0) &&
+ odr_implicit(o, odr_integer, &pp->resultSetStartPoint,
+ ODR_CONTEXT, 30, 0) &&
+ odr_implicit(o, odr_integer, &pp->numberOfRecordsRequested,
+ ODR_CONTEXT, 29, 0) &&
odr_implicit_settag(o, ODR_CONTEXT, 212) &&
(odr_sequence_of(o, (Odr_fun)z_Range, &(*p)->additionalRanges,
- &(*p)->num_ranges) || odr_ok(o)) &&
- z_RecordComposition(o, &(*p)->recordComposition, 1) &&
-#else
- odr_explicit(o, z_ElementSetNames, &pp->elementSetNames, ODR_CONTEXT,
- 19, 1) &&
-#endif
+ &(*p)->num_ranges, 0) || odr_ok(o)) &&
+ z_RecordComposition(o, &(*p)->recordComposition, 1, 0) &&
odr_implicit(o, odr_oid, &(*p)->preferredRecordSyntax, ODR_CONTEXT,
- 104, 1) &&
-#ifdef Z_95
+ 104, 1) &&
odr_implicit(o, odr_integer, &(*p)->maxSegmentCount, ODR_CONTEXT,
- 204, 1) &&
+ 204, 1) &&
odr_implicit(o, odr_integer, &(*p)->maxRecordSize, ODR_CONTEXT,
- 206, 1) &&
+ 206, 1) &&
odr_implicit(o, odr_integer, &(*p)->maxSegmentSize, ODR_CONTEXT,
- 207, 1) &&
- z_OtherInformation(o, &(*p)->otherInfo, 1) &&
-#endif
+ 207, 1) &&
+ z_OtherInformation(o, &(*p)->otherInfo, 1, 0) &&
odr_sequence_end(o);
}
-int z_PresentResponse(ODR o, Z_PresentResponse **p, int opt)
+int z_PresentResponse(ODR o, Z_PresentResponse **p, int opt, const char *name)
{
Z_PresentResponse *pp;
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
pp = *p;
return
- z_ReferenceId(o, &pp->referenceId, 1) &&
- z_NumberOfRecordsReturned(o, &pp->numberOfRecordsReturned, 0) &&
- z_NextResultSetPosition(o, &pp->nextResultSetPosition, 0) &&
- z_PresentStatus(o, &pp->presentStatus, 0) &&
- z_Records(o, &pp->records, 1) &&
-#ifdef Z_95
- z_OtherInformation(o, &(*p)->otherInfo, 1) &&
-#endif
+ z_ReferenceId(o, &pp->referenceId, 1, 0) &&
+ z_NumberOfRecordsReturned(o, &pp->numberOfRecordsReturned, 0, 0) &&
+ z_NextResultSetPosition(o, &pp->nextResultSetPosition, 0, 0) &&
+ z_PresentStatus(o, &pp->presentStatus, 0, 0) &&
+ z_Records(o, &pp->records, 1, 0) &&
+ z_OtherInformation(o, &(*p)->otherInfo, 1, 0) &&
odr_sequence_end(o);
}
/* ----------------------DELETE -------------------------- */
-int z_DeleteSetStatus(ODR o, int **p, int opt)
+int z_DeleteSetStatus(ODR o, int **p, int opt, const char *name)
{
return odr_implicit(o, odr_integer, p, ODR_CONTEXT, 33, opt);
}
-int z_ListStatus(ODR o, Z_ListStatus **p, int opt)
+int z_ListStatus(ODR o, Z_ListStatus **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- z_ResultSetId(o, &(*p)->id, 0) &&
- z_DeleteSetStatus(o, &(*p)->status, 0) &&
+ z_ResultSetId(o, &(*p)->id, 0, 0) &&
+ z_DeleteSetStatus(o, &(*p)->status, 0, 0) &&
odr_sequence_end(o);
}
-int z_DeleteResultSetRequest(ODR o, Z_DeleteResultSetRequest **p, int opt)
+int z_DeleteResultSetRequest(ODR o, Z_DeleteResultSetRequest **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- z_ReferenceId(o, &(*p)->referenceId, 1) &&
+ z_ReferenceId(o, &(*p)->referenceId, 1, 0) &&
odr_implicit(o, odr_integer, &(*p)->deleteFunction, ODR_CONTEXT, 32,
0) &&
(odr_sequence_of(o, z_ResultSetId, &(*p)->resultSetList,
- &(*p)->num_resultSetList) || odr_ok(o)) &&
-#ifdef Z_95
- z_OtherInformation(o, &(*p)->otherInfo, 1) &&
-#endif
+ &(*p)->num_resultSetList, 0) || odr_ok(o)) &&
+ z_OtherInformation(o, &(*p)->otherInfo, 1, 0) &&
odr_sequence_end(o);
}
-int z_ListStatuses (ODR o, Z_ListStatuses **p, int opt)
+int z_ListStatuses (ODR o, Z_ListStatuses **p, int opt, const char *name)
{
if (!odr_initmember (o, p, sizeof(**p)))
return opt && odr_ok(o);
if (odr_sequence_of (o, (Odr_fun) z_ListStatus, &(*p)->elements,
- &(*p)->num))
+ &(*p)->num, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_DeleteResultSetResponse(ODR o, Z_DeleteResultSetResponse **p, int opt)
+int z_DeleteResultSetResponse(ODR o, Z_DeleteResultSetResponse **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- z_ReferenceId(o, &(*p)->referenceId, 1) &&
+ z_ReferenceId(o, &(*p)->referenceId, 1, 0) &&
odr_implicit(o, z_DeleteSetStatus, &(*p)->deleteOperationStatus,
- ODR_CONTEXT, 0, 0) &&
+ ODR_CONTEXT, 0, 0) &&
odr_implicit (o, z_ListStatuses,
- &(*p)->deleteListStatuses, ODR_CONTEXT, 1, 1) &&
+ &(*p)->deleteListStatuses, ODR_CONTEXT, 1, 1) &&
odr_implicit(o, odr_integer, &(*p)->numberNotDeleted, ODR_CONTEXT,
- 34, 1) &&
+ 34, 1) &&
odr_implicit (o, z_ListStatuses,
- &(*p)->bulkStatuses, ODR_CONTEXT, 35, 1) &&
+ &(*p)->bulkStatuses, ODR_CONTEXT, 35, 1) &&
odr_implicit(o, odr_visiblestring, &(*p)->deleteMessage, ODR_CONTEXT,
- 36, 1) &&
-#ifdef Z_95
- z_OtherInformation(o, &(*p)->otherInfo, 1) &&
-#endif
+ 36, 1) &&
+ z_OtherInformation(o, &(*p)->otherInfo, 1, 0) &&
odr_sequence_end(o);
}
/* ------------------------ SEGMENT SERVICE -------------- */
-int z_Segment(ODR o, Z_Segment **p, int opt)
+int z_Segment(ODR o, Z_Segment **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- z_ReferenceId(o, &(*p)->referenceId, 1) &&
+ z_ReferenceId(o, &(*p)->referenceId, 1, 0) &&
odr_implicit(o, odr_integer, &(*p)->numberOfRecordsReturned,
- ODR_CONTEXT, 24, 0) &&
+ ODR_CONTEXT, 24, 0) &&
odr_implicit_settag(o, ODR_CONTEXT, 0) &&
odr_sequence_of(o, (Odr_fun)z_NamePlusRecord, &(*p)->segmentRecords,
- &(*p)->num_segmentRecords) &&
- z_OtherInformation(o, &(*p)->otherInfo, 1) &&
+ &(*p)->num_segmentRecords, 0) &&
+ z_OtherInformation(o, &(*p)->otherInfo, 1, 0) &&
odr_sequence_end(o);
}
/* ------------------------ CLOSE SERVICE ---------------- */
-int z_Close(ODR o, Z_Close **p, int opt)
+int z_Close(ODR o, Z_Close **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- z_ReferenceId(o, &(*p)->referenceId, 1) &&
- odr_implicit(o, odr_integer, &(*p)->closeReason, ODR_CONTEXT, 211, 0) &&
+ z_ReferenceId(o, &(*p)->referenceId, 1, 0) &&
+ odr_implicit(o, odr_integer, &(*p)->closeReason, ODR_CONTEXT, 211, 0)
+ &&
odr_implicit(o, odr_visiblestring, &(*p)->diagnosticInformation,
- ODR_CONTEXT, 3, 1) &&
+ ODR_CONTEXT, 3, 1) &&
odr_implicit(o, odr_oid, &(*p)->resourceReportFormat, ODR_CONTEXT,
- 4, 1) &&
+ 4, 1) &&
odr_implicit(o, z_External, &(*p)->resourceReport, ODR_CONTEXT,
- 5, 1) &&
-#ifdef Z_95
- z_OtherInformation(o, &(*p)->otherInfo, 1) &&
-#endif
+ 5, 1) &&
+ z_OtherInformation(o, &(*p)->otherInfo, 1, 0) &&
odr_sequence_end(o);
}
/* ------------------------ APDU ------------------------- */
-int z_Permissions(ODR o, Z_Permissions **p, int opt)
+int z_Permissions(ODR o, Z_Permissions **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, z_InternationalString, &(*p)->userId, ODR_CONTEXT,
- 1, 0) &&
+ 1, 0) &&
odr_implicit_settag(o, ODR_CONTEXT, 2) &&
odr_sequence_of(o, (Odr_fun)odr_integer, &(*p)->allowableFunctions,
- &(*p)->num_allowableFunctions) &&
+ &(*p)->num_allowableFunctions, 0) &&
odr_sequence_end(o);
}
-int z_ExtendedServicesRequest(ODR o, Z_ExtendedServicesRequest **p, int opt)
+int z_ExtendedServicesRequest(ODR o, Z_ExtendedServicesRequest **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- z_ReferenceId(o, &(*p)->referenceId, 1) &&
+ z_ReferenceId(o, &(*p)->referenceId, 1, 0) &&
odr_implicit(o, odr_integer, &(*p)->function, ODR_CONTEXT, 3, 0) &&
odr_implicit(o, odr_oid, &(*p)->packageType, ODR_CONTEXT, 4, 0) &&
- odr_implicit(o, z_InternationalString, &(*p)->packageName, ODR_CONTEXT, 5, 1) &&
- odr_implicit(o, z_InternationalString, &(*p)->userId, ODR_CONTEXT, 6, 1) &&
- odr_implicit(o, z_IntUnit, &(*p)->retentionTime, ODR_CONTEXT, 7, 1) &&
- odr_implicit(o, z_Permissions, &(*p)->permissions, ODR_CONTEXT, 8, 1) &&
- odr_implicit(o, z_InternationalString, &(*p)->description, ODR_CONTEXT, 9, 1) &&
- odr_implicit(o, z_External, &(*p)->taskSpecificParameters, ODR_CONTEXT, 10, 1) &&
- odr_implicit(o, odr_integer, &(*p)->waitAction, ODR_CONTEXT, 11, 0) &&
- z_ElementSetName(o, &(*p)->elements, 1) &&
- z_OtherInformation(o, &(*p)->otherInfo, 1) &&
+ odr_implicit(o, z_InternationalString, &(*p)->packageName,
+ ODR_CONTEXT, 5, 1) &&
+ odr_implicit(o, z_InternationalString, &(*p)->userId,
+ ODR_CONTEXT, 6, 1) &&
+ odr_implicit(o, z_IntUnit, &(*p)->retentionTime,
+ ODR_CONTEXT, 7, 1) &&
+ odr_implicit(o, z_Permissions, &(*p)->permissions,
+ ODR_CONTEXT, 8, 1) &&
+ odr_implicit(o, z_InternationalString, &(*p)->description,
+ ODR_CONTEXT, 9, 1) &&
+ odr_implicit(o, z_External, &(*p)->taskSpecificParameters,
+ ODR_CONTEXT, 10, 1) &&
+ odr_implicit(o, odr_integer, &(*p)->waitAction,
+ ODR_CONTEXT, 11, 0) &&
+ z_ElementSetName(o, &(*p)->elements, 1, 0) &&
+ z_OtherInformation(o, &(*p)->otherInfo, 1, 0) &&
odr_sequence_end(o);
}
-int z_ExtendedServicesResponse(ODR o, Z_ExtendedServicesResponse **p, int opt)
+int z_ExtendedServicesResponse(ODR o, Z_ExtendedServicesResponse **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- z_ReferenceId(o, &(*p)->referenceId, 1) &&
- odr_implicit(o, odr_integer, &(*p)->operationStatus, ODR_CONTEXT, 3, 0) &&
+ z_ReferenceId(o, &(*p)->referenceId, 1, 0) &&
+ odr_implicit(o, odr_integer, &(*p)->operationStatus, ODR_CONTEXT,
+ 3, 0) &&
odr_implicit_settag(o, ODR_CONTEXT, 4) &&
(odr_sequence_of(o, (Odr_fun)z_DiagRec, &(*p)->diagnostics,
- &(*p)->num_diagnostics) || odr_ok(o)) &&
+ &(*p)->num_diagnostics, 0) || odr_ok(o)) &&
odr_implicit(o, z_External, &(*p)->taskPackage, ODR_CONTEXT, 5, 1) &&
- z_OtherInformation(o, &(*p)->otherInfo, 1) &&
+ z_OtherInformation(o, &(*p)->otherInfo, 1, 0) &&
odr_sequence_end(o);
}
/* ------------------------ SORT ------------------------- */
-int z_SortAttributes(ODR o, Z_SortAttributes **p, int opt)
+int z_SortAttributes(ODR o, Z_SortAttributes **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- odr_oid(o, &(*p)->id, 0) &&
- z_AttributeList(o, &(*p)->list, 0) &&
+ odr_oid(o, &(*p)->id, 0, 0) &&
+ z_AttributeList(o, &(*p)->list, 0, 0) &&
odr_sequence_end(o);
}
-int z_SortKey(ODR o, Z_SortKey **p, int opt)
+int z_SortKey(ODR o, Z_SortKey **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
{ODR_IMPLICIT, ODR_CONTEXT, 0, Z_SortKey_sortField,
- z_InternationalString},
- {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_SortKey_elementSpec, (Odr_fun)z_Specification},
+ z_InternationalString, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_SortKey_elementSpec,
+ (Odr_fun)z_Specification, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 2, Z_SortKey_sortAttributes,
- (Odr_fun)z_SortAttributes},
+ (Odr_fun)z_SortAttributes, 0},
{-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))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_SortDbSpecific(ODR o, Z_SortDbSpecific **p, int opt)
+int z_SortDbSpecific(ODR o, Z_SortDbSpecific **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- z_DatabaseName(o, &(*p)->databaseName, 0) &&
- z_SortKey(o, &(*p)->dbSort, 0) &&
+ z_DatabaseName(o, &(*p)->databaseName, 0, 0) &&
+ z_SortKey(o, &(*p)->dbSort, 0, 0) &&
odr_sequence_end(o);
}
-int z_SortDbSpecificList(ODR o, Z_SortDbSpecificList **p, int opt)
+int z_SortDbSpecificList(ODR o, Z_SortDbSpecificList **p, int opt,
+ const char *name)
{
if (!odr_initmember(o, p, sizeof(**p)))
return opt && odr_ok(o);
if (odr_sequence_of(o, (Odr_fun)z_SortDbSpecific, &(*p)->dbSpecific,
- &(*p)->num_dbSpecific))
+ &(*p)->num_dbSpecific, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_SortElement(ODR o, Z_SortElement **p, int opt)
+int z_SortElement(ODR o, Z_SortElement **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
- {ODR_EXPLICIT, ODR_CONTEXT, 1, Z_SortElement_generic, (Odr_fun)z_SortKey},
+ {ODR_EXPLICIT, ODR_CONTEXT, 1, Z_SortElement_generic,
+ (Odr_fun)z_SortKey, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 2, Z_SortElement_databaseSpecific,
- (Odr_fun)z_SortDbSpecificList},
- {-1, -1, -1, -1, 0}
+ (Odr_fun)z_SortDbSpecificList, 0},
+ {-1, -1, -1, -1, 0, 0}
};
-
+
if (!odr_initmember(o, p, sizeof(**p)))
return opt && odr_ok(o);
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_SortMissingValueAction(ODR o, Z_SortMissingValueAction **p, int opt)
+int z_SortMissingValueAction(ODR o, Z_SortMissingValueAction **p, int opt,
+ const char *name)
{
static Odr_arm arm[] =
{
- {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_SortMissingValAct_abort, (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_SortMissingValAct_null, (Odr_fun)odr_null},
+ {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_SortMissingValAct_abort,
+ (Odr_fun)odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_SortMissingValAct_null,
+ (Odr_fun)odr_null, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 3, Z_SortMissingValAct_valData,
- (Odr_fun)odr_octetstring},
- {-1, -1, -1, -1, 0}
+ (Odr_fun)odr_octetstring, 0},
+ {-1, -1, -1, -1, 0, 0}
};
-
+
if (!odr_initmember(o, p, sizeof(**p)))
return opt && odr_ok(o);
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_SortKeySpec(ODR o, Z_SortKeySpec **p, int opt)
+int z_SortKeySpec(ODR o, Z_SortKeySpec **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- z_SortElement(o, &(*p)->sortElement, 0) &&
+ z_SortElement(o, &(*p)->sortElement, 0, 0) &&
odr_implicit(o, odr_integer, &(*p)->sortRelation, ODR_CONTEXT, 1, 0) &&
- odr_implicit(o, odr_integer, &(*p)->caseSensitivity, ODR_CONTEXT,
- 2, 0) &&
+ odr_implicit(o, odr_integer, &(*p)->caseSensitivity,
+ ODR_CONTEXT, 2, 0) &&
odr_explicit(o, z_SortMissingValueAction, &(*p)->missingValueAction,
- ODR_CONTEXT, 3, 1) &&
+ ODR_CONTEXT, 3, 1) &&
odr_sequence_end(o);
}
-int z_SortResponse(ODR o, Z_SortResponse **p, int opt)
+int z_SortResponse(ODR o, Z_SortResponse **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- z_ReferenceId(o, &(*p)->referenceId, 1) &&
+ z_ReferenceId(o, &(*p)->referenceId, 1, 0) &&
odr_implicit(o, odr_integer, &(*p)->sortStatus, ODR_CONTEXT,
- 3, 0) &&
+ 3, 0) &&
odr_implicit(o, odr_integer, &(*p)->resultSetStatus, ODR_CONTEXT,
- 4, 1) &&
+ 4, 1) &&
odr_implicit(o, z_DiagRecs, &(*p)->diagnostics, ODR_CONTEXT, 5, 1) &&
- z_OtherInformation(o, &(*p)->otherInfo, 1) &&
+ z_OtherInformation(o, &(*p)->otherInfo, 1, 0) &&
odr_sequence_end(o);
}
-int z_SortKeySpecList(ODR o, Z_SortKeySpecList **p, int opt)
+int z_SortKeySpecList(ODR o, Z_SortKeySpecList **p, int opt, const char *name)
{
if (!odr_initmember(o, p, sizeof(**p)))
return opt && odr_ok(o);
- if (odr_sequence_of(o, (Odr_fun)z_SortKeySpec, &(*p)->specs, &(*p)->num_specs))
+ if (odr_sequence_of(o, (Odr_fun)z_SortKeySpec, &(*p)->specs,
+ &(*p)->num_specs, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_SortRequest(ODR o, Z_SortRequest **p, int opt)
+int z_SortRequest(ODR o, Z_SortRequest **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- z_ReferenceId(o, &(*p)->referenceId, 1) &&
+ z_ReferenceId(o, &(*p)->referenceId, 1, 0) &&
odr_implicit(o, z_StringList, &(*p)->inputResultSetNames,
- ODR_CONTEXT, 3, 0) &&
+ ODR_CONTEXT, 3, 0) &&
odr_implicit(o, z_InternationalString, &(*p)->sortedResultSetName,
- ODR_CONTEXT, 4, 0) &&
+ ODR_CONTEXT, 4, 0) &&
odr_implicit(o, z_SortKeySpecList, &(*p)->sortSequence, ODR_CONTEXT,
- 5, 0) &&
- z_OtherInformation(o, &(*p)->otherInfo, 1) &&
+ 5, 0) &&
+ z_OtherInformation(o, &(*p)->otherInfo, 1, 0) &&
odr_sequence_end(o);
}
/* ---------------------- Resource Report ---------------- */
-int z_ResourceReportRequest(ODR o, Z_ResourceReportRequest **p, int opt)
+int z_ResourceReportRequest(ODR o, Z_ResourceReportRequest **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- z_ReferenceId(o, &(*p)->referenceId, 1) &&
+ z_ReferenceId(o, &(*p)->referenceId, 1, 0) &&
odr_implicit(o, z_ReferenceId, &(*p)->opId, ODR_CONTEXT, 210, 1) &&
odr_implicit(o, odr_oid, &(*p)->prefResourceReportFormat, ODR_CONTEXT,
- 49, 1) &&
- z_OtherInformation(o, &(*p)->otherInfo, 1) &&
+ 49, 1) &&
+ z_OtherInformation(o, &(*p)->otherInfo, 1, 0) &&
odr_sequence_end(o);
}
-int z_ResourceReportResponse(ODR o, Z_ResourceReportResponse **p, int opt)
+int z_ResourceReportResponse(ODR o, Z_ResourceReportResponse **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- z_ReferenceId(o, &(*p)->referenceId, 1) &&
+ z_ReferenceId(o, &(*p)->referenceId, 1, 0) &&
odr_implicit(o, odr_integer, &(*p)->resourceReportStatus,
- ODR_CONTEXT, 50, 0) &&
+ ODR_CONTEXT, 50, 0) &&
odr_explicit(o, z_External, &(*p)->resourceReport, ODR_CONTEXT,
- 51, 1) &&
- z_OtherInformation(o, &(*p)->otherInfo, 1) &&
+ 51, 1) &&
+ z_OtherInformation(o, &(*p)->otherInfo, 1, 0) &&
odr_sequence_end(o);
}
/* ------------------------ APDU ------------------------- */
-int z_APDU(ODR o, Z_APDU **p, int opt)
+int z_APDU(ODR o, Z_APDU **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
- {ODR_IMPLICIT, ODR_CONTEXT, 20, Z_APDU_initRequest, (Odr_fun)z_InitRequest},
- {ODR_IMPLICIT, ODR_CONTEXT, 21, Z_APDU_initResponse, (Odr_fun)z_InitResponse},
- {ODR_IMPLICIT, ODR_CONTEXT, 22, Z_APDU_searchRequest, (Odr_fun)z_SearchRequest},
+ {ODR_IMPLICIT, ODR_CONTEXT, 20, Z_APDU_initRequest,
+ (Odr_fun)z_InitRequest, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 21, Z_APDU_initResponse,
+ (Odr_fun)z_InitResponse, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 22, Z_APDU_searchRequest,
+ (Odr_fun)z_SearchRequest, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 23, Z_APDU_searchResponse,
- (Odr_fun)z_SearchResponse},
+ (Odr_fun)z_SearchResponse, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 24, Z_APDU_presentRequest,
- (Odr_fun)z_PresentRequest},
+ (Odr_fun)z_PresentRequest, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 25, Z_APDU_presentResponse,
- (Odr_fun)z_PresentResponse},
+ (Odr_fun)z_PresentResponse, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 26, Z_APDU_deleteResultSetRequest,
- (Odr_fun)z_DeleteResultSetRequest},
+ (Odr_fun)z_DeleteResultSetRequest, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 27, Z_APDU_deleteResultSetResponse,
- (Odr_fun)z_DeleteResultSetResponse},
+ (Odr_fun)z_DeleteResultSetResponse, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 28, Z_APDU_accessControlRequest,
- (Odr_fun)z_AccessControlRequest},
+ (Odr_fun)z_AccessControlRequest, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 29, Z_APDU_accessControlResponse,
- (Odr_fun)z_AccessControlResponse},
+ (Odr_fun)z_AccessControlResponse, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 30, Z_APDU_resourceControlRequest,
- (Odr_fun)z_ResourceControlRequest},
+ (Odr_fun)z_ResourceControlRequest, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 31, Z_APDU_resourceControlResponse,
- (Odr_fun)z_ResourceControlResponse},
+ (Odr_fun)z_ResourceControlResponse, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 32, Z_APDU_triggerResourceControlRequest,
- (Odr_fun)z_TriggerResourceControlRequest},
+ (Odr_fun)z_TriggerResourceControlRequest, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 33, Z_APDU_resourceReportRequest,
- (Odr_fun)z_ResourceReportRequest},
+ (Odr_fun)z_ResourceReportRequest, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 34, Z_APDU_resourceReportResponse,
- (Odr_fun)z_ResourceReportResponse},
- {ODR_IMPLICIT, ODR_CONTEXT, 35, Z_APDU_scanRequest, (Odr_fun)z_ScanRequest},
- {ODR_IMPLICIT, ODR_CONTEXT, 36, Z_APDU_scanResponse, (Odr_fun)z_ScanResponse},
- {ODR_IMPLICIT, ODR_CONTEXT, 43, Z_APDU_sortRequest, (Odr_fun)z_SortRequest},
- {ODR_IMPLICIT, ODR_CONTEXT, 44, Z_APDU_sortResponse, (Odr_fun)z_SortResponse},
- {ODR_IMPLICIT, ODR_CONTEXT, 45, Z_APDU_segmentRequest, (Odr_fun)z_Segment},
+ (Odr_fun)z_ResourceReportResponse, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 35, Z_APDU_scanRequest,
+ (Odr_fun)z_ScanRequest, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 36, Z_APDU_scanResponse,
+ (Odr_fun)z_ScanResponse, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 43, Z_APDU_sortRequest,
+ (Odr_fun)z_SortRequest, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 44, Z_APDU_sortResponse,
+ (Odr_fun)z_SortResponse, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 45, Z_APDU_segmentRequest,
+ (Odr_fun)z_Segment, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 46, Z_APDU_extendedServicesRequest,
- (Odr_fun)z_ExtendedServicesRequest},
+ (Odr_fun)z_ExtendedServicesRequest, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 47, Z_APDU_extendedServicesResponse,
- (Odr_fun)z_ExtendedServicesResponse},
- {ODR_IMPLICIT, ODR_CONTEXT, 48, Z_APDU_close, (Odr_fun)z_Close},
-
- {-1, -1, -1, -1, 0}
+ (Odr_fun)z_ExtendedServicesResponse},
+ {ODR_IMPLICIT, ODR_CONTEXT, 48, Z_APDU_close,
+ (Odr_fun)z_Close, 0},
+ {-1, -1, -1, -1, 0, 0}
};
-
+
if (o->direction == ODR_DECODE)
*p = (Z_APDU *)odr_malloc(o, sizeof(**p));
odr_setlenlen(o, 5);
- if (!odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (!odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
{
if (o->direction == ODR_DECODE)
*p = 0;
/*
- * Copyright (c) 1995-1998, Index Data.
+ * Copyright (c) 1995-1999, Index Data.
* See the file LICENSE for details.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: prt-acc.c,v $
- * Revision 1.7 1998-02-11 11:53:32 adam
+ * Revision 1.8 1999-04-20 09:56:47 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.7 1998/02/11 11:53:32 adam
* Changed code so that it compiles as C++.
*
* Revision 1.6 1998/01/05 09:04:57 adam
#include <proto.h>
-int z_Encryption1(ODR o, Z_Encryption1 **p, int opt)
+int z_Encryption1(ODR o, Z_Encryption1 **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- odr_implicit(o, odr_octetstring, &(*p)->cryptType, ODR_CONTEXT, 1, 1) &&
- odr_implicit(o, odr_octetstring, &(*p)->credential, ODR_CONTEXT, 2,
- 1) &&
+ odr_implicit(o, odr_octetstring, &(*p)->cryptType,
+ ODR_CONTEXT, 1, 1) &&
+ odr_implicit(o, odr_octetstring, &(*p)->credential,
+ ODR_CONTEXT, 2, 1) &&
odr_implicit(o, odr_octetstring, &(*p)->data, ODR_CONTEXT, 3, 0) &&
odr_sequence_end(o);
}
-int z_EnumeratedPrompt1(ODR o, Z_EnumeratedPrompt1 **p, int opt)
+int z_EnumeratedPrompt1(ODR o, Z_EnumeratedPrompt1 **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, odr_integer, &(*p)->type, ODR_CONTEXT, 1, 0) &&
odr_implicit(o, odr_visiblestring, &(*p)->suggestedString, ODR_CONTEXT,
- 2, 1) &&
+ 2, 1) &&
odr_sequence_end(o);
}
-int z_PromptId1(ODR o, Z_PromptId1 **p, int opt)
+int z_PromptId1(ODR o, Z_PromptId1 **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
{ODR_IMPLICIT, ODR_CONTEXT, 1, Z_PromptId1_enumeratedPrompt,
- (Odr_fun)z_EnumeratedPrompt1},
+ (Odr_fun)z_EnumeratedPrompt1, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 2, Z_PromptId1_nonEnumeratedPrompt,
- odr_visiblestring},
- {-1, -1, -1, -1, 0}
+ odr_visiblestring, 0},
+ {-1, -1, -1, -1, 0, 0}
};
-
+
if (o->direction == ODR_DECODE)
*p = (Z_PromptId1 *)odr_malloc(o, sizeof(**p));
else if (!*p)
return opt;
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_PromptInfo1(ODR o, Z_PromptInfo1 **p, int opt)
+int z_PromptInfo1(ODR o, Z_PromptInfo1 **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
{ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Challenge1_character,
- odr_visiblestring},
+ odr_visiblestring, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Challenge1_encrypted,
- (Odr_fun)z_Encryption1},
- {-1, -1, -1, -1, 0}
+ (Odr_fun)z_Encryption1, 0},
+ {-1, -1, -1, -1, 0, 0}
};
-
+
if (o->direction == ODR_DECODE)
*p = (Z_PromptInfo1 *)odr_malloc(o, sizeof(**p));
else if (!*p)
return opt;
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_ChallengeUnit1(ODR o, Z_ChallengeUnit1 **p, int opt)
+int z_ChallengeUnit1(ODR o, Z_ChallengeUnit1 **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_explicit(o, z_PromptId1, &(*p)->promptId, ODR_CONTEXT, 1, 0) &&
- odr_implicit(o, odr_visiblestring, &(*p)->defaultResponse, ODR_CONTEXT,
- 2, 1) &&
- odr_explicit(o, z_PromptInfo1, &(*p)->promptInfo, ODR_CONTEXT, 3, 1) &&
- odr_implicit(o, odr_visiblestring, &(*p)->regExpr, ODR_CONTEXT, 4, 1) &&
- odr_implicit(o, odr_null, &(*p)->responseRequired, ODR_CONTEXT, 5, 1) &&
+ odr_implicit(o, odr_visiblestring, &(*p)->defaultResponse,
+ ODR_CONTEXT, 2, 1) &&
+ odr_explicit(o, z_PromptInfo1, &(*p)->promptInfo,
+ ODR_CONTEXT, 3, 1) &&
+ odr_implicit(o, odr_visiblestring, &(*p)->regExpr,
+ ODR_CONTEXT, 4, 1) &&
+ odr_implicit(o, odr_null, &(*p)->responseRequired,
+ ODR_CONTEXT, 5, 1) &&
odr_implicit_settag(o, ODR_CONTEXT, 6) &&
(odr_sequence_of(o, odr_visiblestring, &(*p)->allowedValues,
- &(*p)->num_values) || odr_ok(o)) &&
+ &(*p)->num_values, 0) || odr_ok(o)) &&
odr_implicit(o, odr_null, &(*p)->shouldSave, ODR_CONTEXT, 7, 1) &&
odr_implicit(o, odr_integer, &(*p)->dataType, ODR_CONTEXT, 8, 1) &&
odr_implicit(o, z_External, &(*p)->diagnostic, ODR_CONTEXT, 9, 1) &&
odr_sequence_end(o);
}
-int z_Challenge1(ODR o, Z_Challenge1 **p, int opt)
+int z_Challenge1(ODR o, Z_Challenge1 **p, int opt, const char *name)
{
if (o->direction == ODR_ENCODE)
*p = (Z_Challenge1 *)odr_malloc(o, sizeof(**p));
else if (!*p)
return opt;
if (odr_sequence_of(o, (Odr_fun)z_ChallengeUnit1, &(*p)->list,
- &(*p)->num_challenges))
+ &(*p)->num_challenges, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_DiagRec(ODR, Z_DiagRec **, int);
-
-int z_ResponseUnit1(ODR o, Z_ResponseUnit1 **p, int opt)
+int z_ResponseUnit1(ODR o, Z_ResponseUnit1 **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
- {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Response1_string, odr_visiblestring},
- {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Response1_accept, (Odr_fun)odr_bool},
- {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Response1_acknowledge, (Odr_fun)odr_null},
- {ODR_EXPLICIT, ODR_CONTEXT, 4, Z_Response1_diagnostic, (Odr_fun)z_DiagRec},
- {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_Response1_encrypted, (Odr_fun)z_Encryption1},
- {-1, -1, -1, -1, 0}
+ {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Response1_string,
+ odr_visiblestring, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Response1_accept,
+ (Odr_fun)odr_bool, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Response1_acknowledge,
+ (Odr_fun)odr_null, 0},
+ {ODR_EXPLICIT, ODR_CONTEXT, 4, Z_Response1_diagnostic,
+ (Odr_fun)z_DiagRec, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_Response1_encrypted,
+ (Odr_fun)z_Encryption1, 0},
+ {-1, -1, -1, -1, 0, 0}
};
-
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_explicit(o, z_PromptId1, &(*p)->promptId, ODR_CONTEXT, 1, 0) &&
- odr_constructed_begin(o, p, ODR_CONTEXT, 2) &&
- odr_choice(o, arm, &(*p)->u, &(*p)->which) &&
+ odr_constructed_begin(o, p, ODR_CONTEXT, 2, 0) &&
+ odr_choice(o, arm, &(*p)->u, &(*p)->which, 0) &&
odr_constructed_end(o) &&
odr_sequence_end(o);
}
-int z_Response1(ODR o, Z_Response1 **p, int opt)
+int z_Response1(ODR o, Z_Response1 **p, int opt, const char *name)
{
if (o->direction == ODR_ENCODE)
*p = (Z_Response1 *)odr_malloc(o, sizeof(**p));
else if (!*p)
return opt;
if (odr_sequence_of(o, (Odr_fun)z_ResponseUnit1, &(*p)->list,
- &(*p)->num_responses))
+ &(*p)->num_responses, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_PromptObject1(ODR o, Z_PromptObject1 **p, int opt)
+int z_PromptObject1(ODR o, Z_PromptObject1 **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
- {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_PromptObject1_challenge, (Odr_fun)z_Challenge1},
- {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_PromptObject1_response, (Odr_fun)z_Response1},
- {-1, -1, -1, -1, 0}
+ {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_PromptObject1_challenge,
+ (Odr_fun)z_Challenge1, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_PromptObject1_response,
+ (Odr_fun)z_Response1, 0},
+ {-1, -1, -1, -1, 0, 0}
};
-
+
if (o->direction == ODR_DECODE)
*p = (Z_PromptObject1 *)odr_malloc(o, sizeof(**p));
else if (!*p)
return opt;
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
/*
- * Copyright (c) 1995-1998, Index Data
+ * Copyright (c) 1995-1999, Index Data
* See the file LICENSE for details.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: prt-add.c,v $
- * Revision 1.4 1998-02-11 11:53:32 adam
+ * Revision 1.5 1999-04-20 09:56:47 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.4 1998/02/11 11:53:32 adam
* Changed code so that it compiles as C++.
*
* Revision 1.3 1998/01/05 09:04:57 adam
#include <proto.h>
-int z_ResultsByDBList (ODR o, Z_ResultsByDBList **p, int opt)
+int z_ResultsByDBList (ODR o, Z_ResultsByDBList **p, int opt, const char *name)
{
if (!odr_initmember (o, p, sizeof(**p)))
return opt && odr_ok(o);
if (odr_sequence_of (o, z_DatabaseName, &(*p)->elements,
- &(*p)->num))
+ &(*p)->num, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_ResultsByDB_elem (ODR o, Z_ResultsByDB_elem **p, int opt)
+int z_ResultsByDB_elem (ODR o, Z_ResultsByDB_elem **p, int opt,
+ const char *name)
{
static Odr_arm arm[] = {
- {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ResultsByDB_all, (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ResultsByDB_list, (Odr_fun)z_ResultsByDBList},
- {-1, -1, -1, -1, 0}
+ {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ResultsByDB_all,
+ (Odr_fun)odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ResultsByDB_list,
+ (Odr_fun)z_ResultsByDBList, 0},
+ {-1, -1, -1, -1, 0, 0}
};
- if (!odr_sequence_begin (o, p, sizeof(**p)))
+ if (!odr_sequence_begin (o, p, sizeof(**p), 0))
return opt && odr_ok (o);
return
- odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1) &&
- odr_choice (o, arm, &(*p)->u, &(*p)->which) &&
+ odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1, 0) &&
+ odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) &&
odr_constructed_end (o) &&
odr_implicit (o, odr_integer,
- &(*p)->count, ODR_CONTEXT, 2, 1) &&
+ &(*p)->count, ODR_CONTEXT, 2, 1) &&
odr_implicit (o, z_InternationalString,
- &(*p)->resultSetName, ODR_CONTEXT, 3, 1) &&
+ &(*p)->resultSetName, ODR_CONTEXT, 3, 1) &&
odr_sequence_end (o);
}
-int z_ResultsByDB (ODR o, Z_ResultsByDB **p, int opt)
+int z_ResultsByDB (ODR o, Z_ResultsByDB **p, int opt, const char *name)
{
if (!odr_initmember (o, p, sizeof(**p)))
return opt && odr_ok(o);
if (odr_sequence_of (o, (Odr_fun)z_ResultsByDB_elem, &(*p)->elements,
- &(*p)->num))
+ &(*p)->num, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_QueryExpressionTerm (ODR o, Z_QueryExpressionTerm **p, int opt)
+int z_QueryExpressionTerm (ODR o, Z_QueryExpressionTerm **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin (o, p, sizeof(**p)))
+ if (!odr_sequence_begin (o, p, sizeof(**p), 0))
return opt && odr_ok (o);
return
odr_explicit (o, z_Term,
- &(*p)->queryTerm, ODR_CONTEXT, 1, 0) &&
+ &(*p)->queryTerm, ODR_CONTEXT, 1, 0) &&
odr_implicit (o, z_InternationalString,
- &(*p)->termComment, ODR_CONTEXT, 2, 1) &&
+ &(*p)->termComment, ODR_CONTEXT, 2, 1) &&
odr_sequence_end (o);
}
-int z_QueryExpression (ODR o, Z_QueryExpression **p, int opt)
+int z_QueryExpression (ODR o, Z_QueryExpression **p, int opt,
+ const char *name)
{
static Odr_arm arm[] = {
{ODR_IMPLICIT, ODR_CONTEXT, 1, Z_QueryExpression_term,
- (Odr_fun)z_QueryExpressionTerm},
- {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_QueryExpression_query, (Odr_fun)z_Query},
- {-1, -1, -1, -1, 0}
+ (Odr_fun)z_QueryExpressionTerm, 0},
+ {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_QueryExpression_query,
+ (Odr_fun)z_Query, 0},
+ {-1, -1, -1, -1, 0, 0}
};
if (!odr_initmember(o, p, sizeof(**p)))
return opt && odr_ok(o);
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_SearchInfoReport_elem (ODR o, Z_SearchInfoReport_elem **p, int opt)
+int z_SearchInfoReport_elem (ODR o, Z_SearchInfoReport_elem **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin (o, p, sizeof(**p)))
+ if (!odr_sequence_begin (o, p, sizeof(**p), 0))
return opt && odr_ok (o);
return
odr_implicit (o, z_InternationalString,
- &(*p)->subqueryId, ODR_CONTEXT, 1, 1) &&
+ &(*p)->subqueryId, ODR_CONTEXT, 1, 1) &&
odr_implicit (o, odr_bool,
- &(*p)->fullQuery, ODR_CONTEXT, 2, 0) &&
+ &(*p)->fullQuery, ODR_CONTEXT, 2, 0) &&
odr_explicit (o, z_QueryExpression,
- &(*p)->subqueryExpression, ODR_CONTEXT, 3, 1) &&
+ &(*p)->subqueryExpression, ODR_CONTEXT, 3, 1) &&
odr_explicit (o, z_QueryExpression,
- &(*p)->subqueryInterpretation, ODR_CONTEXT, 4, 1) &&
+ &(*p)->subqueryInterpretation, ODR_CONTEXT, 4, 1) &&
odr_explicit (o, z_QueryExpression,
- &(*p)->subqueryRecommendation, ODR_CONTEXT, 5, 1) &&
+ &(*p)->subqueryRecommendation, ODR_CONTEXT, 5, 1) &&
odr_implicit (o, odr_integer,
- &(*p)->subqueryCount, ODR_CONTEXT, 6, 1) &&
+ &(*p)->subqueryCount, ODR_CONTEXT, 6, 1) &&
odr_implicit (o, z_IntUnit,
- &(*p)->subqueryWeight, ODR_CONTEXT, 7, 1) &&
+ &(*p)->subqueryWeight, ODR_CONTEXT, 7, 1) &&
odr_implicit (o, z_ResultsByDB,
- &(*p)->resultsByDB, ODR_CONTEXT, 8, 1) &&
+ &(*p)->resultsByDB, ODR_CONTEXT, 8, 1) &&
odr_sequence_end (o);
}
-int z_SearchInfoReport (ODR o, Z_SearchInfoReport **p, int opt)
+int z_SearchInfoReport (ODR o, Z_SearchInfoReport **p, int opt,
+ const char *name)
{
if (!odr_initmember (o, p, sizeof(**p)))
return opt && odr_ok(o);
if (odr_sequence_of (o, (Odr_fun)z_SearchInfoReport_elem, &(*p)->elements,
- &(*p)->num))
+ &(*p)->num, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
/*
- * Copyright (c) 1995, Index Data.
+ * Copyright (c) 1995-1999, Index Data.
* See the file LICENSE for details.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: prt-arc.c,v $
- * Revision 1.2 1998-02-11 11:53:32 adam
+ * Revision 1.3 1999-04-20 09:56:47 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.2 1998/02/11 11:53:32 adam
* Changed code so that it compiles as C++.
*
* Revision 1.1 1996/06/10 08:55:20 quinn
/* ----------------------- Summary Record --------------- */
-int z_FormatSpec(ODR o, Z_FormatSpec **p, int opt)
+int z_FormatSpec(ODR o, Z_FormatSpec **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- odr_implicit(o, z_InternationalString, &(*p)->type, ODR_CONTEXT,
- 1, 0) &&
+ odr_implicit(o, z_InternationalString, &(*p)->type,
+ ODR_CONTEXT, 1, 0) &&
odr_implicit(o, odr_integer, &(*p)->size, ODR_CONTEXT, 2, 1) &&
odr_implicit(o, odr_integer, &(*p)->bestPosn, ODR_CONTEXT, 3, 1) &&
odr_sequence_end(o);
}
-int z_BriefBib(ODR o, Z_BriefBib **p, int opt)
+int z_BriefBib(ODR o, Z_BriefBib **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- odr_implicit(o, z_InternationalString, &(*p)->title, ODR_CONTEXT,
- 1, 0) &&
- odr_implicit(o, z_InternationalString, &(*p)->author, ODR_CONTEXT,
- 2, 1) &&
- odr_implicit(o, z_InternationalString, &(*p)->callNumber, ODR_CONTEXT,
- 3, 1) &&
- odr_implicit(o, z_InternationalString, &(*p)->recordType, ODR_CONTEXT,
- 4, 1) &&
+ odr_implicit(o, z_InternationalString, &(*p)->title,
+ ODR_CONTEXT, 1, 0) &&
+ odr_implicit(o, z_InternationalString, &(*p)->author,
+ ODR_CONTEXT, 2, 1) &&
+ odr_implicit(o, z_InternationalString, &(*p)->callNumber,
+ ODR_CONTEXT, 3, 1) &&
+ odr_implicit(o, z_InternationalString, &(*p)->recordType,
+ ODR_CONTEXT, 4, 1) &&
odr_implicit(o, z_InternationalString, &(*p)->bibliographicLevel,
- ODR_CONTEXT, 5, 1) &&
+ ODR_CONTEXT, 5, 1) &&
odr_implicit_settag(o, ODR_CONTEXT, 6) &&
- (odr_sequence_of(o, (Odr_fun)z_FormatSpec, &(*p)->format, &(*p)->num_format) ||
- odr_ok(o)) &&
+ (odr_sequence_of(o, (Odr_fun)z_FormatSpec, &(*p)->format,
+ &(*p)->num_format, 0) ||
+ odr_ok(o)) &&
odr_implicit(o, z_InternationalString, &(*p)->publicationPlace,
- ODR_CONTEXT, 7, 1) &&
+ ODR_CONTEXT, 7, 1) &&
odr_implicit(o, z_InternationalString, &(*p)->publicationDate,
- ODR_CONTEXT, 8, 1) &&
+ ODR_CONTEXT, 8, 1) &&
odr_implicit(o, z_InternationalString, &(*p)->targetSystemKey,
- ODR_CONTEXT, 9, 1) &&
+ ODR_CONTEXT, 9, 1) &&
odr_implicit(o, z_InternationalString, &(*p)->satisfyingElement,
- ODR_CONTEXT, 10, 1) &&
- odr_implicit(o, odr_integer, &(*p)->rank, ODR_CONTEXT, 11, 1) &&
+ ODR_CONTEXT, 10, 1) &&
+ odr_implicit(o, odr_integer, &(*p)->rank,
+ ODR_CONTEXT, 11, 1) &&
odr_implicit(o, z_InternationalString, &(*p)->documentId,
- ODR_CONTEXT, 12, 1) &&
- odr_implicit(o, z_InternationalString, &(*p)->abstract, ODR_CONTEXT,
- 13, 1) &&
- z_OtherInformation(o, &(*p)->otherInfo, 1) &&
+ ODR_CONTEXT, 12, 1) &&
+ odr_implicit(o, z_InternationalString, &(*p)->abstract,
+ ODR_CONTEXT, 13, 1) &&
+ z_OtherInformation(o, &(*p)->otherInfo, 1, 0) &&
odr_sequence_end(o);
}
/* ----------------------- Summary Record --------------- */
-int z_CircRecord(ODR o, Z_CircRecord **p, int opt)
+int z_CircRecord(ODR o, Z_CircRecord **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, odr_bool, &(*p)->availableNow, ODR_CONTEXT, 1, 0) &&
odr_implicit(o, z_InternationalString, &(*p)->availabilityDate,
- ODR_CONTEXT, 2, 1) &&
+ ODR_CONTEXT, 2, 1) &&
odr_implicit(o, z_InternationalString, &(*p)->availableThru,
- ODR_CONTEXT, 3, 1) &&
+ ODR_CONTEXT, 3, 1) &&
odr_implicit(o, z_InternationalString, &(*p)->restrictions,
- ODR_CONTEXT, 4, 1) &&
- odr_implicit(o, z_InternationalString, &(*p)->itemId, ODR_CONTEXT,
- 5, 1) &&
+ ODR_CONTEXT, 4, 1) &&
+ odr_implicit(o, z_InternationalString, &(*p)->itemId,
+ ODR_CONTEXT, 5, 1) &&
odr_implicit(o, odr_bool, &(*p)->renewable, ODR_CONTEXT, 6, 0) &&
odr_implicit(o, odr_bool, &(*p)->onHold, ODR_CONTEXT, 7, 0) &&
odr_implicit(o, z_InternationalString, &(*p)->enumAndChron,
- ODR_CONTEXT, 8, 1) &&
- odr_implicit(o, z_InternationalString, &(*p)->midspine, ODR_CONTEXT,
- 9, 1) &&
+ ODR_CONTEXT, 8, 1) &&
+ odr_implicit(o, z_InternationalString, &(*p)->midspine,
+ ODR_CONTEXT, 9, 1) &&
odr_implicit(o, z_InternationalString, &(*p)->temporaryLocation,
- ODR_CONTEXT, 10, 1) &&
+ ODR_CONTEXT, 10, 1) &&
odr_sequence_end(o);
}
-int z_Volume(ODR o, Z_Volume **p, int opt)
+int z_Volume(ODR o, Z_Volume **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, z_InternationalString, &(*p)->enumeration,
- ODR_CONTEXT, 1, 1) &&
- odr_implicit(o, z_InternationalString, &(*p)->chronology, ODR_CONTEXT,
- 2, 1) &&
+ ODR_CONTEXT, 1, 1) &&
+ odr_implicit(o, z_InternationalString, &(*p)->chronology,
+ ODR_CONTEXT, 2, 1) &&
odr_implicit(o, z_InternationalString, &(*p)->enumAndChron,
- ODR_CONTEXT, 3, 1) &&
+ ODR_CONTEXT, 3, 1) &&
odr_sequence_end(o);
}
-int z_HoldingsAndCircData(ODR o, Z_HoldingsAndCircData **p, int opt)
+int z_HoldingsAndCircData(ODR o, Z_HoldingsAndCircData **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, z_InternationalString, &(*p)->typeOfRecord,
- ODR_CONTEXT, 1, 1) &&
+ ODR_CONTEXT, 1, 1) &&
odr_implicit(o, z_InternationalString, &(*p)->encodingLevel,
- ODR_CONTEXT, 2, 1) &&
- odr_implicit(o, z_InternationalString, &(*p)->format, ODR_CONTEXT,
- 3, 1) &&
+ ODR_CONTEXT, 2, 1) &&
+ odr_implicit(o, z_InternationalString, &(*p)->format,
+ ODR_CONTEXT, 3, 1) &&
odr_implicit(o, z_InternationalString, &(*p)->receiptAcqStatus,
- ODR_CONTEXT, 4, 1) &&
+ ODR_CONTEXT, 4, 1) &&
odr_implicit(o, z_InternationalString, &(*p)->generalRetention,
- ODR_CONTEXT, 5, 1) &&
+ ODR_CONTEXT, 5, 1) &&
odr_implicit(o, z_InternationalString, &(*p)->completeness,
- ODR_CONTEXT, 6, 1) &&
+ ODR_CONTEXT, 6, 1) &&
odr_implicit(o, z_InternationalString, &(*p)->dateOfReport,
- ODR_CONTEXT, 7, 1) &&
- odr_implicit(o, z_InternationalString, &(*p)->nucCode, ODR_CONTEXT,
- 8, 1) &&
+ ODR_CONTEXT, 7, 1) &&
+ odr_implicit(o, z_InternationalString, &(*p)->nucCode,
+ ODR_CONTEXT, 8, 1) &&
odr_implicit(o, z_InternationalString, &(*p)->localLocation,
- ODR_CONTEXT, 9, 1) &&
+ ODR_CONTEXT, 9, 1) &&
odr_implicit(o, z_InternationalString, &(*p)->shelvingLocation,
- ODR_CONTEXT, 10, 1) &&
- odr_implicit(o, z_InternationalString, &(*p)->callNumber, ODR_CONTEXT,
- 11, 1) &&
+ ODR_CONTEXT, 10, 1) &&
+ odr_implicit(o, z_InternationalString, &(*p)->callNumber,
+ ODR_CONTEXT, 11, 1) &&
odr_implicit(o, z_InternationalString, &(*p)->shelvingData,
- ODR_CONTEXT, 12, 1) &&
- odr_implicit(o, z_InternationalString, &(*p)->copyNumber, ODR_CONTEXT,
- 13, 1) &&
- odr_implicit(o, z_InternationalString, &(*p)->publicNote, ODR_CONTEXT,
- 14, 1) &&
+ ODR_CONTEXT, 12, 1) &&
+ odr_implicit(o, z_InternationalString, &(*p)->copyNumber,
+ ODR_CONTEXT, 13, 1) &&
+ odr_implicit(o, z_InternationalString, &(*p)->publicNote,
+ ODR_CONTEXT, 14, 1) &&
odr_implicit(o, z_InternationalString, &(*p)->reproductionNote,
- ODR_CONTEXT, 15, 1) &&
+ ODR_CONTEXT, 15, 1) &&
odr_implicit(o, z_InternationalString, &(*p)->termsUseRepro,
- ODR_CONTEXT, 16, 1) &&
+ ODR_CONTEXT, 16, 1) &&
odr_implicit(o, z_InternationalString, &(*p)->enumAndChron,
- ODR_CONTEXT, 17, 1) &&
+ ODR_CONTEXT, 17, 1) &&
odr_implicit_settag(o, ODR_CONTEXT, 18) &&
- (odr_sequence_of(o, (Odr_fun)z_Volume, &(*p)->volumes, &(*p)->num_volumes) ||
- odr_ok(o)) &&
+ (odr_sequence_of(o, (Odr_fun)z_Volume, &(*p)->volumes,
+ &(*p)->num_volumes, 0) ||
+ odr_ok(o)) &&
odr_implicit_settag(o, ODR_CONTEXT, 19) &&
(odr_sequence_of(o, (Odr_fun)z_CircRecord, &(*p)->circulationData,
- &(*p)->num_circulationData) || odr_ok(o)) &&
+ &(*p)->num_circulationData, 0) || odr_ok(o)) &&
odr_sequence_end(o);
}
-int z_HoldingsRecord(ODR o, Z_HoldingsRecord **p, int opt)
+int z_HoldingsRecord(ODR o, Z_HoldingsRecord **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
{ODR_IMPLICIT, ODR_CONTEXT, 1, Z_HoldingsRecord_marcHoldingsRecord,
- (Odr_fun)z_External},
+ (Odr_fun)z_External, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 2, Z_HoldingsRecord_holdingsAndCirc,
- (Odr_fun)z_HoldingsAndCircData},
- {-1, -1, -1, -1, 0}
+ (Odr_fun)z_HoldingsAndCircData, 0},
+ {-1, -1, -1, -1, 0, 0}
};
-
+
if (!odr_initmember(o, p, sizeof(**p)))
return opt && odr_ok(o);
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_OPACRecord(ODR o, Z_OPACRecord **p, int opt)
+int z_OPACRecord(ODR o, Z_OPACRecord **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, z_External, &(*p)->bibliographicRecord,
- ODR_CONTEXT, 1, 1) &&
+ ODR_CONTEXT, 1, 1) &&
odr_implicit_settag(o, ODR_CONTEXT, 2) &&
(odr_sequence_of(o, (Odr_fun)z_HoldingsRecord, &(*p)->holdingsData,
- &(*p)->num_holdingsData) || odr_ok(o)) &&
+ &(*p)->num_holdingsData, 0) || odr_ok(o)) &&
odr_sequence_end(o);
}
/*
* This file is part of the YAZ toolkit:
- * Copyright (c) 1998, Index Data.
+ * Copyright (c) 1998-1999, Index Data.
* See the file LICENSE for details.
* Sebastian Hammer, Adam Dickmeiss
*
* Databasix Information Systems B.V., Utrecht, The Netherlands.
*
* $Log: prt-dat.c,v $
- * Revision 1.2 1998-02-11 11:53:32 adam
+ * Revision 1.3 1999-04-20 09:56:47 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.2 1998/02/11 11:53:32 adam
* Changed code so that it compiles as C++.
*
* Revision 1.1 1998/02/10 15:31:46 adam
#include <proto.h>
-int z_MonthAndDay(ODR o, Z_MonthAndDay **p, int opt)
+int z_MonthAndDay(ODR o, Z_MonthAndDay **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, odr_integer, &(*p)->month, ODR_CONTEXT, 2, 0) &&
odr_sequence_end(o);
}
-int z_Quarter(ODR o, Z_Quarter **p, int opt)
+int z_Quarter(ODR o, Z_Quarter **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
- {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Quarter_first, (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Quarter_second, (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Quarter_third, (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_Quarter_fourth, (Odr_fun)odr_null},
- {-1, -1, -1, -1, 0}
+ {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Quarter_first,
+ (Odr_fun)odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Quarter_second,
+ (Odr_fun)odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Quarter_third,
+ (Odr_fun)odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_Quarter_fourth,
+ (Odr_fun)odr_null, 0},
+ {-1, -1, -1, -1, 0, 0}
};
-
+
if (!odr_initmember(o, p, sizeof(**p)))
return opt && odr_ok(o);
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_Season(ODR o, Z_Season **p, int opt)
+int z_Season(ODR o, Z_Season **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
- {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Season_winter, (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Season_spring, (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Season_summer, (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_Season_autumn, (Odr_fun)odr_null},
- {-1, -1, -1, -1, 0}
+ {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Season_winter,
+ (Odr_fun)odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Season_spring,
+ (Odr_fun)odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Season_summer,
+ (Odr_fun)odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_Season_autumn,
+ (Odr_fun)odr_null, 0},
+ {-1, -1, -1, -1, 0, 0}
};
if (!odr_initmember(o, p, sizeof(**p)))
return opt && odr_ok(o);
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_PartOfYear(ODR o, Z_PartOfYear **p, int opt)
+int z_PartOfYear(ODR o, Z_PartOfYear **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
{ODR_IMPLICIT, ODR_CONTEXT, 1, Z_PartOfYear_monthAndDay,
- (Odr_fun) z_MonthAndDay},
+ (Odr_fun) z_MonthAndDay, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 2, Z_PartOfYear_julianDay,
- (Odr_fun) odr_integer},
+ (Odr_fun) odr_integer, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 3, Z_PartOfYear_weekNumber,
- (Odr_fun) odr_integer},
+ (Odr_fun) odr_integer, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 4, Z_PartOfYear_quarter,
- (Odr_fun) z_Quarter},
+ (Odr_fun) z_Quarter, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 5, Z_PartOfYear_season,
- (Odr_fun) z_Season},
- {-1, -1, -1, -1, 0}
+ (Odr_fun) z_Season, 0},
+ {-1, -1, -1, -1, 0, 0}
};
-
+
if (!odr_initmember(o, p, sizeof(**p)))
return opt && odr_ok(o);
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_Era(ODR o, Z_Era **p, int opt)
+int z_Era(ODR o, Z_Era **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
- {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Era_decade, (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Era_century, (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Era_millennium, (Odr_fun)odr_null},
- {-1, -1, -1, -1, 0}
+ {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Era_decade, (Odr_fun)odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Era_century, (Odr_fun)odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Era_millennium, (Odr_fun)odr_null, 0},
+ {-1, -1, -1, -1, 0, 0}
};
-
+
if (!odr_initmember(o, p, sizeof(**p)))
return opt && odr_ok(o);
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_DateFlags(ODR o, Z_DateFlags **p, int opt)
+int z_DateFlags(ODR o, Z_DateFlags **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, odr_null, &(*p)->circa, ODR_CONTEXT, 1, 1) &&
odr_sequence_end(o);
}
-int z_Date(ODR o, Z_Date **p, int opt)
+int z_Date(ODR o, Z_Date **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, odr_integer, &(*p)->year, ODR_CONTEXT, 1, 0) &&
odr_sequence_end(o);
}
-int z_Zone(ODR o, Z_Zone **p, int opt)
+int z_Zone(ODR o, Z_Zone **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
- {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Zone_local, (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Zone_utc, (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Zone_utcOffset, (Odr_fun)odr_integer},
- {-1, -1, -1, -1, 0}
+ {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Zone_local, (Odr_fun)odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Zone_utc, (Odr_fun)odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Zone_utcOffset,
+ (Odr_fun)odr_integer, 0},
+ {-1, -1, -1, -1, 0, 0}
};
-
+
if (!odr_initmember(o, p, sizeof(**p)))
return opt && odr_ok(o);
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_Time(ODR o, Z_Time **p, int opt)
+int z_Time(ODR o, Z_Time **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, odr_integer, &(*p)->hour, ODR_CONTEXT, 1, 0) &&
odr_sequence_end(o);
}
-int z_DateTime(ODR o, Z_DateTime **p, int opt)
+int z_DateTime(ODR o, Z_DateTime **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, z_Date, &(*p)->z3950Date, ODR_CONTEXT, 1, 1) &&
/*
- * Copyright (c) 1995, Index Data.
+ * Copyright (c) 1995-1999, Index Data.
* See the file LICENSE for details.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: prt-dia.c,v $
- * Revision 1.5 1998-02-11 11:53:32 adam
+ * Revision 1.6 1999-04-20 09:56:47 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.5 1998/02/11 11:53:32 adam
* Changed code so that it compiles as C++.
*
* Revision 1.4 1996/01/22 09:46:34 quinn
#include <proto.h>
-int z_TooMany(ODR o, Z_TooMany **p, int opt)
+int z_TooMany(ODR o, Z_TooMany **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, odr_integer, &(*p)->tooManyWhat, ODR_CONTEXT, 1, 0) &&
odr_sequence_end(o);
}
-int z_BadSpec(ODR o, Z_BadSpec **p, int opt)
+int z_BadSpec(ODR o, Z_BadSpec **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, z_Specification, &(*p)->spec, ODR_CONTEXT, 1, 0) &&
odr_implicit(o, z_DatabaseName, &(*p)->db, ODR_CONTEXT, 2, 1) &&
odr_implicit_settag(o, ODR_CONTEXT, 3) &&
(odr_sequence_of(o, (Odr_fun)z_Specification, &(*p)->goodOnes,
- &(*p)->num_goodOnes) || odr_ok(o)) &&
+ &(*p)->num_goodOnes, 0) || odr_ok(o)) &&
odr_sequence_end(o);
}
-int z_DbUnavailWhy(ODR o, Z_DbUnavailWhy **p, int opt)
+int z_DbUnavailWhy(ODR o, Z_DbUnavailWhy **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, odr_integer, &(*p)->reasonCode, ODR_CONTEXT, 1, 1) &&
odr_sequence_end(o);
}
-int z_DbUnavail(ODR o, Z_DbUnavail **p, int opt)
+int z_DbUnavail(ODR o, Z_DbUnavail **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, z_DatabaseName, &(*p)->db, ODR_CONTEXT, 1, 0) &&
odr_sequence_end(o);
}
-int z_Attribute(ODR o, Z_Attribute **p, int opt)
+int z_Attribute(ODR o, Z_Attribute **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, odr_oid, &(*p)->id, ODR_CONTEXT, 1, 0) &&
odr_sequence_end(o);
}
-int z_AttCombo(ODR o, Z_AttCombo **p, int opt)
+int z_AttCombo(ODR o, Z_AttCombo **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, z_AttributeList, &(*p)->unsupportedCombination,
ODR_CONTEXT, 1, 0) &&
odr_implicit_settag(o, ODR_CONTEXT, 2) &&
(odr_sequence_of(o, (Odr_fun)z_AttributeList, &(*p)->alternatives,
- &(*p)->num_alternatives) || odr_ok(o)) &&
+ &(*p)->num_alternatives, 0) || odr_ok(o)) &&
odr_sequence_end(o);
}
-int z_DiagTerm(ODR o, Z_DiagTerm **p, int opt)
+int z_DiagTerm(ODR o, Z_DiagTerm **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, odr_integer, &(*p)->problem, ODR_CONTEXT, 1, 1) &&
odr_sequence_end(o);
}
-int z_Proximity(ODR o, Z_Proximity **p, int opt)
+int z_Proximity(ODR o, Z_Proximity **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
- {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Proximity_resultSets, (Odr_fun)odr_null},
+ {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Proximity_resultSets,
+ (Odr_fun)odr_null, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Proximity_badSet,
- (Odr_fun)z_InternationalString},
- {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Proximity_relation, (Odr_fun)odr_integer},
- {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_Proximity_unit, (Odr_fun)odr_integer},
- {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_Proximity_distance, (Odr_fun)odr_integer},
- {ODR_EXPLICIT, ODR_CONTEXT, 6, Z_Proximity_attributes, (Odr_fun)z_AttributeList},
- {ODR_IMPLICIT, ODR_CONTEXT, 7, Z_Proximity_ordered, (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 8, Z_Proximity_exclusion, (Odr_fun)odr_null},
- {-1, -1, -1, -1, 0}
+ (Odr_fun)z_InternationalString, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Proximity_relation,
+ (Odr_fun)odr_integer, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_Proximity_unit,
+ (Odr_fun)odr_integer, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_Proximity_distance,
+ (Odr_fun)odr_integer, 0},
+ {ODR_EXPLICIT, ODR_CONTEXT, 6, Z_Proximity_attributes,
+ (Odr_fun)z_AttributeList, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 7, Z_Proximity_ordered,
+ (Odr_fun)odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 8, Z_Proximity_exclusion,
+ (Odr_fun)odr_null, 0},
+ {-1, -1, -1, -1, 0, 0}
};
-
+
if (o->direction == ODR_DECODE)
*p = (Z_Proximity *)odr_malloc(o, sizeof(**p));
else if (!*p)
return opt;
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_AttrListList(ODR o, Z_AttrListList **p, int opt)
+int z_AttrListList(ODR o, Z_AttrListList **p, int opt, const char *name)
{
if (o->direction == ODR_DECODE)
*p = (Z_AttrListList *)odr_malloc(o, sizeof(**p));
else if (!*p)
return opt;
- if (odr_sequence_of(o, (Odr_fun)z_AttributeList, &(*p)->lists, &(*p)->num_lists))
+ if (odr_sequence_of(o, (Odr_fun)z_AttributeList, &(*p)->lists,
+ &(*p)->num_lists, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_Scan(ODR o, Z_Scan **p, int opt)
+int z_Scan(ODR o, Z_Scan **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
- {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_ScanD_nonZeroStepSize, (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ScanD_specifiedStepSize, (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_ScanD_termList1, (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_ScanD_termList2, (Odr_fun)z_AttrListList},
- {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_ScanD_posInResponse, (Odr_fun)odr_integer},
- {ODR_IMPLICIT, ODR_CONTEXT, 6, Z_ScanD_resources, (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 7, Z_ScanD_endOfList, (Odr_fun)odr_null},
- {-1, -1, -1, -1, 0}
+ {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_ScanD_nonZeroStepSize,
+ (Odr_fun)odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ScanD_specifiedStepSize,
+ (Odr_fun)odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_ScanD_termList1,
+ (Odr_fun)odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_ScanD_termList2,
+ (Odr_fun)z_AttrListList, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_ScanD_posInResponse,
+ (Odr_fun)odr_integer, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 6, Z_ScanD_resources,
+ (Odr_fun)odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 7, Z_ScanD_endOfList,
+ (Odr_fun)odr_null, 0},
+ {-1, -1, -1, -1, 0, 0}
};
-
+
if (o->direction == ODR_DECODE)
*p = (Z_Scan *)odr_malloc(o, sizeof(**p));
else if (!*p)
return opt;
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_Sort(ODR o, Z_Sort **p, int opt)
+int z_Sort(ODR o, Z_Sort **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
- {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_SortD_sequence, (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_SortD_noRsName, (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_SortD_tooMany, (Odr_fun)odr_integer},
- {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_SortD_incompatible, (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_SortD_generic, (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_SortD_dbSpecific, (Odr_fun)odr_null},
+ {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_SortD_sequence,
+ (Odr_fun)odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_SortD_noRsName,
+ (Odr_fun)odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_SortD_tooMany,
+ (Odr_fun)odr_integer, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_SortD_incompatible,
+ (Odr_fun)odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_SortD_generic,
+ (Odr_fun)odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_SortD_dbSpecific,
+ (Odr_fun)odr_null, 0},
#if 0
- {ODR_EXPLICIT, ODR_CONTEXT, 6, Z_SortD_sortElement, (Odr_fun)z_SortElement},
+ {ODR_EXPLICIT, ODR_CONTEXT, 6, Z_SortD_sortElement,
+ (Odr_fun)z_SortElement, 0},
#endif
- {ODR_IMPLICIT, ODR_CONTEXT, 7, Z_SortD_key, (Odr_fun)odr_integer},
- {ODR_IMPLICIT, ODR_CONTEXT, 8, Z_SortD_action, (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 9, Z_SortD_illegal, (Odr_fun)odr_integer},
- {ODR_IMPLICIT, ODR_CONTEXT, 10, Z_SortD_inputTooLarge, (Odr_fun)z_StringList},
- {ODR_IMPLICIT, ODR_CONTEXT, 11, Z_SortD_aggregateTooLarge, (Odr_fun)odr_null},
- {-1, -1, -1, -1, 0}
+ {ODR_IMPLICIT, ODR_CONTEXT, 7, Z_SortD_key,
+ (Odr_fun)odr_integer, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 8, Z_SortD_action,
+ (Odr_fun)odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 9, Z_SortD_illegal,
+ (Odr_fun)odr_integer, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 10, Z_SortD_inputTooLarge,
+ (Odr_fun)z_StringList, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 11, Z_SortD_aggregateTooLarge,
+ (Odr_fun)odr_null, 0},
+ {-1, -1, -1, -1, 0, 0}
};
if (o->direction == ODR_DECODE)
*p = (Z_Sort *)odr_malloc(o, sizeof(**p));
else if (!*p)
return opt;
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_Segmentation(ODR o, Z_Segmentation **p, int opt)
+int z_Segmentation(ODR o, Z_Segmentation **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
- {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_SegmentationD_segments, (Odr_fun)odr_null},
- {-1, -1, -1, -1, 0}
+ {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_SegmentationD_segments,
+ (Odr_fun)odr_null, 0},
+ {-1, -1, -1, -1, 0, 0}
};
if (o->direction == ODR_DECODE)
*p = (Z_Segmentation *)odr_malloc(o, sizeof(**p));
else if (!*p)
return opt;
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_ExtServices(ODR o, Z_ExtServices **p, int opt)
+int z_ExtServices(ODR o, Z_ExtServices **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
- {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_ExtServicesD_req, (Odr_fun)odr_integer},
- {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ExtServicesD_permission, (Odr_fun)odr_integer},
- {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ExtServicesD_immediate, (Odr_fun)odr_integer},
- {-1, -1, -1, -1, 0}
+ {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_ExtServicesD_req,
+ (Odr_fun)odr_integer, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ExtServicesD_permission,
+ (Odr_fun)odr_integer, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ExtServicesD_immediate,
+ (Odr_fun)odr_integer, 0},
+ {-1, -1, -1, -1, 0, 0}
};
-
+
if (o->direction == ODR_DECODE)
*p = (Z_ExtServices *)odr_malloc(o, sizeof(**p));
else if (!*p)
return opt;
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_OidList(ODR o, Z_OidList **p, int opt)
+int z_OidList(ODR o, Z_OidList **p, int opt, const char *name)
{
if (o->direction == ODR_DECODE)
*p = (Z_OidList *)odr_malloc(o, sizeof(**p));
else if (!*p)
return opt;
- if (odr_sequence_of(o, (Odr_fun)odr_oid, &(*p)->oids, &(*p)->num_oids))
+ if (odr_sequence_of(o, (Odr_fun)odr_oid, &(*p)->oids, &(*p)->num_oids, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_AccessCtrl(ODR o, Z_AccessCtrl **p, int opt)
+int z_AccessCtrl(ODR o, Z_AccessCtrl **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
- {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_AccessCtrlD_noUser, (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_AccessCtrlD_refused, (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_AccessCtrlD_simple, (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_AccessCtrlD_oid, (Odr_fun)z_OidList},
- {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_AccessCtrlD_alternative, (Odr_fun)z_OidList},
- {ODR_IMPLICIT, ODR_CONTEXT, 6, Z_AccessCtrlD_pwdInv, (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 7, Z_AccessCtrlD_pwdExp, (Odr_fun)odr_null},
- {-1, -1, -1, -1, 0}
+ {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_AccessCtrlD_noUser,
+ (Odr_fun)odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_AccessCtrlD_refused,
+ (Odr_fun)odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_AccessCtrlD_simple,
+ (Odr_fun)odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_AccessCtrlD_oid,
+ (Odr_fun)z_OidList, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_AccessCtrlD_alternative,
+ (Odr_fun)z_OidList, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 6, Z_AccessCtrlD_pwdInv,
+ (Odr_fun)odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 7, Z_AccessCtrlD_pwdExp,
+ (Odr_fun)odr_null, 0},
+ {-1, -1, -1, -1, 0, 0}
};
if (o->direction == ODR_DECODE)
*p = (Z_AccessCtrl *)odr_malloc(o, sizeof(**p));
else if (!*p)
return opt;
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_RecordSyntax(ODR o, Z_RecordSyntax **p, int opt)
+int z_RecordSyntax(ODR o, Z_RecordSyntax **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- odr_implicit(o, odr_oid, &(*p)->unsupportedSyntax, ODR_CONTEXT, 1, 0) &&
+ odr_implicit(o, odr_oid, &(*p)->unsupportedSyntax,
+ ODR_CONTEXT, 1, 0) &&
odr_implicit_settag(o, ODR_CONTEXT, 2) &&
(odr_sequence_of(o, (Odr_fun)odr_oid, &(*p)->suggestedAlternatives,
- &(*p)->num_suggestedAlternatives) || odr_ok(o)) &&
+ &(*p)->num_suggestedAlternatives, 0) || odr_ok(o)) &&
odr_sequence_end(o);
}
-int z_DiagFormat(ODR o, Z_DiagFormat **p, int opt)
+int z_DiagFormat(ODR o, Z_DiagFormat **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
- {ODR_IMPLICIT, ODR_CONTEXT, 1000, Z_DiagFormat_tooMany, (Odr_fun)z_TooMany},
- {ODR_IMPLICIT, ODR_CONTEXT, 1001, Z_DiagFormat_badSpec, (Odr_fun)z_BadSpec},
- {ODR_IMPLICIT, ODR_CONTEXT, 1002, Z_DiagFormat_dbUnavail, (Odr_fun)z_DbUnavail},
- {ODR_IMPLICIT, ODR_CONTEXT, 1003, Z_DiagFormat_unSupOp, (Odr_fun)odr_integer},
- {ODR_IMPLICIT, ODR_CONTEXT, 1004, Z_DiagFormat_attribute, (Odr_fun)z_Attribute},
- {ODR_IMPLICIT, ODR_CONTEXT, 1005, Z_DiagFormat_attCombo, (Odr_fun)z_AttCombo},
- {ODR_IMPLICIT, ODR_CONTEXT, 1006, Z_DiagFormat_term, (Odr_fun)z_DiagTerm},
- {ODR_EXPLICIT, ODR_CONTEXT, 1007, Z_DiagFormat_proximity, (Odr_fun)z_Proximity},
- {ODR_EXPLICIT, ODR_CONTEXT, 1008, Z_DiagFormat_scan, (Odr_fun)z_Scan},
- {ODR_EXPLICIT, ODR_CONTEXT, 1009, Z_DiagFormat_sort, (Odr_fun)z_Sort},
+ {ODR_IMPLICIT, ODR_CONTEXT, 1000, Z_DiagFormat_tooMany,
+ (Odr_fun)z_TooMany, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 1001, Z_DiagFormat_badSpec,
+ (Odr_fun)z_BadSpec, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 1002, Z_DiagFormat_dbUnavail,
+ (Odr_fun)z_DbUnavail, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 1003, Z_DiagFormat_unSupOp,
+ (Odr_fun)odr_integer, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 1004, Z_DiagFormat_attribute,
+ (Odr_fun)z_Attribute, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 1005, Z_DiagFormat_attCombo,
+ (Odr_fun)z_AttCombo, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 1006, Z_DiagFormat_term,
+ (Odr_fun)z_DiagTerm, 0},
+ {ODR_EXPLICIT, ODR_CONTEXT, 1007, Z_DiagFormat_proximity,
+ (Odr_fun)z_Proximity, 0},
+ {ODR_EXPLICIT, ODR_CONTEXT, 1008, Z_DiagFormat_scan,
+ (Odr_fun)z_Scan, 0},
+ {ODR_EXPLICIT, ODR_CONTEXT, 1009, Z_DiagFormat_sort,
+ (Odr_fun)z_Sort, 0},
{ODR_EXPLICIT, ODR_CONTEXT, 1010, Z_DiagFormat_segmentation,
- (Odr_fun)z_Segmentation},
+ (Odr_fun)z_Segmentation, 0},
{ODR_EXPLICIT, ODR_CONTEXT, 1011, Z_DiagFormat_extServices,
- (Odr_fun)z_ExtServices},
+ (Odr_fun)z_ExtServices, 0},
{ODR_EXPLICIT, ODR_CONTEXT, 1012, Z_DiagFormat_accessCtrl,
- (Odr_fun)z_AccessCtrl},
+ (Odr_fun)z_AccessCtrl, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 1013, Z_DiagFormat_recordSyntax,
- (Odr_fun)z_RecordSyntax},
- {-1, -1, -1, -1, 0}
+ (Odr_fun)z_RecordSyntax, 0},
+ {-1, -1, -1, -1, 0, 0}
};
if (o->direction == ODR_DECODE)
*p = (Z_DiagFormat *)odr_malloc(o, sizeof(**p));
else if (!*p)
return opt;
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_Diagnostic(ODR o, Z_Diagnostic **p, int opt)
+int z_Diagnostic(ODR o, Z_Diagnostic **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
{ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Diagnostic_defaultDiagRec,
- (Odr_fun)z_DefaultDiagFormat},
+ (Odr_fun)z_DefaultDiagFormat, 0},
{ODR_EXPLICIT, ODR_CONTEXT, 2, Z_Diagnostic_explicitDiagnostic,
- (Odr_fun)z_DiagFormat},
- {-1, -1, -1, -1, 0}
+ (Odr_fun)z_DiagFormat, 0},
+ {-1, -1, -1, -1, 0, 0}
};
-
+
if (o->direction == ODR_DECODE)
*p = (Z_Diagnostic *)odr_malloc(o, sizeof(**p));
else if (!*p)
return opt;
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_DiagnosticUnit(ODR o, Z_DiagnosticUnit **p, int opt)
+int z_DiagnosticUnit(ODR o, Z_DiagnosticUnit **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_explicit(o, z_Diagnostic, &(*p)->diagnostic, ODR_CONTEXT, 1, 1) &&
- odr_implicit(o, z_InternationalString, &(*p)->message, ODR_CONTEXT,
- 2, 1) &&
+ odr_implicit(o, z_InternationalString, &(*p)->message,
+ ODR_CONTEXT, 2, 1) &&
odr_sequence_end(o);
}
-int z_DiagnosticFormat(ODR o, Z_DiagnosticFormat **p, int opt)
+int z_DiagnosticFormat(ODR o, Z_DiagnosticFormat **p, int opt,
+ const char *name)
{
if (o->direction == ODR_DECODE)
*p = (Z_DiagnosticFormat *)odr_malloc(o, sizeof(**p));
else if (!*p)
return opt;
if (odr_sequence_of(o, (Odr_fun)z_DiagnosticUnit, &(*p)->diagnostics,
- &(*p)->num_diagnostics))
+ &(*p)->num_diagnostics, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
/*
- * Copyright (c) 1995, Index Data.
+ * Copyright (c) 1995-1999, Index Data.
* See the file LICENSE for details.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: prt-esp.c,v $
- * Revision 1.3 1998-02-11 11:53:32 adam
+ * Revision 1.4 1999-04-20 09:56:47 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.3 1998/02/11 11:53:32 adam
* Changed code so that it compiles as C++.
*
* Revision 1.2 1998/02/10 15:31:46 adam
#include <proto.h>
-int z_OccurValues(ODR o, Z_OccurValues **p, int opt)
+int z_OccurValues(ODR o, Z_OccurValues **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, odr_integer, &(*p)->start, ODR_CONTEXT, 1, 0) &&
odr_sequence_end(o);
}
-int z_Occurrences(ODR o, Z_Occurrences **p, int opt)
+int z_Occurrences(ODR o, Z_Occurrences **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
- {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Occurrences_all, (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Occurrences_last, (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Occurrences_values, (Odr_fun)z_OccurValues},
- {-1, -1, -1, -1, 0}
+ {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Occurrences_all,
+ (Odr_fun)odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Occurrences_last,
+ (Odr_fun)odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Occurrences_values,
+ (Odr_fun)z_OccurValues, 0},
+ {-1, -1, -1, -1, 0, 0}
};
-
+
if (o->direction == ODR_DECODE)
*p = (Z_Occurrences *)odr_malloc(o, sizeof(**p));
else if (!*p)
return opt;
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_SpecificTag(ODR o, Z_SpecificTag **p, int opt)
+int z_SpecificTag(ODR o, Z_SpecificTag **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, odr_oid, &(*p)->schemaId, ODR_CONTEXT, 0, 1) &&
odr_implicit(o, odr_integer, &(*p)->tagType, ODR_CONTEXT, 1, 1) &&
odr_explicit(o, z_StringOrNumeric, &(*p)->tagValue, ODR_CONTEXT,
- 2, 0) &&
- odr_explicit(o, z_Occurrences, &(*p)->occurrences, ODR_CONTEXT, 3, 1) &&
+ 2, 0) &&
+ odr_explicit(o, z_Occurrences, &(*p)->occurrences,
+ ODR_CONTEXT, 3, 1) &&
odr_sequence_end(o);
}
-int z_ETagUnit(ODR o, Z_ETagUnit **p, int opt)
+int z_ETagUnit(ODR o, Z_ETagUnit **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
- {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ETagUnit_specificTag, (Odr_fun)z_SpecificTag},
- {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_ETagUnit_wildThing, (Odr_fun)z_Occurrences},
- {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_ETagUnit_wildPath, (Odr_fun)odr_null},
- {-1, -1, -1 -1, 0}
+ {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ETagUnit_specificTag,
+ (Odr_fun)z_SpecificTag, 0},
+ {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_ETagUnit_wildThing,
+ (Odr_fun)z_Occurrences, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_ETagUnit_wildPath,
+ (Odr_fun)odr_null, 0},
+ {-1, -1, -1 -1, 0, 0}
};
-
+
if (o->direction == ODR_DECODE)
*p = (Z_ETagUnit *)odr_malloc(o, sizeof(**p));
else if (!*p)
return opt;
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_ETagPath(ODR o, Z_ETagPath **p, int opt)
+int z_ETagPath(ODR o, Z_ETagPath **p, int opt, const char *name)
{
if (o->direction == ODR_DECODE)
*p = (Z_ETagPath *)odr_malloc(o, sizeof(**p));
else if (!*p)
return opt;
- if (odr_sequence_of(o, (Odr_fun)z_ETagUnit, &(*p)->tags, &(*p)->num_tags))
+ if (odr_sequence_of(o, (Odr_fun)z_ETagUnit, &(*p)->tags,
+ &(*p)->num_tags, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_SimpleElement(ODR o, Z_SimpleElement **p, int opt)
+int z_SimpleElement(ODR o, Z_SimpleElement **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, z_ETagPath, &(*p)->path, ODR_CONTEXT, 1, 0) &&
- odr_implicit(o, z_Variant, &(*p)->variantRequest, ODR_CONTEXT,
- 2, 1) &&
+ odr_implicit(o, z_Variant, &(*p)->variantRequest,
+ ODR_CONTEXT, 2, 1) &&
odr_sequence_end(o);
}
-int z_CompoPrimitives(ODR o, Z_CompoPrimitives **p, int opt)
+int z_CompoPrimitives(ODR o, Z_CompoPrimitives **p, int opt, const char *name)
{
if (o->direction == ODR_DECODE)
*p = (Z_CompoPrimitives *)odr_malloc(o, sizeof(**p));
else if (!*p)
return opt;
if (odr_sequence_of(o, z_InternationalString, &(*p)->primitives,
- &(*p)->num_primitives))
+ &(*p)->num_primitives, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_CompoSpecs(ODR o, Z_CompoSpecs **p, int opt)
+int z_CompoSpecs(ODR o, Z_CompoSpecs **p, int opt, const char *name)
{
if (o->direction == ODR_DECODE)
*p = (Z_CompoSpecs *)odr_malloc(o, sizeof(**p));
else if (!*p)
return opt;
- if (odr_sequence_of(o, (Odr_fun)z_SimpleElement, &(*p)->specs, &(*p)->num_specs))
+ if (odr_sequence_of(o, (Odr_fun)z_SimpleElement, &(*p)->specs,
+ &(*p)->num_specs, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_CompositeElement(ODR o, Z_CompositeElement **p, int opt)
+int z_CompositeElement(ODR o, Z_CompositeElement **p, int opt,
+ const char *name)
{
static Odr_arm arm[] =
{
{ODR_IMPLICIT, ODR_CONTEXT, 1, Z_CompoElement_primitives,
- (Odr_fun)z_CompoPrimitives},
+ (Odr_fun)z_CompoPrimitives, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 2, Z_CompoElement_specs,
- (Odr_fun)z_CompoSpecs},
- {-1, -1, -1, -1, 0}
+ (Odr_fun)z_CompoSpecs, 0},
+ {-1, -1, -1, -1, 0, 0}
};
-
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- odr_constructed_begin(o, &(*p)->elementList, ODR_CONTEXT, 1) &&
- odr_choice(o, arm, &(*p)->elementList, &(*p)->which) &&
+ odr_constructed_begin(o, &(*p)->elementList, ODR_CONTEXT, 1, 0) &&
+ odr_choice(o, arm, &(*p)->elementList, &(*p)->which, 0) &&
odr_constructed_end(o) &&
odr_implicit(o, z_ETagPath, &(*p)->deliveryTag, ODR_CONTEXT, 2, 0) &&
odr_implicit(o, z_Variant, &(*p)->variantRequest, ODR_CONTEXT, 3, 1) &&
odr_sequence_end(o);
}
-int z_ElementRequest(ODR o, Z_ElementRequest **p, int opt)
+int z_ElementRequest(ODR o, Z_ElementRequest **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
{ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ERequest_simpleElement,
- (Odr_fun)z_SimpleElement},
+ (Odr_fun)z_SimpleElement, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ERequest_compositeElement,
- (Odr_fun)z_CompositeElement},
- {-1, -1, -1 -1, 0}
+ (Odr_fun)z_CompositeElement, 0},
+ {-1, -1, -1 -1, 0, 0}
};
-
+
if (o->direction == ODR_DECODE)
*p = (Z_ElementRequest *)odr_malloc(o, sizeof(**p));
else if (!*p)
return opt;
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_Espec1(ODR o, Z_Espec1 **p, int opt)
+int z_Espec1(ODR o, Z_Espec1 **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit_settag(o, ODR_CONTEXT, 1) &&
(odr_sequence_of(o, z_InternationalString, &(*p)->elementSetNames,
- &(*p)->num_elementSetNames) || odr_ok(o)) &&
- odr_implicit(o, odr_oid, &(*p)->defaultVariantSetId, ODR_CONTEXT,
- 2, 1) &&
- odr_implicit(o, z_Variant, &(*p)->defaultVariantRequest, ODR_CONTEXT,
- 3, 1) &&
- odr_implicit(o, odr_integer, &(*p)->defaultTagType, ODR_CONTEXT,
- 4, 1) &&
+ &(*p)->num_elementSetNames, 0) || odr_ok(o)) &&
+ odr_implicit(o, odr_oid, &(*p)->defaultVariantSetId,
+ ODR_CONTEXT, 2, 1) &&
+ odr_implicit(o, z_Variant, &(*p)->defaultVariantRequest,
+ ODR_CONTEXT, 3, 1) &&
+ odr_implicit(o, odr_integer, &(*p)->defaultTagType,
+ ODR_CONTEXT, 4, 1) &&
odr_implicit_settag(o, ODR_CONTEXT, 5) &&
(odr_sequence_of(o, (Odr_fun)z_ElementRequest, &(*p)->elements,
- &(*p)->num_elements) || odr_ok(o)) &&
+ &(*p)->num_elements, 0) || odr_ok(o)) &&
odr_sequence_end(o);
}
/*
- * Copyright (c) 1995-1998, Index Data.
+ * Copyright (c) 1995-1999, Index Data.
* See the file LICENSE for details.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: prt-exd.c,v $
- * Revision 1.8 1998-02-11 11:53:32 adam
+ * Revision 1.9 1999-04-20 09:56:48 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.8 1998/02/11 11:53:32 adam
* Changed code so that it compiles as C++.
*
* Revision 1.7 1998/02/10 15:31:46 adam
#include <proto.h>
-int z_TaskPackage(ODR o, Z_TaskPackage **p, int opt)
+int z_TaskPackage(ODR o, Z_TaskPackage **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, odr_oid, &(*p)->packageType, ODR_CONTEXT, 1, 0) &&
- odr_implicit(o, z_InternationalString, &(*p)->packageName, ODR_CONTEXT,
- 2, 1) &&
- odr_implicit(o, z_InternationalString, &(*p)->userId, ODR_CONTEXT,
- 3, 1) &&
+ odr_implicit(o, z_InternationalString, &(*p)->packageName,
+ ODR_CONTEXT, 2, 1) &&
+ odr_implicit(o, z_InternationalString, &(*p)->userId,
+ ODR_CONTEXT, 3, 1) &&
odr_implicit(o, z_IntUnit, &(*p)->retentionTime, ODR_CONTEXT, 4, 1) &&
- odr_implicit(o, z_Permissions, &(*p)->permissions, ODR_CONTEXT, 5, 1) &&
- odr_implicit(o, z_InternationalString, &(*p)->description, ODR_CONTEXT,
- 6, 1) &&
- odr_implicit(o, odr_octetstring, &(*p)->targetReference, ODR_CONTEXT,
- 7, 0) &&
+ odr_implicit(o, z_Permissions, &(*p)->permissions,
+ ODR_CONTEXT, 5, 1) &&
+ odr_implicit(o, z_InternationalString, &(*p)->description,
+ ODR_CONTEXT, 6, 1) &&
+ odr_implicit(o, odr_octetstring, &(*p)->targetReference,
+ ODR_CONTEXT, 7, 0) &&
odr_implicit(o, odr_generalizedtime, &(*p)->creationDateTime,
- ODR_CONTEXT,
- 8, 1) &&
- odr_implicit(o, odr_integer, &(*p)->taskStatus, ODR_CONTEXT, 9, 0) &&
+ ODR_CONTEXT, 8, 1) &&
+ odr_implicit(o, odr_integer, &(*p)->taskStatus,
+ ODR_CONTEXT, 9, 0) &&
odr_implicit_settag(o, ODR_CONTEXT, 10) &&
(odr_sequence_of(o, (Odr_fun)z_DiagRec, &(*p)->packageDiagnostics,
- &(*p)->num_packageDiagnostics) || odr_ok(o)) &&
- odr_implicit(o, z_External, &(*p)->taskSpecificParameters, ODR_CONTEXT,
- 11, 0) &&
+ &(*p)->num_packageDiagnostics, 0) || odr_ok(o)) &&
+ odr_implicit(o, z_External, &(*p)->taskSpecificParameters,
+ ODR_CONTEXT, 11, 0) &&
odr_sequence_end(o);
}
/* ----------------------- ITEM ORDER --------------------- */
-int z_IOTargetPart(ODR o, Z_IOTargetPart **p, int opt)
+int z_IOTargetPart(ODR o, Z_IOTargetPart **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, z_External, &(*p)->itemRequest, ODR_CONTEXT, 1, 1) &&
odr_sequence_end(o);
}
-int z_IOResultSetItem(ODR o, Z_IOResultSetItem **p, int opt)
+int z_IOResultSetItem(ODR o, Z_IOResultSetItem **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, z_InternationalString, &(*p)->resultSetId, ODR_CONTEXT,
odr_sequence_end(o);
}
-int z_IOOriginPartNotToKeep(ODR o, Z_IOOriginPartNotToKeep **p, int opt)
+int z_IOOriginPartNotToKeep(ODR o, Z_IOOriginPartNotToKeep **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, z_IOResultSetItem, &(*p)->resultSetItem, ODR_CONTEXT,
odr_sequence_end(o);
}
-int z_IOContact(ODR o, Z_IOContact **p, int opt)
+int z_IOContact(ODR o, Z_IOContact **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, z_InternationalString, &(*p)->name, ODR_CONTEXT,
odr_sequence_end(o);
}
-int z_IOCreditCardInfo(ODR o, Z_IOCreditCardInfo **p, int opt)
+int z_IOCreditCardInfo(ODR o, Z_IOCreditCardInfo **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, z_InternationalString, &(*p)->nameOnCard, ODR_CONTEXT,
odr_sequence_end(o);
}
-int z_IOBilling(ODR o, Z_IOBilling **p, int opt)
+int z_IOBilling(ODR o, Z_IOBilling **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
- {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_IOBilling_billInvoice, (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IOBilling_prepay, (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IOBilling_depositAccount, (Odr_fun)odr_null},
+ {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_IOBilling_billInvoice,
+ (Odr_fun)odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IOBilling_prepay,
+ (Odr_fun)odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IOBilling_depositAccount,
+ (Odr_fun)odr_null, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 3, Z_IOBilling_creditCard,
- (Odr_fun)z_IOCreditCardInfo},
+ (Odr_fun)z_IOCreditCardInfo, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 4, Z_IOBilling_cardInfoPreviouslySupplied,
- (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_IOBilling_privateKnown, (Odr_fun)odr_null},
+ (Odr_fun)odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_IOBilling_privateKnown,
+ (Odr_fun)odr_null, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 6, Z_IOBilling_privateNotKnown,
- (Odr_fun)z_External},
- {-1, -1, -1, -1, 0}
+ (Odr_fun)z_External, 0},
+ {-1, -1, -1, -1, 0, 0}
};
-
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_constructed_begin(o, &(*p)->paymentMethod,
- ODR_CONTEXT, 1) &&
- odr_choice(o, arm, &(*p)->paymentMethod, &(*p)->which) &&
+ ODR_CONTEXT, 1, 0) &&
+ odr_choice(o, arm, &(*p)->paymentMethod, &(*p)->which, 0) &&
odr_constructed_end(o) &&
odr_implicit(o, z_InternationalString, &(*p)->customerReference,
- ODR_CONTEXT, 2, 1) &&
+ ODR_CONTEXT, 2, 1) &&
odr_implicit(o, z_InternationalString, &(*p)->customerPONumber,
- ODR_CONTEXT, 3, 1) &&
+ ODR_CONTEXT, 3, 1) &&
odr_sequence_end(o);
}
-int z_IOOriginPartToKeep(ODR o, Z_IOOriginPartToKeep **p, int opt)
+int z_IOOriginPartToKeep(ODR o, Z_IOOriginPartToKeep **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- odr_implicit(o, z_External, &(*p)->supplDescription, ODR_CONTEXT,
- 1, 1) &&
+ odr_implicit(o, z_External, &(*p)->supplDescription,
+ ODR_CONTEXT, 1, 1) &&
odr_implicit(o, z_IOContact, &(*p)->contact, ODR_CONTEXT, 2, 1) &&
- odr_implicit(o, z_IOBilling, &(*p)->addlBilling, ODR_CONTEXT,
- 3, 1) &&
+ odr_implicit(o, z_IOBilling, &(*p)->addlBilling,
+ ODR_CONTEXT, 3, 1) &&
odr_sequence_end(o);
}
-int z_IORequest(ODR o, Z_IORequest **p, int opt)
+int z_IORequest(ODR o, Z_IORequest **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- odr_implicit(o, z_IOOriginPartToKeep, &(*p)->toKeep, ODR_CONTEXT,
- 1, 1) &&
- odr_implicit(o, z_IOOriginPartNotToKeep, &(*p)->notToKeep, ODR_CONTEXT,
- 2, 0) &&
+ odr_implicit(o, z_IOOriginPartToKeep, &(*p)->toKeep,
+ ODR_CONTEXT, 1, 1) &&
+ odr_implicit(o, z_IOOriginPartNotToKeep, &(*p)->notToKeep,
+ ODR_CONTEXT, 2, 0) &&
odr_sequence_end(o);
}
-int z_IOTaskPackage(ODR o, Z_IOTaskPackage **p, int opt)
+int z_IOTaskPackage(ODR o, Z_IOTaskPackage **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- odr_implicit(o, z_IOOriginPartToKeep, &(*p)->originPart, ODR_CONTEXT,
- 1, 1) &&
- odr_implicit(o, z_IOTargetPart, &(*p)->targetPart, ODR_CONTEXT, 2, 0) &&
+ odr_implicit(o, z_IOOriginPartToKeep, &(*p)->originPart,
+ ODR_CONTEXT, 1, 1) &&
+ odr_implicit(o, z_IOTargetPart, &(*p)->targetPart,
+ ODR_CONTEXT, 2, 0) &&
odr_sequence_end(o);
}
-int z_ItemOrder(ODR o, Z_ItemOrder **p, int opt)
+int z_ItemOrder(ODR o, Z_ItemOrder **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
- {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ItemOrder_esRequest, (Odr_fun)z_IORequest},
+ {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ItemOrder_esRequest,
+ (Odr_fun)z_IORequest, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ItemOrder_taskPackage,
- (Odr_fun)z_IOTaskPackage},
- {-1, -1, -1, -1, 0}
+ (Odr_fun)z_IOTaskPackage, 0},
+ {-1, -1, -1, -1, 0, 0}
};
-
+
if (o->direction == ODR_DECODE)
*p = (Z_ItemOrder *)odr_malloc(o, sizeof(**p));
else if (!*p)
return opt;
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
/* ----------------------- ITEM UPDATE -------------------- */
-int z_IUSuppliedRecordsId (ODR o, Z_IUSuppliedRecordsId **p, int opt)
+int z_IUSuppliedRecordsId (ODR o, Z_IUSuppliedRecordsId **p, int opt,
+ const char *name)
{
static Odr_arm arm[] = {
{ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IUSuppliedRecordsId_timeStamp,
- odr_generalizedtime},
+ odr_generalizedtime, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IUSuppliedRecordsId_versionNumber,
- z_InternationalString},
+ z_InternationalString, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 3, Z_IUSuppliedRecordsId_previousVersion,
- (Odr_fun)odr_external},
- {-1, -1, -1, -1, 0}
+ (Odr_fun)odr_external, 0},
+ {-1, -1, -1, -1, 0, 0}
};
if (!odr_initmember(o, p, sizeof(**p)))
return opt && odr_ok(o);
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_IUCorrelationInfo (ODR o, Z_IUCorrelationInfo **p, int opt)
+int z_IUCorrelationInfo (ODR o, Z_IUCorrelationInfo **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin (o, p, sizeof(**p)))
+ if (!odr_sequence_begin (o, p, sizeof(**p), 0))
return opt && odr_ok (o);
return
odr_implicit (o, z_InternationalString,
- &(*p)->note, ODR_CONTEXT, 1, 1) &&
+ &(*p)->note, ODR_CONTEXT, 1, 1) &&
odr_implicit (o, odr_integer,
- &(*p)->id, ODR_CONTEXT, 2, 1) &&
+ &(*p)->id, ODR_CONTEXT, 2, 1) &&
odr_sequence_end (o);
}
-int z_IUSuppliedRecords_elem (ODR o, Z_IUSuppliedRecords_elem **p, int opt)
+int z_IUSuppliedRecords_elem (ODR o, Z_IUSuppliedRecords_elem **p, int opt,
+ const char *name)
{
static Odr_arm arm[] = {
{ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IUSuppliedRecords_number,
- (Odr_fun)odr_integer},
+ (Odr_fun)odr_integer, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IUSuppliedRecords_string,
- (Odr_fun)z_InternationalString},
+ (Odr_fun)z_InternationalString, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 3, Z_IUSuppliedRecords_opaque,
- (Odr_fun)odr_octetstring},
- {-1, -1, -1, -1, 0}
+ (Odr_fun)odr_octetstring, 0},
+ {-1, -1, -1, -1, 0, 0}
};
- if (!odr_sequence_begin (o, p, sizeof(**p)))
+ if (!odr_sequence_begin (o, p, sizeof(**p), 0))
return opt && odr_ok (o);
return
- ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1) &&
- odr_choice (o, arm, &(*p)->u, &(*p)->which) &&
- odr_constructed_end (o)) || odr_ok(o)) &&
+ ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1, 0) &&
+ odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) &&
+ odr_constructed_end (o)) || odr_ok(o)) &&
odr_explicit (o, z_IUSuppliedRecordsId,
- &(*p)->supplementalId, ODR_CONTEXT, 2, 1) &&
+ &(*p)->supplementalId, ODR_CONTEXT, 2, 1) &&
odr_implicit (o, z_IUCorrelationInfo,
- &(*p)->correlationInfo, ODR_CONTEXT, 3, 1) &&
+ &(*p)->correlationInfo, ODR_CONTEXT, 3, 1) &&
odr_implicit (o, odr_external,
- &(*p)->record, ODR_CONTEXT, 4, 0) &&
+ &(*p)->record, ODR_CONTEXT, 4, 0) &&
odr_sequence_end (o);
}
-int z_IUSuppliedRecords (ODR o, Z_IUSuppliedRecords **p, int opt)
+int z_IUSuppliedRecords (ODR o, Z_IUSuppliedRecords **p, int opt,
+ const char *name)
{
if (!odr_initmember (o, p, sizeof(**p)))
return opt && odr_ok(o);
if (odr_sequence_of (o, (Odr_fun)z_IUSuppliedRecords_elem, &(*p)->elements,
- &(*p)->num))
+ &(*p)->num, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
int z_IUTaskPackageRecordStructure (ODR o, Z_IUTaskPackageRecordStructure **p,
- int opt)
+ int opt, const char *name)
{
static Odr_arm arm[] = {
{ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IUTaskPackageRecordStructure_record,
- (Odr_fun)odr_external},
- {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_IUTaskPackageRecordStructure_surrogateDiagnostics,
- (Odr_fun)z_DiagRecs},
- {-1, -1, -1, -1, 0}
+ (Odr_fun)odr_external, 0},
+ {ODR_EXPLICIT, ODR_CONTEXT, 2,
+ Z_IUTaskPackageRecordStructure_surrogateDiagnostics,
+ (Odr_fun)z_DiagRecs, 0},
+ {-1, -1, -1, -1, 0, 0}
};
- if (!odr_sequence_begin (o, p, sizeof(**p)))
+ if (!odr_sequence_begin (o, p, sizeof(**p), 0))
return opt && odr_ok (o);
return
- ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1) &&
- odr_choice (o, arm, &(*p)->u, &(*p)->which) &&
- odr_constructed_end (o)) || odr_ok(o)) &&
+ ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1, 0) &&
+ odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) &&
+ odr_constructed_end (o)) || odr_ok(o)) &&
odr_implicit (o, z_IUCorrelationInfo,
- &(*p)->correlationInfo, ODR_CONTEXT, 2, 1) &&
+ &(*p)->correlationInfo, ODR_CONTEXT, 2, 1) &&
odr_implicit (o, odr_integer,
- &(*p)->recordStatus, ODR_CONTEXT, 3, 0) &&
+ &(*p)->recordStatus, ODR_CONTEXT, 3, 0) &&
odr_implicit (o, z_DiagRecs,
- &(*p)->supplementalDiagnostics, ODR_CONTEXT, 4, 1) &&
+ &(*p)->supplementalDiagnostics, ODR_CONTEXT, 4, 1) &&
odr_sequence_end (o);
}
-int z_IUOriginPartToKeep (ODR o, Z_IUOriginPartToKeep **p, int opt)
+int z_IUOriginPartToKeep (ODR o, Z_IUOriginPartToKeep **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin (o, p, sizeof(**p)))
+ if (!odr_sequence_begin (o, p, sizeof(**p), 0))
return opt && odr_ok (o);
return
odr_implicit (o, odr_integer,
- &(*p)->action, ODR_CONTEXT, 1, 0) &&
+ &(*p)->action, ODR_CONTEXT, 1, 0) &&
odr_implicit (o, z_InternationalString,
- &(*p)->databaseName, ODR_CONTEXT, 2, 0) &&
+ &(*p)->databaseName, ODR_CONTEXT, 2, 0) &&
odr_implicit (o, odr_oid,
- &(*p)->schema, ODR_CONTEXT, 3, 1) &&
+ &(*p)->schema, ODR_CONTEXT, 3, 1) &&
odr_implicit (o, z_InternationalString,
- &(*p)->elementSetName, ODR_CONTEXT, 4, 1) &&
+ &(*p)->elementSetName, ODR_CONTEXT, 4, 1) &&
odr_implicit (o, odr_external,
- &(*p)->actionQualifier, ODR_CONTEXT, 5, 1) &&
+ &(*p)->actionQualifier, ODR_CONTEXT, 5, 1) &&
odr_sequence_end (o);
}
-int z_IUTargetPart (ODR o, Z_IUTargetPart **p, int opt)
+int z_IUTargetPart (ODR o, Z_IUTargetPart **p, int opt, const char *name)
{
- if (!odr_sequence_begin (o, p, sizeof(**p)))
+ if (!odr_sequence_begin (o, p, sizeof(**p), 0))
return opt && odr_ok (o);
return
odr_implicit (o, odr_integer,
- &(*p)->updateStatus, ODR_CONTEXT, 1, 0) &&
+ &(*p)->updateStatus, ODR_CONTEXT, 1, 0) &&
odr_implicit_settag (o, ODR_CONTEXT, 2) &&
(odr_sequence_of(o, (Odr_fun)z_DiagRec, &(*p)->globalDiagnostics,
- &(*p)->num_globalDiagnostics) || odr_ok(o)) &&
+ &(*p)->num_globalDiagnostics, 0) || odr_ok(o)) &&
odr_implicit_settag (o, ODR_CONTEXT, 3) &&
- odr_sequence_of(o, (Odr_fun)z_IUTaskPackageRecordStructure, &(*p)->taskPackageRecords,
- &(*p)->num_taskPackageRecords) &&
+ odr_sequence_of(o, (Odr_fun)z_IUTaskPackageRecordStructure,
+ &(*p)->taskPackageRecords,
+ &(*p)->num_taskPackageRecords, 0) &&
odr_sequence_end (o);
}
-int z_IUUpdateEsRequest (ODR o, Z_IUUpdateEsRequest **p, int opt)
+int z_IUUpdateEsRequest (ODR o, Z_IUUpdateEsRequest **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin (o, p, sizeof(**p)))
+ if (!odr_sequence_begin (o, p, sizeof(**p), 0))
return opt && odr_ok (o);
return
odr_explicit (o, z_IUOriginPartToKeep,
- &(*p)->toKeep, ODR_CONTEXT, 1, 0) &&
+ &(*p)->toKeep, ODR_CONTEXT, 1, 0) &&
odr_explicit (o, z_IUSuppliedRecords,
- &(*p)->notToKeep, ODR_CONTEXT, 2, 0) &&
+ &(*p)->notToKeep, ODR_CONTEXT, 2, 0) &&
odr_sequence_end (o);
}
-int z_IUUpdateTaskPackage (ODR o, Z_IUUpdateTaskPackage **p, int opt)
+int z_IUUpdateTaskPackage (ODR o, Z_IUUpdateTaskPackage **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin (o, p, sizeof(**p)))
+ if (!odr_sequence_begin (o, p, sizeof(**p), 0))
return opt && odr_ok (o);
return
odr_explicit (o, z_IUOriginPartToKeep,
- &(*p)->originPart, ODR_CONTEXT, 1, 0) &&
+ &(*p)->originPart, ODR_CONTEXT, 1, 0) &&
odr_explicit (o, z_IUTargetPart,
- &(*p)->targetPart, ODR_CONTEXT, 2, 0) &&
+ &(*p)->targetPart, ODR_CONTEXT, 2, 0) &&
odr_sequence_end (o);
}
-int z_IUUpdate (ODR o, Z_IUUpdate **p, int opt)
+int z_IUUpdate (ODR o, Z_IUUpdate **p, int opt, const char *name)
{
static Odr_arm arm[] = {
{ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IUUpdate_esRequest,
- (Odr_fun)z_IUUpdateEsRequest},
+ (Odr_fun)z_IUUpdateEsRequest, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IUUpdate_taskPackage,
- (Odr_fun)z_IUUpdateTaskPackage},
- {-1, -1, -1, -1, 0}
+ (Odr_fun)z_IUUpdateTaskPackage, 0},
+ {-1, -1, -1, -1, 0, 0}
};
if (!odr_initmember(o, p, sizeof(**p)))
return opt && odr_ok(o);
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: prt-exp.c,v $
- * Revision 1.11 1999-03-18 12:57:13 adam
+ * Revision 1.12 1999-04-20 09:56:48 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.11 1999/03/18 12:57:13 adam
* Fixed bug in TargetInfo encoder/decoder.
*
* Revision 1.10 1998/05/18 13:06:52 adam
#include <proto.h>
-int z_LanguageCode(ODR o, char **p, int opt);
-int z_CommonInfo(ODR o, Z_CommonInfo **p, int opt);
-int z_HumanStringUnit(ODR o, Z_HumanStringUnit **p, int opt);
-int z_HumanString(ODR o, Z_HumanString **p, int opt);
-int z_IconObjectUnit(ODR o, Z_IconObjectUnit **p, int opt);
-int z_IconObject(ODR o, Z_IconObject **p, int opt);
-int z_ContactInfo(ODR o, Z_ContactInfo **p, int opt);
-int z_NetworkAddressIA(ODR o, Z_NetworkAddressIA **p, int opt);
-int z_NetworkAddressOPA(ODR o, Z_NetworkAddressOPA **p, int opt);
-int z_NetworkAddressOther(ODR o, Z_NetworkAddressOther **p, int opt);
-int z_NetworkAddress(ODR o, Z_NetworkAddress **p, int opt);
-int z_AccessInfo(ODR o, Z_AccessInfo **p, int opt);
-int z_QueryTypeDetails(ODR o, Z_QueryTypeDetails **p, int opt);
-int z_PrivateCapOperator(ODR o, Z_PrivateCapOperator **p, int opt);
-int z_PrivateCapabilities(ODR o, Z_PrivateCapabilities **p, int opt);
-int z_RpnCapabilities(ODR o, Z_RpnCapabilities **p, int opt);
-int z_Iso8777Capabilities(ODR o, Z_Iso8777Capabilities **p, int opt);
-int z_ProxSupportPrivate(ODR o, Z_ProxSupportPrivate **p, int opt);
-int z_ProxSupportUnit(ODR o, Z_ProxSupportUnit **p, int opt);
-int z_ProximitySupport(ODR o, Z_ProximitySupport **p, int opt);
-int z_SearchKey(ODR o, Z_SearchKey **p, int opt);
-int z_AccessRestrictionsUnit(ODR o, Z_AccessRestrictionsUnit **p, int opt);
-int z_AccessRestrictions(ODR o, Z_AccessRestrictions **p, int opt);
-int z_CostsOtherCharge(ODR o, Z_CostsOtherCharge **p, int opt);
-int z_Costs(ODR o, Z_Costs **p, int opt);
-int z_Charge(ODR o, Z_Charge **p, int opt);
-int z_DatabaseList(ODR o, Z_DatabaseList **p, int opt);
-int z_AttributeCombinations(ODR o, Z_AttributeCombinations **p, int opt);
-int z_AttributeCombination(ODR o, Z_AttributeCombination **p, int opt);
-int z_AttributeValueList(ODR o, Z_AttributeValueList **p, int opt);
-int z_AttributeOccurrence(ODR o, Z_AttributeOccurrence **p, int opt);
-int z_AttributeValue(ODR o, Z_AttributeValue **p, int opt);
-int z_TargetInfo(ODR o, Z_TargetInfo **p, int opt);
-int z_DatabaseInfo(ODR o, Z_DatabaseInfo **p, int opt);
-int z_TagTypeMapping(ODR o, Z_TagTypeMapping **p, int opt);
-int z_SchemaInfo(ODR o, Z_SchemaInfo **p, int opt);
-int z_ElementInfo(ODR o, Z_ElementInfo **p, int opt);
-int z_PathUnit(ODR o, Z_PathUnit **p, int opt);
-int z_Path(ODR o, Z_Path **p, int opt);
-int z_ElementInfoList(ODR o, Z_Path **p, int opt);
-int z_ElementDataType(ODR o, Z_ElementDataType **p, int opt);
-int z_TagSetInfoElements(ODR o, Z_TagSetInfoElements **p, int opt);
-int z_TagSetInfo(ODR o, Z_TagSetInfo **p, int opt);
-int z_RecordSyntaxInfo(ODR o, Z_RecordSyntaxInfo **p, int opt);
-int z_AttributeSetInfo(ODR o, Z_AttributeSetInfo **p, int opt);
-int z_AttributeType(ODR o, Z_AttributeType **p, int opt);
-int z_AttributeDescription(ODR o, Z_AttributeDescription **p, int opt);
-int z_TermListElement(ODR o, Z_TermListElement **p, int opt);
-int z_TermListInfo(ODR o, Z_TermListInfo **p, int opt);
-int z_ExtendedServicesInfo(ODR o, Z_ExtendedServicesInfo **p, int opt);
-int z_AttributeDetails(ODR o, Z_AttributeDetails **p, int opt);
-int z_AttributeSetDetails(ODR o, Z_AttributeSetDetails **p, int opt);
-int z_AttributeTypeDetails(ODR o, Z_AttributeTypeDetails **p, int opt);
-int z_OmittedAttributeInterpretation(ODR o, Z_OmittedAttributeInterpretation **p, int opt);
-int z_EScanInfo(ODR o, Z_EScanInfo **p, int opt);
-int z_TermListDetails(ODR o, Z_TermListDetails **p, int opt);
-int z_ElementSetDetails(ODR o, Z_ElementSetDetails **p, int opt);
-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_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);
-int z_VariantClass(ODR o, Z_VariantClass **p, int opt);
-int z_VariantType(ODR o, Z_VariantType **p, int opt);
-int z_VariantValue(ODR o, Z_VariantValue **p, int opt);
-int z_ValueSetEnumerated(ODR o, Z_ValueSetEnumerated **p, int opt);
-int z_ValueSet(ODR o, Z_ValueSet **p, int opt);
-int z_ValueRange(ODR o, Z_ValueRange **p, int opt);
-int z_ValueDescription(ODR o, Z_ValueDescription **p, int opt);
-int z_UnitInfo(ODR o, Z_UnitInfo **p, int opt);
-int z_UnitType(ODR o, Z_UnitType **p, int opt);
-int z_Units(ODR o, Z_Units **p, int opt);
-int z_CategoryList(ODR o, Z_CategoryList **p, int opt);
-int z_CategoryInfo(ODR o, Z_CategoryInfo **p, int opt);
-int z_ExplainRecord(ODR o, Z_ExplainRecord **p, int opt);
-
-int z_LanguageCode(ODR o, char **p, int opt)
-{
- return z_InternationalString(o, p, opt);
-}
-
-int z_CommonInfo(ODR o, Z_CommonInfo **p, int opt)
-{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+int z_LanguageCode(ODR o, char **p, int opt, const char *name);
+int z_CommonInfo(ODR o, Z_CommonInfo **p, int opt, const char *name);
+int z_HumanStringUnit(ODR o, Z_HumanStringUnit **p, int opt, const char *name);
+int z_HumanString(ODR o, Z_HumanString **p, int opt, const char *name);
+int z_IconObjectUnit(ODR o, Z_IconObjectUnit **p, int opt, const char *name);
+int z_IconObject(ODR o, Z_IconObject **p, int opt, const char *name);
+int z_ContactInfo(ODR o, Z_ContactInfo **p, int opt, const char *name);
+int z_NetworkAddressIA(ODR o, Z_NetworkAddressIA **p, int opt,
+ const char *name);
+int z_NetworkAddressOPA(ODR o, Z_NetworkAddressOPA **p, int opt,
+ const char *name);
+int z_NetworkAddressOther(ODR o, Z_NetworkAddressOther **p, int opt,
+ const char *name);
+int z_NetworkAddress(ODR o, Z_NetworkAddress **p, int opt, const char *name);
+int z_AccessInfo(ODR o, Z_AccessInfo **p, int opt, const char *name);
+int z_QueryTypeDetails(ODR o, Z_QueryTypeDetails **p, int opt,
+ const char *name);
+int z_PrivateCapOperator(ODR o, Z_PrivateCapOperator **p, int opt,
+ const char *name);
+int z_PrivateCapabilities(ODR o, Z_PrivateCapabilities **p, int opt,
+ const char *name);
+int z_RpnCapabilities(ODR o, Z_RpnCapabilities **p, int opt, const char *name);
+int z_Iso8777Capabilities(ODR o, Z_Iso8777Capabilities **p, int opt,
+ const char *name);
+int z_ProxSupportPrivate(ODR o, Z_ProxSupportPrivate **p, int opt,
+ const char *name);
+int z_ProxSupportUnit(ODR o, Z_ProxSupportUnit **p, int opt, const char *name);
+int z_ProximitySupport(ODR o, Z_ProximitySupport **p, int opt,
+ const char *name);
+int z_SearchKey(ODR o, Z_SearchKey **p, int opt, const char *name);
+int z_AccessRestrictionsUnit(ODR o, Z_AccessRestrictionsUnit **p, int opt,
+ const char *name);
+int z_AccessRestrictions(ODR o, Z_AccessRestrictions **p, int opt,
+ const char *name);
+int z_CostsOtherCharge(ODR o, Z_CostsOtherCharge **p, int opt,
+ const char *name);
+int z_Costs(ODR o, Z_Costs **p, int opt, const char *name);
+int z_Charge(ODR o, Z_Charge **p, int opt, const char *name);
+int z_DatabaseList(ODR o, Z_DatabaseList **p, int opt, const char *name);
+int z_AttributeCombinations(ODR o, Z_AttributeCombinations **p, int opt,
+ const char *name);
+int z_AttributeCombination(ODR o, Z_AttributeCombination **p, int opt,
+ const char *name);
+int z_AttributeValueList(ODR o, Z_AttributeValueList **p, int opt,
+ const char *name);
+int z_AttributeOccurrence(ODR o, Z_AttributeOccurrence **p, int opt,
+ const char *name);
+int z_AttributeValue(ODR o, Z_AttributeValue **p, int opt, const char *name);
+int z_TargetInfo(ODR o, Z_TargetInfo **p, int opt, const char *name);
+int z_DatabaseInfo(ODR o, Z_DatabaseInfo **p, int opt, const char *name);
+int z_TagTypeMapping(ODR o, Z_TagTypeMapping **p, int opt, const char *name);
+int z_SchemaInfo(ODR o, Z_SchemaInfo **p, int opt, const char *name);
+int z_ElementInfo(ODR o, Z_ElementInfo **p, int opt, const char *name);
+int z_PathUnit(ODR o, Z_PathUnit **p, int opt, const char *name);
+int z_Path(ODR o, Z_Path **p, int opt, const char *name);
+int z_ElementInfoList(ODR o, Z_Path **p, int opt, const char *name);
+int z_ElementDataType(ODR o, Z_ElementDataType **p, int opt, const char *name);
+int z_TagSetInfoElements(ODR o, Z_TagSetInfoElements **p, int opt,
+ const char *name);
+int z_TagSetInfo(ODR o, Z_TagSetInfo **p, int opt, const char *name);
+int z_RecordSyntaxInfo(ODR o, Z_RecordSyntaxInfo **p, int opt,
+ const char *name);
+int z_AttributeSetInfo(ODR o, Z_AttributeSetInfo **p, int opt,
+ const char *name);
+int z_AttributeType(ODR o, Z_AttributeType **p, int opt, const char *name);
+int z_AttributeDescription(ODR o, Z_AttributeDescription **p, int opt,
+ const char *name);
+int z_TermListElement(ODR o, Z_TermListElement **p, int opt, const char *name);
+int z_TermListInfo(ODR o, Z_TermListInfo **p, int opt, const char *name);
+int z_ExtendedServicesInfo(ODR o, Z_ExtendedServicesInfo **p, int opt,
+ const char *name);
+int z_AttributeDetails(ODR o, Z_AttributeDetails **p, int opt,
+ const char *name);
+int z_AttributeSetDetails(ODR o, Z_AttributeSetDetails **p, int opt,
+ const char *name);
+int z_AttributeTypeDetails(ODR o, Z_AttributeTypeDetails **p, int opt,
+ const char *name);
+int z_OmittedAttributeInterpretation(ODR o,
+ Z_OmittedAttributeInterpretation **p,
+ int opt, const char *name);
+int z_EScanInfo(ODR o, Z_EScanInfo **p, int opt, const char *name);
+int z_TermListDetails(ODR o, Z_TermListDetails **p, int opt, const char *name);
+int z_ElementSetDetails(ODR o, Z_ElementSetDetails **p, int opt,
+ const char *name);
+int z_RetrievalRecordDetails(ODR o, Z_RetrievalRecordDetails **p, int opt,
+ const char *name);
+int z_PerElementDetails(ODR o, Z_PerElementDetails **p, int opt,
+ const char *name);
+int z_RecordTag(ODR o, Z_RecordTag **p, int opt, const char *name);
+int z_SortDetails(ODR o, Z_SortDetails **p, int opt, const char *name);
+int z_SortKeyDetails(ODR o, Z_SortKeyDetails **p, int opt, const char *name);
+int z_ProcessingInformation(ODR o, Z_ProcessingInformation **p, int opt,
+ const char *name);
+int z_VariantSetInfo(ODR o, Z_VariantSetInfo **p, int opt, const char *name);
+int z_VariantClass(ODR o, Z_VariantClass **p, int opt, const char *name);
+int z_VariantType(ODR o, Z_VariantType **p, int opt, const char *name);
+int z_VariantValue(ODR o, Z_VariantValue **p, int opt, const char *name);
+int z_ValueSetEnumerated(ODR o, Z_ValueSetEnumerated **p, int opt,
+ const char *name);
+int z_ValueSet(ODR o, Z_ValueSet **p, int opt, const char *name);
+int z_ValueRange(ODR o, Z_ValueRange **p, int opt, const char *name);
+int z_ValueDescription(ODR o, Z_ValueDescription **p, int opt,
+ const char *name);
+int z_UnitInfo(ODR o, Z_UnitInfo **p, int opt, const char *name);
+int z_UnitType(ODR o, Z_UnitType **p, int opt, const char *name);
+int z_Units(ODR o, Z_Units **p, int opt, const char *name);
+int z_CategoryList(ODR o, Z_CategoryList **p, int opt, const char *name);
+int z_CategoryInfo(ODR o, Z_CategoryInfo **p, int opt, const char *name);
+int z_ExplainRecord(ODR o, Z_ExplainRecord **p, int opt, const char *name);
+
+int z_LanguageCode(ODR o, char **p, int opt, const char *name)
+{
+ return z_InternationalString(o, p, opt, 0);
+}
+
+int z_CommonInfo(ODR o, Z_CommonInfo **p, int opt, const char *name)
+{
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- odr_implicit(o, odr_generalizedtime, &(*p)->dateAdded, ODR_CONTEXT, 0, 1) &&
- odr_implicit(o, odr_generalizedtime, &(*p)->dateChanged, ODR_CONTEXT, 1, 1) &&
- odr_implicit(o, odr_generalizedtime, &(*p)->expiry, ODR_CONTEXT, 2, 1) &&
- odr_implicit(o, z_LanguageCode, &(*p)->humanStringLanguage, ODR_CONTEXT, 3, 1) &&
- z_OtherInformation(o, &(*p)->otherInfo, 1) &&
+ odr_implicit(o, odr_generalizedtime, &(*p)->dateAdded,
+ ODR_CONTEXT, 0, 1) &&
+ odr_implicit(o, odr_generalizedtime, &(*p)->dateChanged,
+ ODR_CONTEXT, 1, 1) &&
+ odr_implicit(o, odr_generalizedtime, &(*p)->expiry,
+ ODR_CONTEXT, 2, 1) &&
+ odr_implicit(o, z_LanguageCode, &(*p)->humanStringLanguage,
+ ODR_CONTEXT, 3, 1) &&
+ z_OtherInformation(o, &(*p)->otherInfo, 1, 0) &&
odr_sequence_end(o);
}
-int z_HumanStringUnit(ODR o, Z_HumanStringUnit **p, int opt)
+int z_HumanStringUnit(ODR o, Z_HumanStringUnit **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, z_LanguageCode, &(*p)->language, ODR_CONTEXT, 0, 1) &&
odr_implicit(o, z_InternationalString, &(*p)->text, ODR_CONTEXT,
- 1, 0) &&
+ 1, 0) &&
odr_sequence_end(o);
}
-int z_HumanString(ODR o, Z_HumanString **p, int opt)
+int z_HumanString(ODR o, Z_HumanString **p, int opt, const char *name)
{
if (!odr_initmember(o, p, sizeof(**p)))
return opt && odr_ok(o);
if (odr_sequence_of(o, (Odr_fun)z_HumanStringUnit, &(*p)->strings,
- &(*p)->num_strings))
+ &(*p)->num_strings, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_IconObjectUnit(ODR o, Z_IconObjectUnit **p, int opt)
+int z_IconObjectUnit(ODR o, Z_IconObjectUnit **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
{ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IconObjectUnit_ianaType,
- z_InternationalString},
+ z_InternationalString, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IconObjectUnit_z3950type,
- z_InternationalString},
+ z_InternationalString, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 3, Z_IconObjectUnit_otherType,
- z_InternationalString},
- {-1, -1, -1, -1, 0}
+ z_InternationalString, 0},
+ {-1, -1, -1, -1, 0, 0}
};
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- odr_constructed_begin(o, &(*p)->bodyType, ODR_CONTEXT, 1) &&
- odr_choice(o, arm, &(*p)->bodyType, &(*p)->which) &&
+ odr_constructed_begin(o, &(*p)->bodyType, ODR_CONTEXT, 1, 0) &&
+ odr_choice(o, arm, &(*p)->bodyType, &(*p)->which, 0) &&
odr_constructed_end(o) &&
odr_implicit(o, odr_octetstring, &(*p)->content, ODR_CONTEXT, 2, 0) &&
odr_sequence_end(o);
}
-int z_IconObject(ODR o, Z_IconObject **p, int opt)
+int z_IconObject(ODR o, Z_IconObject **p, int opt, const char *name)
{
if (!odr_initmember(o, p, sizeof(**p)))
return opt && odr_ok(o);
if (odr_sequence_of(o, (Odr_fun)z_IconObjectUnit, &(*p)->elements,
- &(*p)->num))
+ &(*p)->num, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_ContactInfo(ODR o, Z_ContactInfo **p, int opt)
+int z_ContactInfo(ODR o, Z_ContactInfo **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- odr_implicit(o, z_InternationalString, &(*p)->name, ODR_CONTEXT, 0, 1) &&
- odr_implicit(o, z_HumanString, &(*p)->description, ODR_CONTEXT, 1, 1) &&
- odr_implicit(o, z_HumanString, &(*p)->address, ODR_CONTEXT, 2, 1) &&
- odr_implicit(o, z_InternationalString, &(*p)->email, ODR_CONTEXT, 3, 1) &&
- odr_implicit(o, z_InternationalString, &(*p)->phone, ODR_CONTEXT, 4, 1) &&
+ odr_implicit(o, z_InternationalString, &(*p)->name,
+ ODR_CONTEXT, 0, 1) &&
+ odr_implicit(o, z_HumanString, &(*p)->description,
+ ODR_CONTEXT, 1, 1) &&
+ odr_implicit(o, z_HumanString, &(*p)->address,
+ ODR_CONTEXT, 2, 1) &&
+ odr_implicit(o, z_InternationalString, &(*p)->email,
+ ODR_CONTEXT, 3, 1) &&
+ odr_implicit(o, z_InternationalString, &(*p)->phone,
+ ODR_CONTEXT, 4, 1) &&
odr_sequence_end(o);
}
-int z_NetworkAddressIA(ODR o, Z_NetworkAddressIA **p, int opt)
+int z_NetworkAddressIA(ODR o, Z_NetworkAddressIA **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt;
return
- odr_implicit(o, z_InternationalString, &(*p)->hostAddress, ODR_CONTEXT, 0, 0) &&
+ odr_implicit(o, z_InternationalString, &(*p)->hostAddress,
+ ODR_CONTEXT, 0, 0) &&
odr_implicit(o, odr_integer, &(*p)->port, ODR_CONTEXT, 1, 0) &&
odr_sequence_end(o);
}
-int z_NetworkAddressOPA(ODR o, Z_NetworkAddressOPA **p, int opt)
+int z_NetworkAddressOPA(ODR o, Z_NetworkAddressOPA **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt;
return
- odr_implicit(o, z_InternationalString, &(*p)->pSel, ODR_CONTEXT, 0, 0) &&
- odr_implicit(o, z_InternationalString, &(*p)->sSel, ODR_CONTEXT, 1, 1) &&
- odr_implicit(o, z_InternationalString, &(*p)->tSel, ODR_CONTEXT, 2, 1) &&
- odr_implicit(o, z_InternationalString, &(*p)->nSap, ODR_CONTEXT, 3, 0) &&
+ odr_implicit(o, z_InternationalString, &(*p)->pSel,
+ ODR_CONTEXT, 0, 0) &&
+ odr_implicit(o, z_InternationalString, &(*p)->sSel,
+ ODR_CONTEXT, 1, 1) &&
+ odr_implicit(o, z_InternationalString, &(*p)->tSel,
+ ODR_CONTEXT, 2, 1) &&
+ odr_implicit(o, z_InternationalString, &(*p)->nSap,
+ ODR_CONTEXT, 3, 0) &&
odr_sequence_end(o);
}
-int z_NetworkAddressOther(ODR o, Z_NetworkAddressOther **p, int opt)
+int z_NetworkAddressOther(ODR o, Z_NetworkAddressOther **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt;
return
- odr_implicit(o, z_InternationalString, &(*p)->type, ODR_CONTEXT, 0, 0) &&
- odr_implicit(o, z_InternationalString, &(*p)->address, ODR_CONTEXT, 1, 0) &&
+ odr_implicit(o, z_InternationalString, &(*p)->type,
+ ODR_CONTEXT, 0, 0) &&
+ odr_implicit(o, z_InternationalString, &(*p)->address,
+ ODR_CONTEXT, 1, 0) &&
odr_sequence_end(o);
}
-int z_NetworkAddress(ODR o, Z_NetworkAddress **p, int opt)
+int z_NetworkAddress(ODR o, Z_NetworkAddress **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
{ODR_IMPLICIT, ODR_CONTEXT, 0, Z_NetworkAddress_iA,
- (Odr_fun)z_NetworkAddressIA},
+ (Odr_fun)z_NetworkAddressIA, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 1, Z_NetworkAddress_oPA,
- (Odr_fun)z_NetworkAddressOPA},
+ (Odr_fun)z_NetworkAddressOPA, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 2, Z_NetworkAddress_other,
- (Odr_fun)z_NetworkAddressOther},
- {-1, -1, -1, -1, 0}
+ (Odr_fun)z_NetworkAddressOther, 0},
+ {-1, -1, -1, -1, 0, 0}
};
if (!odr_initmember(o, p, sizeof(**p)))
return opt && odr_ok(o);
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_AccessInfo(ODR o, Z_AccessInfo **p, int opt)
+int z_AccessInfo(ODR o, Z_AccessInfo **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit_settag(o, ODR_CONTEXT, 0) &&
- (odr_sequence_of(o, (Odr_fun)z_QueryTypeDetails, &(*p)->queryTypesSupported,
- &(*p)->num_queryTypesSupported) || odr_ok(o)) &&
+ (odr_sequence_of(o, (Odr_fun)z_QueryTypeDetails,
+ &(*p)->queryTypesSupported,
+ &(*p)->num_queryTypesSupported, 0) || odr_ok(o)) &&
odr_implicit_settag(o, ODR_CONTEXT, 1) &&
(odr_sequence_of(o, (Odr_fun)odr_oid, &(*p)->diagnosticsSets,
- &(*p)->num_diagnosticsSets) || odr_ok(o)) &&
+ &(*p)->num_diagnosticsSets, 0) || odr_ok(o)) &&
odr_implicit_settag(o, ODR_CONTEXT, 2) &&
(odr_sequence_of(o, (Odr_fun)odr_oid, &(*p)->attributeSetIds,
- &(*p)->num_attributeSetIds) || odr_ok(o)) &&
+ &(*p)->num_attributeSetIds, 0) || odr_ok(o)) &&
odr_implicit_settag(o, ODR_CONTEXT, 3) &&
- (odr_sequence_of(o, (Odr_fun)odr_oid, &(*p)->schemas, &(*p)->num_schemas) ||
- odr_ok(o)) &&
+ (odr_sequence_of(o, (Odr_fun)odr_oid, &(*p)->schemas,
+ &(*p)->num_schemas, 0) ||
+ odr_ok(o)) &&
odr_implicit_settag(o, ODR_CONTEXT, 4) &&
(odr_sequence_of(o, (Odr_fun)odr_oid, &(*p)->recordSyntaxes,
- &(*p)->num_recordSyntaxes) || odr_ok(o)) &&
+ &(*p)->num_recordSyntaxes, 0) || odr_ok(o)) &&
odr_implicit_settag(o, ODR_CONTEXT, 5) &&
(odr_sequence_of(o, (Odr_fun)odr_oid, &(*p)->resourceChallenges,
- &(*p)->num_resourceChallenges) || odr_ok(o)) &&
+ &(*p)->num_resourceChallenges, 0) || odr_ok(o)) &&
odr_implicit(o, z_AccessRestrictions, &(*p)->restrictedAccess,
- ODR_CONTEXT, 6, 1) &&
+ 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_fun)odr_oid, &(*p)->variantSets,
- &(*p)->num_variantSets) || odr_ok(o)) &&
+ &(*p)->num_variantSets, 0) || odr_ok(o)) &&
odr_implicit_settag(o, ODR_CONTEXT, 10) &&
(odr_sequence_of(o, (Odr_fun)z_ElementSetName, &(*p)->elementSetNames,
- &(*p)->num_elementSetNames) || odr_ok(o)) &&
+ &(*p)->num_elementSetNames, 0) || odr_ok(o)) &&
odr_implicit_settag(o, ODR_CONTEXT, 11) &&
(odr_sequence_of(o, (Odr_fun)z_InternationalString, &(*p)->unitSystems,
- &(*p)->num_unitSystems) || odr_ok(o)) &&
+ &(*p)->num_unitSystems, 0) || odr_ok(o)) &&
odr_sequence_end(o);
}
-int z_QueryTypeDetails(ODR o, Z_QueryTypeDetails **p, int opt)
+int z_QueryTypeDetails(ODR o, Z_QueryTypeDetails **p, int opt,
+ const char *name)
{
static Odr_arm arm[] =
{
{ODR_IMPLICIT, ODR_CONTEXT, 0, Z_QueryTypeDetails_private,
- (Odr_fun)z_PrivateCapabilities},
+ (Odr_fun)z_PrivateCapabilities, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 1, Z_QueryTypeDetails_rpn,
- (Odr_fun)z_RpnCapabilities},
+ (Odr_fun)z_RpnCapabilities, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 2, Z_QueryTypeDetails_iso8777,
- (Odr_fun)z_Iso8777Capabilities},
+ (Odr_fun)z_Iso8777Capabilities, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 3, Z_QueryTypeDetails_z39_58,
- (Odr_fun)z_HumanString},
+ (Odr_fun)z_HumanString, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 4, Z_QueryTypeDetails_erpn,
- (Odr_fun)z_RpnCapabilities},
+ (Odr_fun)z_RpnCapabilities, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 5, Z_QueryTypeDetails_rankedList,
- (Odr_fun)z_HumanString},
- {-1, -1, -1, -1, 0}
+ (Odr_fun)z_HumanString, 0},
+ {-1, -1, -1, -1, 0, 0}
};
if (!odr_initmember(o, p, sizeof(**p)))
return opt && odr_ok(o);
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_PrivateCapOperator(ODR o, Z_PrivateCapOperator **p, int opt)
+int z_PrivateCapOperator(ODR o, Z_PrivateCapOperator **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- odr_implicit(o, z_InternationalString, &(*p)->roperator, ODR_CONTEXT, 0, 0) &&
- odr_implicit(o, z_HumanString, &(*p)->description, ODR_CONTEXT, 1, 1) &&
+ odr_implicit(o, z_InternationalString, &(*p)->roperator,
+ ODR_CONTEXT, 0, 0) &&
+ odr_implicit(o, z_HumanString, &(*p)->description,
+ ODR_CONTEXT, 1, 1) &&
odr_sequence_end(o);
}
-int z_PrivateCapabilities(ODR o, Z_PrivateCapabilities **p, int opt)
+int z_PrivateCapabilities(ODR o, Z_PrivateCapabilities **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit_settag(o, ODR_CONTEXT, 0) &&
(odr_sequence_of(o, (Odr_fun)z_PrivateCapOperator, &(*p)->operators,
- &(*p)->num_operators) || odr_ok(o)) &&
+ &(*p)->num_operators, 0) || odr_ok(o)) &&
odr_implicit_settag(o, ODR_CONTEXT, 1) &&
(odr_sequence_of(o, (Odr_fun)z_SearchKey, &(*p)->searchKeys,
- &(*p)->num_searchKeys) || odr_ok(o)) &&
+ &(*p)->num_searchKeys, 0) || odr_ok(o)) &&
odr_implicit_settag(o, ODR_CONTEXT, 2) &&
(odr_sequence_of(o, (Odr_fun)z_HumanString, &(*p)->description,
- &(*p)->num_description) || odr_ok(o)) &&
+ &(*p)->num_description, 0) || odr_ok(o)) &&
odr_sequence_end(o);
}
-int z_RpnCapabilities(ODR o, Z_RpnCapabilities **p, int opt)
+int z_RpnCapabilities(ODR o, Z_RpnCapabilities **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit_settag(o, ODR_CONTEXT, 0) &&
- (odr_sequence_of(o, (Odr_fun)odr_integer, &(*p)->operators, &(*p)->num_operators) || odr_ok(o)) &&
+ (odr_sequence_of(o, (Odr_fun)odr_integer, &(*p)->operators,
+ &(*p)->num_operators, 0) || odr_ok(o)) &&
odr_implicit(o, odr_bool, &(*p)->resultSetAsOperandSupported,
- ODR_CONTEXT, 1, 0) &&
+ ODR_CONTEXT, 1, 0) &&
odr_implicit(o, odr_bool, &(*p)->restrictionOperandSupported,
- ODR_CONTEXT, 2, 0) &&
+ ODR_CONTEXT, 2, 0) &&
odr_implicit(o, z_ProximitySupport, &(*p)->proximity, ODR_CONTEXT,
- 3, 1) &&
+ 3, 1) &&
odr_sequence_end(o);
}
-int z_Iso8777Capabilities(ODR o, Z_Iso8777Capabilities **p, int opt)
+int z_Iso8777Capabilities(ODR o, Z_Iso8777Capabilities **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit_settag(o, ODR_CONTEXT, 0) &&
odr_sequence_of(o, (Odr_fun)z_SearchKey, &(*p)->searchKeys,
- &(*p)->num_searchKeys) &&
+ &(*p)->num_searchKeys, 0) &&
odr_implicit(o, z_HumanString, &(*p)->restrictions, ODR_CONTEXT,
- 1, 1) &&
+ 1, 1) &&
odr_sequence_end(o);
}
-int z_ProxSupportPrivate(ODR o, Z_ProxSupportPrivate **p, int opt)
+int z_ProxSupportPrivate(ODR o, Z_ProxSupportPrivate **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, odr_integer, &(*p)->unit, ODR_CONTEXT, 0, 0) &&
- odr_implicit(o, z_HumanString, &(*p)->description, ODR_CONTEXT, 1, 1) &&
+ odr_implicit(o, z_HumanString, &(*p)->description,
+ ODR_CONTEXT, 1, 1) &&
odr_sequence_end(o);
}
-int z_ProxSupportUnit(ODR o, Z_ProxSupportUnit **p, int opt)
+int z_ProxSupportUnit(ODR o, Z_ProxSupportUnit **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
{ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ProxSupportUnit_known,
- (Odr_fun)odr_integer},
+ (Odr_fun)odr_integer, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ProxSupportUnit_private,
- (Odr_fun)z_ProxSupportPrivate},
- {-1, -1, -1, -1, 0}
+ (Odr_fun)z_ProxSupportPrivate, 0},
+ {-1, -1, -1, -1, 0, 0}
};
-
+
if (!odr_initmember(o, p, sizeof(**p)))
return opt && odr_ok(o);
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_ProximitySupport(ODR o, Z_ProximitySupport **p, int opt)
+int z_ProximitySupport(ODR o, Z_ProximitySupport **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, odr_bool, &(*p)->anySupport, ODR_CONTEXT, 0, 0) &&
odr_implicit_settag(o, ODR_CONTEXT, 1) &&
(odr_sequence_of(o, (Odr_fun)z_ProxSupportUnit, &(*p)->unitsSupported,
- &(*p)->num_unitsSupported) || odr_ok(o)) &&
+ &(*p)->num_unitsSupported, 0) || odr_ok(o)) &&
odr_sequence_end(o);
}
-int z_SearchKey(ODR o, Z_SearchKey **p, int opt)
+int z_SearchKey(ODR o, Z_SearchKey **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- odr_implicit(o, z_InternationalString, &(*p)->searchKey, ODR_CONTEXT, 0, 0) &&
- odr_implicit(o, z_HumanString, &(*p)->description, ODR_CONTEXT, 1, 1) &&
+ odr_implicit(o, z_InternationalString, &(*p)->searchKey,
+ ODR_CONTEXT, 0, 0) &&
+ odr_implicit(o, z_HumanString, &(*p)->description,
+ ODR_CONTEXT, 1, 1) &&
odr_sequence_end(o);
}
-int z_AccessRestrictionsUnit(ODR o, Z_AccessRestrictionsUnit **p, int opt)
+int z_AccessRestrictionsUnit(ODR o, Z_AccessRestrictionsUnit **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
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_fun)odr_oid, &(*p)->accessChallenges,
- &(*p)->num_accessChallenges) || odr_ok(o)) &&
+ &(*p)->num_accessChallenges, 0) || odr_ok(o)) &&
odr_sequence_end(o);
}
-int z_AccessRestrictions(ODR o, Z_AccessRestrictions **p, int opt)
+int z_AccessRestrictions(ODR o, Z_AccessRestrictions **p, int opt,
+ const char *name)
{
if (!odr_initmember(o, p, sizeof(**p)))
return opt && odr_ok(o);
if (odr_sequence_of(o, (Odr_fun)z_AccessRestrictionsUnit, &(*p)->elements,
- &(*p)->num))
+ &(*p)->num, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_CostsOtherCharge(ODR o, Z_CostsOtherCharge **p, int opt)
+int z_CostsOtherCharge(ODR o, Z_CostsOtherCharge **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, z_HumanString, &(*p)->forWhat, ODR_CONTEXT, 1, 0) &&
odr_implicit(o, z_Charge, &(*p)->charge, ODR_CONTEXT, 2, 1) &&
odr_sequence_end(o);
}
-
-int z_Costs(ODR o, Z_Costs **p, int opt)
+
+int z_Costs(ODR o, Z_Costs **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, z_Charge, &(*p)->connectCharge, ODR_CONTEXT, 0, 1) &&
odr_implicit(o, z_Charge, &(*p)->subscriptCharge, ODR_CONTEXT, 4, 1) &&
odr_implicit_settag(o, ODR_CONTEXT, 5) &&
(odr_sequence_of(o, (Odr_fun)z_CostsOtherCharge, &(*p)->otherCharges,
- &(*p)->num_otherCharges) || odr_ok(o)) &&
+ &(*p)->num_otherCharges, 0) || odr_ok(o)) &&
odr_sequence_end(o);
}
-int z_Charge(ODR o, Z_Charge **p, int opt)
+int z_Charge(ODR o, Z_Charge **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, z_IntUnit, &(*p)->cost, ODR_CONTEXT, 1, 0) &&
odr_sequence_end(o);
}
-int z_DatabaseList(ODR o, Z_DatabaseList **p, int opt)
+int z_DatabaseList(ODR o, Z_DatabaseList **p, int opt, const char *name)
{
if (!odr_initmember(o, p, sizeof(**p)))
return opt && odr_ok(o);
if (odr_sequence_of(o, z_DatabaseName, &(*p)->databases,
- &(*p)->num_databases))
+ &(*p)->num_databases, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_AttributeCombinations(ODR o, Z_AttributeCombinations **p, int opt)
+int z_AttributeCombinations(ODR o, Z_AttributeCombinations **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, odr_oid, &(*p)->defaultAttributeSet,
- ODR_CONTEXT, 0, 0) &&
+ ODR_CONTEXT, 0, 0) &&
odr_implicit_settag(o, ODR_CONTEXT, 1) &&
- odr_sequence_of(o, (Odr_fun)z_AttributeCombination, &(*p)->legalCombinations,
- &(*p)->num_legalCombinations) &&
+ odr_sequence_of(o, (Odr_fun)z_AttributeCombination,
+ &(*p)->legalCombinations,
+ &(*p)->num_legalCombinations, 0) &&
odr_sequence_end(o);
}
-int z_AttributeCombination(ODR o, Z_AttributeCombination **p, int opt)
+int z_AttributeCombination(ODR o, Z_AttributeCombination **p, int opt,
+ const char *name)
{
if (!odr_initmember(o, p, sizeof(**p)))
return opt && odr_ok(o);
if (odr_sequence_of(o, (Odr_fun)z_AttributeOccurrence, &(*p)->occurrences,
- &(*p)->num_occurrences))
+ &(*p)->num_occurrences, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_AttributeValueList(ODR o, Z_AttributeValueList **p, int opt)
+int z_AttributeValueList(ODR o, Z_AttributeValueList **p, int opt,
+ const char *name)
{
if (!odr_initmember(o, p, sizeof(**p)))
return opt && odr_ok(o);
if (odr_sequence_of(o, (Odr_fun)z_StringOrNumeric, &(*p)->attributes,
- &(*p)->num_attributes))
+ &(*p)->num_attributes, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_AttributeOccurrence(ODR o, Z_AttributeOccurrence **p, int opt)
+int z_AttributeOccurrence(ODR o, Z_AttributeOccurrence **p, int opt,
+ const char *name)
{
static Odr_arm arm[] =
{
- {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_AttributeOcc_any_or_none, (Odr_fun)odr_null},
+ {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_AttributeOcc_any_or_none,
+ (Odr_fun)odr_null, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 4, Z_AttributeOcc_specific,
- (Odr_fun)z_AttributeValueList},
- {-1, -1, -1, -1, 0}
+ (Odr_fun)z_AttributeValueList, 0},
+ {-1, -1, -1, -1, 0, 0}
};
-
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, odr_oid, &(*p)->attributeSet, ODR_CONTEXT, 0, 1) &&
- odr_implicit(o, odr_integer, &(*p)->attributeType, ODR_CONTEXT, 1, 0) &&
+ odr_implicit(o, odr_integer, &(*p)->attributeType,
+ ODR_CONTEXT, 1, 0) &&
odr_implicit(o, odr_null, &(*p)->mustBeSupplied, ODR_CONTEXT, 2, 1) &&
- odr_choice(o, arm, &(*p)->attributeValues, &(*p)->which) &&
+ odr_choice(o, arm, &(*p)->attributeValues, &(*p)->which, 0) &&
odr_sequence_end(o);
}
-int z_AttributeValue(ODR o, Z_AttributeValue **p, int opt)
+int z_AttributeValue(ODR o, Z_AttributeValue **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_explicit(o, z_StringOrNumeric, &(*p)->value, ODR_CONTEXT, 0, 0) &&
- odr_implicit(o, z_HumanString, &(*p)->description, ODR_CONTEXT, 1, 1) &&
+ odr_implicit(o, z_HumanString, &(*p)->description,
+ ODR_CONTEXT, 1, 1) &&
odr_implicit_settag(o, ODR_CONTEXT, 2) &&
(odr_sequence_of(o, (Odr_fun)z_StringOrNumeric, &(*p)->subAttributes,
- &(*p)->num_subAttributes) || odr_ok(o)) &&
+ &(*p)->num_subAttributes, 0) || odr_ok(o)) &&
odr_implicit_settag(o, ODR_CONTEXT, 3) &&
(odr_sequence_of(o, (Odr_fun)z_StringOrNumeric, &(*p)->superAttributes,
- &(*p)->num_superAttributes) || odr_ok(o)) &&
+ &(*p)->num_superAttributes, 0) || odr_ok(o)) &&
odr_implicit(o, odr_null, &(*p)->partialSupport, ODR_CONTEXT, 4, 1) &&
odr_sequence_end(o);
}
-int z_TargetInfo(ODR o, Z_TargetInfo **p, int opt)
+int z_TargetInfo(ODR o, Z_TargetInfo **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- odr_implicit(o, z_CommonInfo, &(*p)->commonInfo, ODR_CONTEXT, 0, 1) &&
- odr_implicit(o, z_InternationalString, &(*p)->name, ODR_CONTEXT,
- 1, 0) &&
- odr_implicit(o, z_HumanString, &(*p)->recentNews, ODR_CONTEXT, 2, 1) &&
- odr_implicit(o, z_IconObject, &(*p)->icon, ODR_CONTEXT, 3, 1) &&
- odr_implicit(o, odr_bool, &(*p)->namedResultSets, ODR_CONTEXT, 4, 0) &&
- odr_implicit(o, odr_bool, &(*p)->multipleDBsearch, ODR_CONTEXT, 5, 0) &&
- odr_implicit(o, odr_integer, &(*p)->maxResultSets, ODR_CONTEXT, 6, 1) &&
- odr_implicit(o, odr_integer, &(*p)->maxResultSize, ODR_CONTEXT, 7, 1) &&
- odr_implicit(o, odr_integer, &(*p)->maxTerms, ODR_CONTEXT, 8, 1) &&
- odr_implicit(o, z_IntUnit, &(*p)->timeoutInterval, ODR_CONTEXT, 9, 1) &&
- odr_implicit(o, z_HumanString, &(*p)->welcomeMessage, ODR_CONTEXT,
- 10, 1) &&
- odr_implicit(o, z_ContactInfo, &(*p)->contactInfo, ODR_CONTEXT,
- 11, 1) &&
- odr_implicit(o, z_HumanString, &(*p)->description, ODR_CONTEXT,
- 12, 1) &&
+ odr_implicit(o, z_CommonInfo, &(*p)->commonInfo,
+ ODR_CONTEXT, 0, 1) &&
+ odr_implicit(o, z_InternationalString, &(*p)->name,
+ ODR_CONTEXT, 1, 0) &&
+ odr_implicit(o, z_HumanString, &(*p)->recentNews,
+ ODR_CONTEXT, 2, 1) &&
+ odr_implicit(o, z_IconObject, &(*p)->icon,
+ ODR_CONTEXT, 3, 1) &&
+ odr_implicit(o, odr_bool, &(*p)->namedResultSets,
+ ODR_CONTEXT, 4, 0) &&
+ odr_implicit(o, odr_bool, &(*p)->multipleDBsearch,
+ ODR_CONTEXT, 5, 0) &&
+ odr_implicit(o, odr_integer, &(*p)->maxResultSets,
+ ODR_CONTEXT, 6, 1) &&
+ odr_implicit(o, odr_integer, &(*p)->maxResultSize,
+ ODR_CONTEXT, 7, 1) &&
+ odr_implicit(o, odr_integer, &(*p)->maxTerms,
+ ODR_CONTEXT, 8, 1) &&
+ odr_implicit(o, z_IntUnit, &(*p)->timeoutInterval,
+ ODR_CONTEXT, 9, 1) &&
+ odr_implicit(o, z_HumanString, &(*p)->welcomeMessage,
+ ODR_CONTEXT, 10, 1) &&
+ odr_implicit(o, z_ContactInfo, &(*p)->contactInfo,
+ ODR_CONTEXT, 11, 1) &&
+ odr_implicit(o, z_HumanString, &(*p)->description,
+ ODR_CONTEXT, 12, 1) &&
odr_implicit_settag(o, ODR_CONTEXT, 13) &&
(odr_sequence_of(o, z_InternationalString, &(*p)->nicknames,
- &(*p)->num_nicknames) || odr_ok(o)) &&
- odr_implicit(o, z_HumanString, &(*p)->usageRest, ODR_CONTEXT, 14, 1) &&
- odr_implicit(o, z_HumanString, &(*p)->paymentAddr, ODR_CONTEXT,
- 15, 1) &&
+ &(*p)->num_nicknames, 0) || odr_ok(o)) &&
+ odr_implicit(o, z_HumanString, &(*p)->usageRest,
+ ODR_CONTEXT, 14, 1) &&
+ odr_implicit(o, z_HumanString, &(*p)->paymentAddr,
+ ODR_CONTEXT, 15, 1) &&
odr_implicit(o, z_HumanString, &(*p)->hours, ODR_CONTEXT, 16, 1) &&
odr_implicit_settag(o, ODR_CONTEXT, 17) &&
(odr_sequence_of(o, (Odr_fun)z_DatabaseList, &(*p)->dbCombinations,
- &(*p)->num_dbCombinations) || odr_ok(o)) &&
+ &(*p)->num_dbCombinations, 0) || odr_ok(o)) &&
odr_implicit_settag(o, ODR_CONTEXT, 18) &&
(odr_sequence_of(o, (Odr_fun)z_NetworkAddress, &(*p)->addresses,
- &(*p)->num_addresses) || odr_ok(o)) &&
+ &(*p)->num_addresses, 0) || odr_ok(o)) &&
odr_implicit_settag (o, ODR_CONTEXT, 101) &&
(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) &&
+ &(*p)->num_languages, 0) || odr_ok(o)) &&
+ odr_implicit(o, z_AccessInfo, &(*p)->commonAccessInfo,
+ ODR_CONTEXT, 19, 1) &&
odr_sequence_end(o);
}
-int z_DatabaseInfo(ODR o, Z_DatabaseInfo **p, int opt)
+int z_DatabaseInfo(ODR o, Z_DatabaseInfo **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
{ODR_IMPLICIT, ODR_CONTEXT, 0, Z_DatabaseInfo_actualNumber,
- (Odr_fun)odr_integer},
+ (Odr_fun)odr_integer, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 1, Z_DatabaseInfo_approxNumber,
- (Odr_fun)odr_integer},
- {-1, -1, -1, -1, 0}
+ (Odr_fun)odr_integer, 0},
+ {-1, -1, -1, -1, 0, 0}
};
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, z_CommonInfo, &(*p)->commonInfo, ODR_CONTEXT, 0, 1) &&
odr_implicit(o, odr_null, &(*p)->explainDatabase, ODR_CONTEXT, 2, 1) &&
odr_implicit_settag(o, ODR_CONTEXT, 3) &&
(odr_sequence_of(o, z_DatabaseName, &(*p)->nicknames,
- &(*p)->num_nicknames) || odr_ok(o)) &&
+ &(*p)->num_nicknames, 0) || odr_ok(o)) &&
odr_implicit(o, z_IconObject, &(*p)->icon, ODR_CONTEXT, 4, 1) &&
odr_implicit(o, odr_bool, &(*p)->userFee, ODR_CONTEXT, 5, 0) &&
odr_implicit(o, odr_bool, &(*p)->available, ODR_CONTEXT, 6, 0) &&
- odr_implicit(o, z_HumanString, &(*p)->titleString, ODR_CONTEXT, 7, 1) &&
+ odr_implicit(o, z_HumanString, &(*p)->titleString,
+ ODR_CONTEXT, 7, 1) &&
odr_implicit_settag(o, ODR_CONTEXT, 8) &&
(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,
- 10, 1) &&
+ &(*p)->num_keywords, 0) || odr_ok(o)) &&
+ odr_implicit(o, z_HumanString, &(*p)->description,
+ ODR_CONTEXT, 9, 1) &&
+ odr_implicit(o, z_DatabaseList, &(*p)->associatedDbs,
+ ODR_CONTEXT, 10, 1) &&
odr_implicit(o, z_DatabaseList, &(*p)->subDbs, ODR_CONTEXT, 11, 1) &&
- odr_implicit(o, z_HumanString, &(*p)->disclaimers, ODR_CONTEXT,
- 12, 1) &&
+ 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)->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) &&
- odr_implicit(o, odr_integer, &(*p)->avRecordSize, ODR_CONTEXT, 16, 1) &&
- odr_implicit(o, odr_integer, &(*p)->maxRecordSize, ODR_CONTEXT,
- 17, 1) &&
+ ((odr_constructed_begin(o, &(*p)->u.actualNumber,
+ ODR_CONTEXT, 14, 0) &&
+ odr_choice(o, arm, &(*p)->u.actualNumber, &(*p)->which, 0) &&
+ odr_constructed_end(o)) || odr_ok(o)) &&
+ odr_implicit(o, z_HumanString, &(*p)->defaultOrder,
+ ODR_CONTEXT, 15, 1) &&
+ odr_implicit(o, odr_integer, &(*p)->avRecordSize,
+ ODR_CONTEXT, 16, 1) &&
+ odr_implicit(o, odr_integer, &(*p)->maxRecordSize,
+ ODR_CONTEXT, 17, 1) &&
odr_implicit(o, z_HumanString, &(*p)->hours, ODR_CONTEXT, 18, 1) &&
odr_implicit(o, z_HumanString, &(*p)->bestTime, ODR_CONTEXT, 19, 1) &&
- odr_implicit(o, odr_generalizedtime, &(*p)->lastUpdate, ODR_CONTEXT,
- 20, 1) &&
- odr_implicit(o, z_IntUnit, &(*p)->updateInterval, ODR_CONTEXT, 21, 1) &&
+ odr_implicit(o, odr_generalizedtime, &(*p)->lastUpdate,
+ ODR_CONTEXT, 20, 1) &&
+ odr_implicit(o, z_IntUnit, &(*p)->updateInterval,
+ ODR_CONTEXT, 21, 1) &&
odr_implicit(o, z_HumanString, &(*p)->coverage, ODR_CONTEXT, 22, 1) &&
odr_implicit(o, odr_bool, &(*p)->proprietary, ODR_CONTEXT, 23, 1) &&
- odr_implicit(o, z_HumanString, &(*p)->copyrightText, ODR_CONTEXT,
- 24, 1) &&
- odr_implicit(o, z_HumanString, &(*p)->copyrightNotice, ODR_CONTEXT,
- 25, 1) &&
- odr_implicit(o, z_ContactInfo, &(*p)->producerContactInfo, ODR_CONTEXT,
- 26, 1) &&
- odr_implicit(o, z_ContactInfo, &(*p)->supplierContactInfo, ODR_CONTEXT,
- 27, 1) &&
+ odr_implicit(o, z_HumanString, &(*p)->copyrightText,
+ ODR_CONTEXT, 24, 1) &&
+ odr_implicit(o, z_HumanString, &(*p)->copyrightNotice,
+ ODR_CONTEXT, 25, 1) &&
+ odr_implicit(o, z_ContactInfo, &(*p)->producerContactInfo,
+ ODR_CONTEXT, 26, 1) &&
+ odr_implicit(o, z_ContactInfo, &(*p)->supplierContactInfo,
+ ODR_CONTEXT, 27, 1) &&
odr_implicit(o, z_ContactInfo, &(*p)->submissionContactInfo,
- ODR_CONTEXT, 28, 1) &&
+ ODR_CONTEXT, 28, 1) &&
odr_implicit(o, z_AccessInfo, &(*p)->accessInfo, ODR_CONTEXT, 29, 1) &&
odr_sequence_end(o);
}
-int z_TagTypeMapping(ODR o, Z_TagTypeMapping **p, int opt)
+int z_TagTypeMapping(ODR o, Z_TagTypeMapping **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt;
return
odr_implicit(o, odr_integer, &(*p)->tagType, ODR_CONTEXT, 0, 0) &&
odr_sequence_end(o);
}
-int z_SchemaInfo(ODR o, Z_SchemaInfo **p, int opt)
+int z_SchemaInfo(ODR o, Z_SchemaInfo **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, z_CommonInfo, &(*p)->commonInfo, ODR_CONTEXT, 0, 1) &&
odr_implicit(o, odr_oid, &(*p)->schema, ODR_CONTEXT, 1, 0) &&
odr_implicit(o, z_InternationalString, &(*p)->name, ODR_CONTEXT,
2, 0) &&
- odr_implicit(o, z_HumanString, &(*p)->description, ODR_CONTEXT, 3, 1) &&
+ odr_implicit(o, z_HumanString, &(*p)->description,
+ ODR_CONTEXT, 3, 1) &&
odr_implicit_settag(o, ODR_CONTEXT, 4) &&
(odr_sequence_of(o, (Odr_fun)z_TagTypeMapping, &(*p)->tagTypeMapping,
- &(*p)->num_tagTypeMapping) || odr_ok(o)) &&
+ &(*p)->num_tagTypeMapping, 0) || odr_ok(o)) &&
odr_implicit_settag(o, ODR_CONTEXT, 5) &&
(odr_sequence_of(o, (Odr_fun)z_ElementInfo, &(*p)->recordStructure,
- &(*p)->num_recordStructure) || odr_ok(o)) &&
+ &(*p)->num_recordStructure, 0) || odr_ok(o)) &&
odr_sequence_end(o);
}
-int z_ElementInfo(ODR o, Z_ElementInfo **p, int opt)
+int z_ElementInfo(ODR o, Z_ElementInfo **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- odr_implicit(o, z_InternationalString, &(*p)->elementName, ODR_CONTEXT, 1, 0) &&
+ odr_implicit(o, z_InternationalString, &(*p)->elementName,
+ ODR_CONTEXT, 1, 0) &&
odr_implicit(o, z_Path, &(*p)->elementTagPath, ODR_CONTEXT, 2, 0) &&
- odr_explicit(o, z_ElementDataType, &(*p)->dataType, ODR_CONTEXT, 3, 1) &&
+ odr_explicit(o, z_ElementDataType, &(*p)->dataType,
+ ODR_CONTEXT, 3, 1) &&
odr_implicit(o, odr_bool, &(*p)->required, ODR_CONTEXT, 4, 0) &&
odr_implicit(o, odr_bool, &(*p)->repeatable, ODR_CONTEXT, 5, 0) &&
- odr_implicit(o, z_HumanString, &(*p)->description, ODR_CONTEXT, 6, 1) &&
+ odr_implicit(o, z_HumanString, &(*p)->description,
+ ODR_CONTEXT, 6, 1) &&
odr_sequence_end(o);
}
-int z_PathUnit(ODR o, Z_PathUnit **p, int opt)
+int z_PathUnit(ODR o, Z_PathUnit **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt;
return
odr_implicit(o, odr_integer, &(*p)->tagType, ODR_CONTEXT, 1, 0) &&
- odr_explicit(o, z_StringOrNumeric, &(*p)->tagValue, ODR_CONTEXT,
- 2, 0) &&
+ odr_explicit(o, z_StringOrNumeric, &(*p)->tagValue,
+ ODR_CONTEXT, 2, 0) &&
odr_sequence_end(o);
}
-int z_Path(ODR o, Z_Path **p, int opt)
+int z_Path(ODR o, Z_Path **p, int opt, const char *name)
{
if (!odr_initmember(o, p, sizeof(**p)))
return opt && odr_ok(o);
odr_implicit_settag(o, ODR_CONTEXT, 201);
if (odr_sequence_of(o, (Odr_fun)z_OtherInformationUnit, &(*p)->list,
- &(*p)->num))
+ &(*p)->num, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_ElementInfoList(ODR o, Z_Path **p, int opt)
+int z_ElementInfoList(ODR o, Z_Path **p, int opt, const char *name)
{
if (!odr_initmember(o, p, sizeof(**p)))
return opt && odr_ok(o);
odr_implicit_settag(o, ODR_CONTEXT, 201);
if (odr_sequence_of(o, (Odr_fun)z_OtherInformationUnit, &(*p)->list,
- &(*p)->num))
+ &(*p)->num, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_ElementDataType(ODR o, Z_ElementDataType **p, int opt)
+int z_ElementDataType(ODR o, Z_ElementDataType **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
{ODR_IMPLICIT, ODR_CONTEXT, 0, Z_ElementDataType_primitive,
- (Odr_fun)odr_integer},
+ (Odr_fun)odr_integer, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ElementDataType_structured,
- (Odr_fun)z_ElementInfoList},
- {-1, -1, -1, -1, 0}
+ (Odr_fun)z_ElementInfoList, 0},
+ {-1, -1, -1, -1, 0, 0}
};
-
+
if (!odr_initmember(o, p, sizeof(**p)))
return opt && odr_ok(o);
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_TagSetInfoElements(ODR o, Z_TagSetInfoElements **p, int opt)
+int z_TagSetInfoElements(ODR o, Z_TagSetInfoElements **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt;
return
odr_implicit(o, z_InternationalString, &(*p)->elementname,
- ODR_CONTEXT, 1, 0) &&
+ ODR_CONTEXT, 1, 0) &&
odr_implicit_settag(o, ODR_CONTEXT, 2) &&
(odr_sequence_of(o, z_InternationalString, &(*p)->nicknames,
- &(*p)->num_nicknames) || odr_ok(o)) &&
- odr_explicit(o, z_StringOrNumeric, &(*p)->elementTag, ODR_CONTEXT,
- 3, 0) &&
- odr_implicit(o, z_HumanString, &(*p)->description, ODR_CONTEXT,
- 4, 1) &&
+ &(*p)->num_nicknames, 0) || odr_ok(o)) &&
+ odr_explicit(o, z_StringOrNumeric, &(*p)->elementTag,
+ ODR_CONTEXT, 3, 0) &&
+ odr_implicit(o, z_HumanString, &(*p)->description,
+ ODR_CONTEXT, 4, 1) &&
odr_implicit(o, odr_integer, &(*p)->dataType, ODR_CONTEXT, 5, 1) &&
- z_OtherInformation(o, &(*p)->otherTagInfo, 1) &&
+ z_OtherInformation(o, &(*p)->otherTagInfo, 1, 0) &&
odr_sequence_end(o);
}
-int z_TagSetInfo(ODR o, Z_TagSetInfo **p, int opt)
+int z_TagSetInfo(ODR o, Z_TagSetInfo **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, z_CommonInfo, &(*p)->commonInfo, ODR_CONTEXT, 0, 1) &&
odr_implicit(o, odr_oid, &(*p)->tagSet, ODR_CONTEXT, 1, 0) &&
- odr_implicit(o, z_InternationalString, &(*p)->name, ODR_CONTEXT,
- 2, 0) &&
- odr_implicit(o, z_HumanString, &(*p)->description, ODR_CONTEXT,
- 3, 1) &&
+ odr_implicit(o, z_InternationalString, &(*p)->name,
+ ODR_CONTEXT, 2, 0) &&
+ odr_implicit(o, z_HumanString, &(*p)->description,
+ ODR_CONTEXT, 3, 1) &&
odr_implicit_settag(o, ODR_CONTEXT, 4) &&
(odr_sequence_of(o, (Odr_fun)z_TagSetInfoElements, &(*p)->elements,
- &(*p)->num_elements) || odr_ok(o)) &&
+ &(*p)->num_elements, 0) || odr_ok(o)) &&
odr_sequence_end(o);
}
-int z_RecordSyntaxInfo(ODR o, Z_RecordSyntaxInfo **p, int opt)
+int z_RecordSyntaxInfo(ODR o, Z_RecordSyntaxInfo **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, z_CommonInfo, &(*p)->commonInfo, ODR_CONTEXT, 0, 1) &&
odr_implicit(o, odr_oid, &(*p)->recordSyntax, ODR_CONTEXT, 1, 0) &&
- odr_implicit(o, z_InternationalString, &(*p)->name, ODR_CONTEXT,
- 2, 0) &&
+ odr_implicit(o, z_InternationalString, &(*p)->name,
+ ODR_CONTEXT, 2, 0) &&
odr_implicit_settag(o, ODR_CONTEXT, 3) &&
(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) &&
+ &(*p)->num_transferSyntaxes, 0) || 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, (Odr_fun)z_ElementInfo, &(*p)->abstractStructure,
- &(*p)->num_abstractStructure) || odr_ok(o)) &&
+ &(*p)->num_abstractStructure, 0) || odr_ok(o)) &&
odr_sequence_end(o);
}
-int z_AttributeSetInfo(ODR o, Z_AttributeSetInfo **p, int opt)
+int z_AttributeSetInfo(ODR o, Z_AttributeSetInfo **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, z_CommonInfo, &(*p)->commonInfo, ODR_CONTEXT, 0, 1) &&
odr_implicit(o, odr_oid, &(*p)->attributeSet, ODR_CONTEXT, 1, 0) &&
- odr_implicit(o, z_InternationalString, &(*p)->name, ODR_CONTEXT, 2, 0) &&
+ odr_implicit(o, z_InternationalString, &(*p)->name,
+ ODR_CONTEXT, 2, 0) &&
odr_implicit_settag(o, ODR_CONTEXT, 3) &&
(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) &&
+ &(*p)->num_attributes, 0) || odr_ok(o)) &&
+ odr_implicit(o, z_HumanString, &(*p)->description,
+ ODR_CONTEXT, 4, 1) &&
odr_sequence_end(o);
}
-int z_AttributeType(ODR o, Z_AttributeType **p, int opt)
+int z_AttributeType(ODR o, Z_AttributeType **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- odr_implicit(o, z_InternationalString, &(*p)->name, ODR_CONTEXT, 0, 1) &&
- odr_implicit(o, z_HumanString, &(*p)->description, ODR_CONTEXT, 1, 1) &&
- odr_implicit(o, odr_integer, &(*p)->attributeType, ODR_CONTEXT, 2, 0) &&
+ odr_implicit(o, z_InternationalString, &(*p)->name,
+ ODR_CONTEXT, 0, 1) &&
+ 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, (Odr_fun)z_AttributeDescription, &(*p)->attributeValues,
- &(*p)->num_attributeValues) &&
+ odr_sequence_of(o, (Odr_fun)z_AttributeDescription,
+ &(*p)->attributeValues,
+ &(*p)->num_attributeValues, 0) &&
odr_sequence_end(o);
}
-int z_AttributeDescription(ODR o, Z_AttributeDescription **p, int opt)
+int z_AttributeDescription(ODR o, Z_AttributeDescription **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- odr_implicit(o, z_InternationalString, &(*p)->name, ODR_CONTEXT, 0, 1) &&
- odr_implicit(o, z_HumanString, &(*p)->description, ODR_CONTEXT, 1, 1) &&
- odr_explicit(o, z_StringOrNumeric, &(*p)->attributeValue, ODR_CONTEXT, 2, 0) &&
+ odr_implicit(o, z_InternationalString, &(*p)->name,
+ ODR_CONTEXT, 0, 1) &&
+ 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, (Odr_fun)z_StringOrNumeric, &(*p)->equivalentAttributes,
- &(*p)->num_equivalentAttributes) || odr_ok(o)) &&
+ (odr_sequence_of(o, (Odr_fun)z_StringOrNumeric,
+ &(*p)->equivalentAttributes,
+ &(*p)->num_equivalentAttributes, 0) || odr_ok(o)) &&
odr_sequence_end(o);
}
-int z_TermListElement(ODR o, Z_TermListElement **p, int opt)
+int z_TermListElement(ODR o, Z_TermListElement **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- odr_implicit(o, z_InternationalString, &(*p)->name, ODR_CONTEXT, 1, 0) &&
+ odr_implicit(o, z_InternationalString, &(*p)->name,
+ ODR_CONTEXT, 1, 0) &&
odr_implicit(o, z_HumanString, &(*p)->title, ODR_CONTEXT, 2, 1) &&
odr_implicit(o, odr_integer, &(*p)->searchCost, ODR_CONTEXT, 3, 1) &&
odr_implicit(o, odr_bool, &(*p)->scanable, ODR_CONTEXT, 4, 0) &&
odr_implicit_settag(o, ODR_CONTEXT, 5) &&
(odr_sequence_of(o, z_InternationalString, &(*p)->broader,
- &(*p)->num_broader) || odr_ok(o)) &&
+ &(*p)->num_broader, 0) || odr_ok(o)) &&
odr_implicit_settag(o, ODR_CONTEXT, 6) &&
(odr_sequence_of(o, z_InternationalString, &(*p)->narrower,
- &(*p)->num_narrower) || odr_ok(o)) &&
+ &(*p)->num_narrower, 0) || odr_ok(o)) &&
odr_sequence_end(o);
}
-int z_TermListInfo(ODR o, Z_TermListInfo **p, int opt)
+int z_TermListInfo(ODR o, Z_TermListInfo **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, z_CommonInfo, &(*p)->commonInfo, ODR_CONTEXT, 0, 1) &&
- odr_implicit(o, z_DatabaseName, &(*p)->databaseName, ODR_CONTEXT,
- 1, 0) &&
+ odr_implicit(o, z_DatabaseName, &(*p)->databaseName,
+ ODR_CONTEXT, 1, 0) &&
odr_implicit_settag(o, ODR_CONTEXT, 2) &&
(odr_sequence_of(o, (Odr_fun)z_TermListElement, &(*p)->termLists,
- &(*p)->num_termLists) || odr_ok(o)) &&
+ &(*p)->num_termLists, 0) || odr_ok(o)) &&
odr_sequence_end(o);
}
-int z_ExtendedServicesInfo(ODR o, Z_ExtendedServicesInfo **p, int opt)
+int z_ExtendedServicesInfo(ODR o, Z_ExtendedServicesInfo **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, z_CommonInfo, &(*p)->commonInfo, ODR_CONTEXT, 0, 1) &&
odr_implicit(o, odr_oid, &(*p)->type, ODR_CONTEXT, 1, 0) &&
- odr_implicit(o, z_InternationalString, &(*p)->name, ODR_CONTEXT, 2, 1) &&
+ odr_implicit(o, z_InternationalString, &(*p)->name,
+ ODR_CONTEXT, 2, 1) &&
odr_implicit(o, odr_bool, &(*p)->privateType, ODR_CONTEXT, 3, 0) &&
- odr_implicit(o, odr_bool, &(*p)->restrictionsApply, ODR_CONTEXT, 5, 0) &&
+ odr_implicit(o, odr_bool, &(*p)->restrictionsApply,
+ ODR_CONTEXT, 5, 0) &&
odr_implicit(o, odr_bool, &(*p)->feeApply, ODR_CONTEXT, 6, 0) &&
odr_implicit(o, odr_bool, &(*p)->available, ODR_CONTEXT, 7, 0) &&
- odr_implicit(o, odr_bool, &(*p)->retentionSupported, ODR_CONTEXT, 8, 0) &&
+ odr_implicit(o, odr_bool, &(*p)->retentionSupported,
+ ODR_CONTEXT, 8, 0) &&
odr_implicit(o, odr_integer, &(*p)->waitAction, ODR_CONTEXT, 9, 0) &&
- odr_implicit(o, z_HumanString, &(*p)->description, ODR_CONTEXT, 10, 1) &&
- odr_implicit(o, z_External, &(*p)->specificExplain, ODR_CONTEXT, 11, 1) &&
- odr_implicit(o, z_InternationalString, &(*p)->esASN, ODR_CONTEXT, 12, 1) &&
+ odr_implicit(o, z_HumanString, &(*p)->description,
+ ODR_CONTEXT, 10, 1) &&
+ odr_implicit(o, z_External, &(*p)->specificExplain,
+ ODR_CONTEXT, 11, 1) &&
+ odr_implicit(o, z_InternationalString, &(*p)->esASN,
+ ODR_CONTEXT, 12, 1) &&
odr_sequence_end(o);
}
-int z_AttributeDetails(ODR o, Z_AttributeDetails **p, int opt)
+int z_AttributeDetails(ODR o, Z_AttributeDetails **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, z_CommonInfo, &(*p)->commonInfo, ODR_CONTEXT, 0, 1) &&
- odr_implicit(o, z_DatabaseName, &(*p)->databaseName, ODR_CONTEXT, 1, 0) &&
+ odr_implicit(o, z_DatabaseName, &(*p)->databaseName,
+ ODR_CONTEXT, 1, 0) &&
odr_implicit_settag(o, ODR_CONTEXT, 2) &&
- (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_of(o, (Odr_fun)z_AttributeSetDetails,
+ &(*p)->attributesBySet,
+ &(*p)->num_attributesBySet, 0) && odr_ok(o)) &&
+ odr_implicit(o, z_AttributeCombinations, &(*p)->attributeCombinations,
+ ODR_CONTEXT, 3, 1) &&
odr_sequence_end(o);
}
-int z_AttributeSetDetails(ODR o, Z_AttributeSetDetails **p, int opt)
+int z_AttributeSetDetails(ODR o, Z_AttributeSetDetails **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- odr_implicit(o, odr_oid, &(*p)->attributeSet, ODR_CONTEXT,
- 0, 0) &&
+ odr_implicit(o, odr_oid, &(*p)->attributeSet,
+ ODR_CONTEXT, 0, 0) &&
odr_implicit_settag(o, ODR_CONTEXT, 1) &&
- odr_sequence_of(o, (Odr_fun)z_AttributeTypeDetails, &(*p)->attributesByType,
- &(*p)->num_attributesByType) &&
+ odr_sequence_of(o, (Odr_fun)z_AttributeTypeDetails,
+ &(*p)->attributesByType,
+ &(*p)->num_attributesByType, 0) &&
odr_sequence_end(o);
}
-int z_AttributeTypeDetails(ODR o, Z_AttributeTypeDetails **p, int opt)
+int z_AttributeTypeDetails(ODR o, Z_AttributeTypeDetails **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- odr_implicit(o, odr_integer, &(*p)->attributeType, ODR_CONTEXT, 0, 0) &&
- odr_implicit(o, z_OmittedAttributeInterpretation, &(*p)->defaultIfOmitted,
+ odr_implicit(o, odr_integer, &(*p)->attributeType,
+ ODR_CONTEXT, 0, 0) &&
+ 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)) &&
+ &(*p)->num_attributeValues, 0) || odr_ok(o)) &&
odr_sequence_end(o);
}
-int z_OmittedAttributeInterpretation(ODR o, Z_OmittedAttributeInterpretation **p, int opt)
+int z_OmittedAttributeInterpretation(ODR o,
+ Z_OmittedAttributeInterpretation **p,
+ int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- odr_explicit(o, z_StringOrNumeric, &(*p)->defaultValue, ODR_CONTEXT, 0, 1) &&
- odr_implicit(o, z_HumanString, &(*p)->defaultDescription, ODR_CONTEXT, 1, 1) &&
+ odr_explicit(o, z_StringOrNumeric, &(*p)->defaultValue,
+ ODR_CONTEXT, 0, 1) &&
+ odr_implicit(o, z_HumanString, &(*p)->defaultDescription,
+ ODR_CONTEXT, 1, 1) &&
odr_sequence_end(o);
}
-int z_EScanInfo(ODR o, Z_EScanInfo **p, int opt)
+int z_EScanInfo(ODR o, Z_EScanInfo **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, odr_integer, &(*p)->maxStepSize, ODR_CONTEXT, 0, 1) &&
- odr_implicit(o, z_HumanString, &(*p)->collatingSequence, ODR_CONTEXT, 1, 1) &&
+ odr_implicit(o, z_HumanString, &(*p)->collatingSequence,
+ ODR_CONTEXT, 1, 1) &&
odr_implicit(o, odr_bool, &(*p)->increasing, ODR_CONTEXT, 2, 1) &&
odr_sequence_end(o);
}
-int z_TermListDetails(ODR o, Z_TermListDetails **p, int opt)
+int z_TermListDetails(ODR o, Z_TermListDetails **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, z_CommonInfo, &(*p)->commonInfo, ODR_CONTEXT, 0, 1) &&
- odr_implicit(o, z_InternationalString, &(*p)->termListName, ODR_CONTEXT, 1, 0) &&
- odr_implicit(o, z_HumanString, &(*p)->description, ODR_CONTEXT, 2, 1) &&
- odr_implicit(o, z_AttributeCombinations, &(*p)->attributes, ODR_CONTEXT, 3, 1) &&
+ odr_implicit(o, z_InternationalString, &(*p)->termListName,
+ ODR_CONTEXT, 1, 0) &&
+ odr_implicit(o, z_HumanString, &(*p)->description,
+ ODR_CONTEXT, 2, 1) &&
+ odr_implicit(o, z_AttributeCombinations, &(*p)->attributes,
+ ODR_CONTEXT, 3, 1) &&
odr_implicit(o, z_EScanInfo, &(*p)->scanInfo, ODR_CONTEXT, 4, 1) &&
- odr_implicit(o, odr_integer, &(*p)->estNumberTerms, ODR_CONTEXT, 5, 1) &&
+ odr_implicit(o, odr_integer, &(*p)->estNumberTerms,
+ ODR_CONTEXT, 5, 1) &&
odr_implicit_settag(o, ODR_CONTEXT, 6) &&
(odr_sequence_of(o, (Odr_fun)z_Term, &(*p)->sampleTerms,
- &(*p)->num_sampleTerms) || odr_ok(o)) &&
+ &(*p)->num_sampleTerms, 0) || odr_ok(o)) &&
odr_sequence_end(o);
}
-int z_ElementSetDetails(ODR o, Z_ElementSetDetails **p, int opt)
+int z_ElementSetDetails(ODR o, Z_ElementSetDetails **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, z_CommonInfo, &(*p)->commonInfo, ODR_CONTEXT, 0, 1) &&
- odr_implicit(o, z_DatabaseName, &(*p)->databaseName, ODR_CONTEXT, 1, 0) &&
- odr_implicit(o, z_ElementSetName, &(*p)->elementSetName, ODR_CONTEXT, 2, 0) &&
+ odr_implicit(o, z_DatabaseName, &(*p)->databaseName,
+ ODR_CONTEXT, 1, 0) &&
+ odr_implicit(o, z_ElementSetName, &(*p)->elementSetName,
+ ODR_CONTEXT, 2, 0) &&
odr_implicit(o, odr_oid, &(*p)->recordSyntax, ODR_CONTEXT, 3, 0) &&
odr_implicit(o, odr_oid, &(*p)->schema, ODR_CONTEXT, 4, 0) &&
- odr_implicit(o, z_HumanString, &(*p)->description, ODR_CONTEXT, 5, 1) &&
+ odr_implicit(o, z_HumanString, &(*p)->description,
+ ODR_CONTEXT, 5, 1) &&
odr_implicit_settag(o, ODR_CONTEXT, 6) &&
- (odr_sequence_of(o, (Odr_fun)z_PerElementDetails, &(*p)->detailsPerElement, &(*p)->num_detailsPerElement) || odr_ok(o)) &&
+ (odr_sequence_of(o, (Odr_fun)z_PerElementDetails,
+ &(*p)->detailsPerElement,
+ &(*p)->num_detailsPerElement, 0) || odr_ok(o)) &&
odr_sequence_end(o);
}
-int z_RetrievalRecordDetails(ODR o, Z_RetrievalRecordDetails **p, int opt)
+int z_RetrievalRecordDetails(ODR o, Z_RetrievalRecordDetails **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, z_CommonInfo, &(*p)->commonInfo, ODR_CONTEXT, 0, 1) &&
- odr_implicit(o, z_DatabaseName, &(*p)->databaseName, ODR_CONTEXT, 1, 0) &&
+ odr_implicit(o, z_DatabaseName, &(*p)->databaseName,
+ ODR_CONTEXT, 1, 0) &&
odr_implicit(o, odr_oid, &(*p)->schema, ODR_CONTEXT, 2, 0) &&
odr_implicit(o, odr_oid, &(*p)->recordSyntax, ODR_CONTEXT, 3, 0) &&
- odr_implicit(o, z_HumanString, &(*p)->description, ODR_CONTEXT, 4, 1) &&
+ odr_implicit(o, z_HumanString, &(*p)->description,
+ ODR_CONTEXT, 4, 1) &&
odr_implicit_settag(o, ODR_CONTEXT, 5) &&
- (odr_sequence_of(o, (Odr_fun)z_PerElementDetails, &(*p)->detailsPerElement,
- &(*p)->num_detailsPerElement) || odr_ok(o)) &&
+ (odr_sequence_of(o, (Odr_fun)z_PerElementDetails,
+ &(*p)->detailsPerElement,
+ &(*p)->num_detailsPerElement, 0) || odr_ok(o)) &&
odr_sequence_end(o);
}
-int z_PerElementDetails(ODR o, Z_PerElementDetails **p, int opt)
+int z_PerElementDetails(ODR o, Z_PerElementDetails **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- odr_implicit(o, z_InternationalString, &(*p)->name, ODR_CONTEXT, 0, 1) &&
+ 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, (Odr_fun)z_Path, &(*p)->schemaTags, &(*p)->num_schemaTags) ||
- odr_ok(o)) &&
+ (odr_sequence_of(o, (Odr_fun)z_Path, &(*p)->schemaTags,
+ &(*p)->num_schemaTags, 0) ||
+ 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) &&
odr_implicit(o, odr_integer, &(*p)->avgSize, ODR_CONTEXT, 5, 1) &&
odr_implicit(o, odr_integer, &(*p)->fixedSize, ODR_CONTEXT, 6, 1) &&
odr_implicit(o, odr_bool, &(*p)->repeatable, ODR_CONTEXT, 8, 0) &&
odr_implicit(o, odr_bool, &(*p)->required, ODR_CONTEXT, 9, 0) &&
- odr_implicit(o, z_HumanString, &(*p)->description, ODR_CONTEXT, 12, 1) &&
+ odr_implicit(o, z_HumanString, &(*p)->description,
+ ODR_CONTEXT, 12, 1) &&
odr_implicit(o, z_HumanString, &(*p)->contents, ODR_CONTEXT, 13, 1) &&
- odr_implicit(o, z_HumanString, &(*p)->billingInfo, ODR_CONTEXT, 14, 1) &&
- odr_implicit(o, z_HumanString, &(*p)->restrictions, ODR_CONTEXT, 15, 1) &&
+ odr_implicit(o, z_HumanString, &(*p)->billingInfo,
+ ODR_CONTEXT, 14, 1) &&
+ odr_implicit(o, z_HumanString, &(*p)->restrictions,
+ ODR_CONTEXT, 15, 1) &&
odr_implicit_settag(o, ODR_CONTEXT, 16) &&
(odr_sequence_of(o, z_InternationalString, &(*p)->alternateNames,
- &(*p)->num_alternateNames) || odr_ok(o)) &&
+ &(*p)->num_alternateNames, 0) || odr_ok(o)) &&
odr_implicit_settag(o, ODR_CONTEXT, 17) &&
(odr_sequence_of(o, z_InternationalString, &(*p)->genericNames,
- &(*p)->num_genericNames) || odr_ok(o)) &&
+ &(*p)->num_genericNames, 0) || odr_ok(o)) &&
odr_implicit(o, z_AttributeCombinations, &(*p)->searchAccess,
- ODR_CONTEXT, 18, 1) &&
+ ODR_CONTEXT, 18, 1) &&
odr_sequence_end(o);
}
-int z_RecordTag(ODR o, Z_RecordTag **p, int opt)
+int z_RecordTag(ODR o, Z_RecordTag **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- odr_explicit(o, z_StringOrNumeric, &(*p)->qualifier, ODR_CONTEXT,
- 0, 1) &&
- odr_explicit(o, z_StringOrNumeric, &(*p)->tagValue, ODR_CONTEXT,
- 1, 0) &&
+ odr_explicit(o, z_StringOrNumeric, &(*p)->qualifier,
+ ODR_CONTEXT, 0, 1) &&
+ odr_explicit(o, z_StringOrNumeric, &(*p)->tagValue,
+ ODR_CONTEXT, 1, 0) &&
odr_sequence_end(o);
}
-int z_SortDetails(ODR o, Z_SortDetails **p, int opt)
+int z_SortDetails(ODR o, Z_SortDetails **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, z_CommonInfo, &(*p)->commonInfo, ODR_CONTEXT, 0, 1) &&
- odr_implicit(o, z_DatabaseName, &(*p)->databaseName, ODR_CONTEXT,
- 1, 0) &&
+ odr_implicit(o, z_DatabaseName, &(*p)->databaseName,
+ ODR_CONTEXT, 1, 0) &&
odr_implicit_settag(o, ODR_CONTEXT, 2) &&
(odr_sequence_of(o, (Odr_fun)z_SortKeyDetails, &(*p)->sortKeys,
- &(*p)->num_sortKeys) || odr_ok(o)) &&
+ &(*p)->num_sortKeys, 0) || odr_ok(o)) &&
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_sequence_begin(o, p, sizeof(**p)))
+int z_SortKeyDetails (ODR o, Z_SortKeyDetails **p, int opt, const char *name)
+{
+ static Odr_arm arm[] = {
+ {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_SortKeyDetails_character,
+ (Odr_fun) odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_SortKeyDetails_numeric,
+ (Odr_fun) odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_SortKeyDetails_structured,
+ (Odr_fun) z_HumanString, 0},
+ {-1, -1, -1, -1, (Odr_fun) 0, 0}
+ };
+ if (!odr_sequence_begin (o, p, sizeof(**p), 0))
+ 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, 0) || odr_ok(o)) &&
+ odr_implicit (o, z_AttributeCombinations,
+ &(*p)->attributeSpecifications, ODR_CONTEXT, 2, 1) &&
+ ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 3, 0) &&
+ odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) &&
+ 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,
+ const char *name)
+{
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, z_CommonInfo, &(*p)->commonInfo, ODR_CONTEXT, 0, 1) &&
- odr_implicit(o, z_DatabaseName, &(*p)->databaseName, ODR_CONTEXT,
- 1, 0) &&
- odr_implicit(o, odr_integer, &(*p)->processingContext, ODR_CONTEXT,
- 2, 0) &&
- odr_implicit(o, z_InternationalString, &(*p)->name, ODR_CONTEXT,
- 3, 0) &&
+ odr_implicit(o, z_DatabaseName, &(*p)->databaseName,
+ ODR_CONTEXT, 1, 0) &&
+ odr_implicit(o, odr_integer, &(*p)->processingContext,
+ ODR_CONTEXT, 2, 0) &&
+ odr_implicit(o, z_InternationalString, &(*p)->name,
+ ODR_CONTEXT, 3, 0) &&
odr_implicit(o, odr_oid, &(*p)->oid, ODR_CONTEXT, 4, 0) &&
- odr_implicit(o, z_HumanString, &(*p)->description, ODR_CONTEXT, 5, 1) &&
+ odr_implicit(o, z_HumanString, &(*p)->description,
+ ODR_CONTEXT, 5, 1) &&
odr_implicit(o, z_External, &(*p)->instructions, ODR_CONTEXT, 6, 1) &&
odr_sequence_end(o);
}
-int z_VariantSetInfo(ODR o, Z_VariantSetInfo **p, int opt)
+int z_VariantSetInfo(ODR o, Z_VariantSetInfo **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, z_CommonInfo, &(*p)->commonInfo, ODR_CONTEXT, 0, 1) &&
odr_implicit(o, odr_oid, &(*p)->variantSet, ODR_CONTEXT, 1, 0) &&
- odr_implicit(o, z_InternationalString, &(*p)->name, ODR_CONTEXT,
- 2, 0) &&
+ odr_implicit(o, z_InternationalString, &(*p)->name,
+ ODR_CONTEXT, 2, 0) &&
odr_implicit_settag(o, ODR_CONTEXT, 3) &&
(odr_sequence_of(o, (Odr_fun)z_VariantClass, &(*p)->variants,
- &(*p)->num_variants) || odr_ok(o)) &&
+ &(*p)->num_variants, 0) || odr_ok(o)) &&
odr_sequence_end(o);
}
-int z_VariantClass(ODR o, Z_VariantClass **p, int opt)
+int z_VariantClass(ODR o, Z_VariantClass **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- odr_implicit(o, z_InternationalString, &(*p)->name, ODR_CONTEXT,
- 0, 1) &&
- odr_implicit(o, z_HumanString, &(*p)->description, ODR_CONTEXT, 1, 1) &&
+ odr_implicit(o, z_InternationalString, &(*p)->name,
+ ODR_CONTEXT, 0, 1) &&
+ 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, (Odr_fun)z_VariantType, &(*p)->variantTypes,
- &(*p)->num_variantTypes) &&
+ &(*p)->num_variantTypes, 0) &&
odr_sequence_end(o);
}
-int z_VariantType(ODR o, Z_VariantType **p, int opt)
+int z_VariantType(ODR o, Z_VariantType **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- odr_implicit(o, z_InternationalString, &(*p)->name, ODR_CONTEXT, 0, 1) &&
- odr_implicit(o, z_HumanString, &(*p)->description, ODR_CONTEXT, 1, 1) &&
- odr_implicit(o, odr_integer, &(*p)->variantType, ODR_CONTEXT, 2, 0) &&
- odr_implicit(o, z_VariantValue, &(*p)->variantValue, ODR_CONTEXT, 3, 1) &&
+ odr_implicit(o, z_InternationalString, &(*p)->name,
+ ODR_CONTEXT, 0, 1) &&
+ odr_implicit(o, z_HumanString, &(*p)->description,
+ ODR_CONTEXT, 1, 1) &&
+ odr_implicit(o, odr_integer, &(*p)->variantType,
+ ODR_CONTEXT, 2, 0) &&
+ odr_implicit(o, z_VariantValue, &(*p)->variantValue,
+ ODR_CONTEXT, 3, 1) &&
odr_sequence_end(o);
}
-int z_VariantValue(ODR o, Z_VariantValue **p, int opt)
+int z_VariantValue(ODR o, Z_VariantValue **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_explicit(o, odr_integer, &(*p)->dataType, ODR_CONTEXT, 0, 0) &&
odr_sequence_end(o);
}
-int z_ValueSetEnumerated(ODR o, Z_ValueSetEnumerated **p, int opt)
+int z_ValueSetEnumerated(ODR o, Z_ValueSetEnumerated **p, int opt,
+ const char *name)
{
if (!odr_initmember(o, p, sizeof(**p)))
return opt && odr_ok(o);
if (odr_sequence_of(o, (Odr_fun)z_ValueDescription, &(*p)->elements,
- &(*p)->num))
+ &(*p)->num, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_ValueSet(ODR o, Z_ValueSet **p, int opt)
+int z_ValueSet(ODR o, Z_ValueSet **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
- {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_ValueSet_range, (Odr_fun)z_ValueRange},
+ {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_ValueSet_range,
+ (Odr_fun)z_ValueRange, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ValueSet_enumerated,
- (Odr_fun)z_ValueSetEnumerated},
- {-1, -1, -1, -1, 0}
+ (Odr_fun)z_ValueSetEnumerated, 0},
+ {-1, -1, -1, -1, 0, 0}
};
-
+
if (!odr_initmember(o, p, sizeof(**p)))
return opt && odr_ok(o);
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_ValueRange(ODR o, Z_ValueRange **p, int opt)
+int z_ValueRange(ODR o, Z_ValueRange **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_explicit(o, z_ValueDescription, &(*p)->lower, ODR_CONTEXT, 0, 1) &&
odr_sequence_end(o);
}
-int z_ValueDescription(ODR o, Z_ValueDescription **p, int opt)
+int z_ValueDescription(ODR o, Z_ValueDescription **p, int opt,
+ const char *name)
{
static Odr_arm arm[] =
{
- {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}
+ {ODR_NONE, -1, -1, Z_ValueDescription_integer,
+ (Odr_fun)odr_integer, 0},
+ {ODR_NONE, -1, -1, Z_ValueDescription_string,
+ (Odr_fun)z_InternationalString, 0},
+ {ODR_NONE, -1, -1, Z_ValueDescription_octets,
+ (Odr_fun)odr_octetstring, 0},
+ {ODR_NONE, -1, -1, Z_ValueDescription_oid,
+ (Odr_fun)odr_oid, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ValueDescription_unit,
+ (Odr_fun)z_Unit, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ValueDescription_valueAndUnit,
+ (Odr_fun)z_IntUnit, 0},
+ {-1, -1, -1, -1, 0, 0}
};
-
+
if (!odr_initmember(o, p, sizeof(**p)))
return opt && odr_ok(o);
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_UnitInfo(ODR o, Z_UnitInfo **p, int opt)
+int z_UnitInfo(ODR o, Z_UnitInfo **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, z_CommonInfo, &(*p)->commonInfo, ODR_CONTEXT, 0, 1) &&
- odr_implicit(o, z_InternationalString, &(*p)->unitSystem, ODR_CONTEXT,
- 1, 0) &&
- odr_implicit(o, z_HumanString, &(*p)->description, ODR_CONTEXT, 2, 1) &&
+ odr_implicit(o, z_InternationalString, &(*p)->unitSystem,
+ ODR_CONTEXT, 1, 0) &&
+ odr_implicit(o, z_HumanString, &(*p)->description,
+ ODR_CONTEXT, 2, 1) &&
odr_implicit_settag(o, ODR_CONTEXT, 3) &&
- (odr_sequence_of(o, (Odr_fun)z_UnitType, &(*p)->units, &(*p)->num_units) ||
- odr_ok(o)) &&
+ (odr_sequence_of(o, (Odr_fun)z_UnitType, &(*p)->units,
+ &(*p)->num_units, 0) ||
+ odr_ok(o)) &&
odr_sequence_end(o);
}
-int z_UnitType(ODR o, Z_UnitType **p, int opt)
+int z_UnitType(ODR o, Z_UnitType **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- odr_implicit(o, z_InternationalString, &(*p)->name, ODR_CONTEXT,
- 0, 1) &&
- odr_implicit(o, z_HumanString, &(*p)->description, ODR_CONTEXT, 1, 1) &&
- odr_explicit(o, z_StringOrNumeric, &(*p)->unitType, ODR_CONTEXT,
- 2, 0) &&
+ odr_implicit(o, z_InternationalString, &(*p)->name,
+ ODR_CONTEXT, 0, 1) &&
+ odr_implicit(o, z_HumanString, &(*p)->description,
+ ODR_CONTEXT, 1, 1) &&
+ odr_explicit(o, z_StringOrNumeric, &(*p)->unitType,
+ ODR_CONTEXT, 2, 0) &&
odr_implicit_settag(o, ODR_CONTEXT, 3) &&
- odr_sequence_of(o, (Odr_fun)z_Units, &(*p)->units, &(*p)->num_units) &&
+ odr_sequence_of(o, (Odr_fun)z_Units, &(*p)->units,
+ &(*p)->num_units, 0) &&
odr_sequence_end(o);
}
-int z_Units(ODR o, Z_Units **p, int opt)
+int z_Units(ODR o, Z_Units **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- odr_implicit(o, z_InternationalString, &(*p)->name, ODR_CONTEXT, 0, 1) &&
- odr_implicit(o, z_HumanString, &(*p)->description, ODR_CONTEXT, 1, 1) &&
- odr_explicit(o, z_StringOrNumeric, &(*p)->unit, ODR_CONTEXT, 2, 0) &&
+ odr_implicit(o, z_InternationalString, &(*p)->name,
+ ODR_CONTEXT, 0, 1) &&
+ odr_implicit(o, z_HumanString, &(*p)->description,
+ ODR_CONTEXT, 1, 1) &&
+ odr_explicit(o, z_StringOrNumeric, &(*p)->unit,
+ ODR_CONTEXT, 2, 0) &&
odr_sequence_end(o);
}
-int z_CategoryList(ODR o, Z_CategoryList **p, int opt)
+int z_CategoryList(ODR o, Z_CategoryList **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, z_CommonInfo, &(*p)->commonInfo, ODR_CONTEXT, 0, 1) &&
odr_implicit_settag(o, ODR_CONTEXT, 1) &&
odr_sequence_of(o, (Odr_fun)z_CategoryInfo, &(*p)->categories,
- &(*p)->num_categories) &&
+ &(*p)->num_categories, 0) &&
odr_sequence_end(o);
}
-int z_CategoryInfo(ODR o, Z_CategoryInfo **p, int opt)
+int z_CategoryInfo(ODR o, Z_CategoryInfo **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- odr_implicit(o, z_InternationalString, &(*p)->category, ODR_CONTEXT,
- 1, 0) &&
+ odr_implicit(o, z_InternationalString, &(*p)->category,
+ ODR_CONTEXT, 1, 0) &&
odr_implicit(o, z_InternationalString, &(*p)->originalCategory,
- ODR_CONTEXT, 2, 1) &&
- odr_implicit(o, z_HumanString, &(*p)->description, ODR_CONTEXT, 3, 1) &&
- odr_implicit(o, z_InternationalString, &(*p)->asn1Module, ODR_CONTEXT,
- 4, 1) &&
+ ODR_CONTEXT, 2, 1) &&
+ odr_implicit(o, z_HumanString, &(*p)->description,
+ ODR_CONTEXT, 3, 1) &&
+ odr_implicit(o, z_InternationalString, &(*p)->asn1Module,
+ ODR_CONTEXT, 4, 1) &&
odr_sequence_end(o);
}
-int z_ExplainRecord(ODR o, Z_ExplainRecord **p, int opt)
+int z_ExplainRecord(ODR o, Z_ExplainRecord **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
- {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, 0, Z_Explain_targetInfo,
+ (Odr_fun)z_TargetInfo, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Explain_databaseInfo,
+ (Odr_fun)z_DatabaseInfo, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Explain_schemaInfo,
+ (Odr_fun)z_SchemaInfo, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Explain_tagSetInfo,
+ (Odr_fun)z_TagSetInfo, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 4, Z_Explain_recordSyntaxInfo,
- (Odr_fun)z_RecordSyntaxInfo},
+ (Odr_fun)z_RecordSyntaxInfo, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 5, Z_Explain_attributeSetInfo,
- (Odr_fun)z_AttributeSetInfo},
+ (Odr_fun)z_AttributeSetInfo, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 6, Z_Explain_termListInfo,
- (Odr_fun)z_TermListInfo},
+ (Odr_fun)z_TermListInfo, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 7, Z_Explain_extendedServicesInfo,
- (Odr_fun)z_ExtendedServicesInfo},
+ (Odr_fun)z_ExtendedServicesInfo, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 8, Z_Explain_attributeDetails,
- (Odr_fun)z_AttributeDetails},
+ (Odr_fun)z_AttributeDetails, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 9, Z_Explain_termListDetails,
- (Odr_fun)z_TermListDetails},
+ (Odr_fun)z_TermListDetails, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 10, Z_Explain_elementSetDetails,
- (Odr_fun)z_ElementSetDetails},
+ (Odr_fun)z_ElementSetDetails, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 11, Z_Explain_retrievalRecordDetails,
- (Odr_fun)z_RetrievalRecordDetails},
+ (Odr_fun)z_RetrievalRecordDetails, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 12, Z_Explain_sortDetails,
- (Odr_fun)z_SortDetails},
+ (Odr_fun)z_SortDetails, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 13, Z_Explain_processing,
- (Odr_fun)z_ProcessingInformation},
+ (Odr_fun)z_ProcessingInformation, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 14, Z_Explain_variants,
- (Odr_fun)z_VariantSetInfo},
- {ODR_IMPLICIT, ODR_CONTEXT, 15, Z_Explain_units, (Odr_fun)z_UnitInfo},
+ (Odr_fun)z_VariantSetInfo, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 15, Z_Explain_units,
+ (Odr_fun)z_UnitInfo, 0},
{ODR_IMPLICIT, ODR_CONTEXT, 100, Z_Explain_categoryList,
- (Odr_fun)z_CategoryList},
- {-1, -1, -1, -1, 0}
+ (Odr_fun)z_CategoryList, 0},
+ {-1, -1, -1, -1, 0, 0}
};
-
+
if (!odr_initmember(o, p, sizeof(**p)))
return opt && odr_ok(o);
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
/*
- * Copyright (c) 1995-1998, Index Data.
+ * Copyright (c) 1995-1999, Index Data.
* See the file LICENSE for details.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: prt-ext.c,v $
- * Revision 1.19 1998-03-31 15:13:19 adam
+ * Revision 1.20 1999-04-20 09:56:48 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.19 1998/03/31 15:13:19 adam
* Development towards compiled ASN.1.
*
* Revision 1.18 1998/03/31 11:07:44 adam
return 0;
}
-int z_External(ODR o, Z_External **p, int opt)
+int z_External(ODR o, Z_External **p, int opt, const char *name)
{
oident *oid;
Z_ext_typeent *type;
static Odr_arm arm[] =
{
- {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_single, (Odr_fun)odr_any},
- {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_External_octet, (Odr_fun)odr_octetstring},
- {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_External_arbitrary, (Odr_fun)odr_bitstring},
-
- {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_sutrs, (Odr_fun)z_SUTRS},
+ {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_single,
+ (Odr_fun)odr_any, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_External_octet,
+ (Odr_fun)odr_octetstring, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_External_arbitrary,
+ (Odr_fun)odr_bitstring, 0},
+ {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_sutrs,
+ (Odr_fun)z_SUTRS, 0},
{ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_explainRecord,
- (Odr_fun)z_ExplainRecord},
+ (Odr_fun)z_ExplainRecord, 0},
{ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_resourceReport1,
- (Odr_fun)z_ResourceReport1},
+ (Odr_fun)z_ResourceReport1, 0},
{ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_resourceReport2,
- (Odr_fun)z_ResourceReport2},
+ (Odr_fun)z_ResourceReport2, 0},
{ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_promptObject1,
- (Odr_fun)z_PromptObject1},
- {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_grs1, (Odr_fun)z_GenericRecord},
+ (Odr_fun)z_PromptObject1, 0},
+ {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_grs1,
+ (Odr_fun)z_GenericRecord, 0},
{ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_extendedService,
- (Odr_fun)z_TaskPackage},
+ (Odr_fun)z_TaskPackage, 0},
#ifdef ASN_COMPILED
- {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_itemOrder, (Odr_fun)z_IOItemOrder},
+ {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_itemOrder,
+ (Odr_fun)z_IOItemOrder, 0},
#else
- {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_itemOrder, (Odr_fun)z_ItemOrder},
+ {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_itemOrder,
+ (Odr_fun)z_ItemOrder, 0},
#endif
- {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_diag1, (Odr_fun)z_DiagnosticFormat},
- {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_espec1, (Odr_fun)z_Espec1},
- {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_summary, (Odr_fun)z_BriefBib},
- {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_OPAC, (Odr_fun)z_OPACRecord},
+ {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_diag1,
+ (Odr_fun)z_DiagnosticFormat, 0},
+ {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_espec1,
+ (Odr_fun)z_Espec1, 0},
+ {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_summary,
+ (Odr_fun)z_BriefBib, 0},
+ {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_OPAC,
+ (Odr_fun)z_OPACRecord, 0},
{ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_searchResult1,
- (Odr_fun)z_SearchInfoReport},
- {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_update, (Odr_fun)z_IUUpdate},
- {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_dateTime, (Odr_fun)z_DateTime},
+ (Odr_fun)z_SearchInfoReport, 0},
+ {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_update,
+ (Odr_fun)z_IUUpdate, 0},
+ {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_dateTime,
+ (Odr_fun)z_DateTime, 0},
{ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_universeReport,
- (Odr_fun)z_UniverseReport},
- {-1, -1, -1, -1, 0}
+ (Odr_fun)z_UniverseReport, 0},
+ {-1, -1, -1, -1, 0, 0}
};
-
+
odr_implicit_settag(o, ODR_UNIVERSAL, ODR_EXTERNAL);
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), name))
return opt && odr_ok(o);
- if (!(odr_oid(o, &(*p)->direct_reference, 1) &&
- odr_integer(o, &(*p)->indirect_reference, 1) &&
- odr_graphicstring(o, &(*p)->descriptor, 1)))
+ if (!(odr_oid(o, &(*p)->direct_reference, 1, 0) &&
+ odr_integer(o, &(*p)->indirect_reference, 1, 0) &&
+ odr_graphicstring(o, &(*p)->descriptor, 1, 0)))
return 0;
/*
* Do we know this beast?
(type = z_ext_getentbyref(oid->value)))
{
int zclass, tag, cons;
-
+
/*
* We know it. If it's represented as an ASN.1 type, bias the CHOICE.
*/
odr_choice_bias(o, type->what);
}
return
- odr_choice(o, arm, &(*p)->u, &(*p)->which) &&
+ odr_choice(o, arm, &(*p)->u, &(*p)->which, name) &&
odr_sequence_end(o);
}
+
/*
- * Copyright (c) 1995, Index Data.
+ * Copyright (c) 1995-1999, Index Data.
* See the file LICENSE for details.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: prt-grs.c,v $
- * Revision 1.7 1998-02-11 11:53:32 adam
+ * Revision 1.8 1999-04-20 09:56:48 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.7 1998/02/11 11:53:32 adam
* Changed code so that it compiles as C++.
*
* Revision 1.6 1997/05/14 06:53:23 adam
#include <proto.h>
-int z_TaggedElement(ODR o, Z_TaggedElement **p, int opt);
-int z_ElementData(ODR o, Z_ElementData **p, int opt);
-int z_ElementMetaData(ODR o, Z_ElementMetaData **p, int opt);
-int z_TagUnit(ODR o, Z_TagUnit **p, int opt);
-int z_TagPath(ODR o, Z_TagPath **p, int opt);
-int z_Order(ODR o, Z_Order **p, int opt);
-int z_Usage(ODR o, Z_Usage **p, int opt);
-int z_HitVector(ODR o, Z_HitVector **p, int opt);
-int z_Triple(ODR o, Z_Triple **p, int opt);
-int z_Variant(ODR o, Z_Variant **p, int opt);
+int z_TaggedElement(ODR o, Z_TaggedElement **p, int opt, const char *name);
+int z_ElementData(ODR o, Z_ElementData **p, int opt, const char *name);
+int z_ElementMetaData(ODR o, Z_ElementMetaData **p, int opt, const char *name);
+int z_TagUnit(ODR o, Z_TagUnit **p, int opt, const char *name);
+int z_TagPath(ODR o, Z_TagPath **p, int opt, const char *name);
+int z_Order(ODR o, Z_Order **p, int opt, const char *name);
+int z_Usage(ODR o, Z_Usage **p, int opt, const char *name);
+int z_HitVector(ODR o, Z_HitVector **p, int opt, const char *name);
+int z_Triple(ODR o, Z_Triple **p, int opt, const char *name);
+int z_Variant(ODR o, Z_Variant **p, int opt, const char *name);
-int z_GenericRecord(ODR o, Z_GenericRecord **p, int opt)
+int z_GenericRecord(ODR o, Z_GenericRecord **p, int opt, const char *name)
{
if (o->direction == ODR_DECODE)
*p = (Z_GenericRecord *)odr_malloc(o, sizeof(**p));
else if (!*p)
return opt;
- if (odr_sequence_of(o, (Odr_fun)z_TaggedElement, &(*p)->elements, &(*p)->num_elements))
+ if (odr_sequence_of(o, (Odr_fun)z_TaggedElement, &(*p)->elements,
+ &(*p)->num_elements, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_TaggedElement(ODR o, Z_TaggedElement **p, int opt)
+int z_TaggedElement(ODR o, Z_TaggedElement **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- odr_implicit(o, odr_integer, &(*p)->tagType, ODR_CONTEXT, 1, 1) &&
- odr_explicit(o, z_StringOrNumeric, &(*p)->tagValue, ODR_CONTEXT, 2, 0) &&
- odr_implicit(o, odr_integer, &(*p)->tagOccurrence, ODR_CONTEXT, 3, 1) &&
- odr_explicit(o, z_ElementData, &(*p)->content, ODR_CONTEXT, 4, 0) &&
- odr_implicit(o, z_ElementMetaData, &(*p)->metaData, ODR_CONTEXT, 5, 1) &&
+ odr_implicit(o, odr_integer, &(*p)->tagType,
+ ODR_CONTEXT, 1, 1) &&
+ odr_explicit(o, z_StringOrNumeric, &(*p)->tagValue,
+ ODR_CONTEXT, 2, 0) &&
+ odr_implicit(o, odr_integer, &(*p)->tagOccurrence,
+ ODR_CONTEXT, 3, 1) &&
+ odr_explicit(o, z_ElementData, &(*p)->content,
+ ODR_CONTEXT, 4, 0) &&
+ odr_implicit(o, z_ElementMetaData, &(*p)->metaData,
+ ODR_CONTEXT, 5, 1) &&
odr_implicit(o, z_Variant, &(*p)->appliedVariant, ODR_CONTEXT, 6, 1) &&
odr_sequence_end(o);
}
-
-int z_ElementData(ODR o, Z_ElementData **p, int opt)
+
+int z_ElementData(ODR o, Z_ElementData **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
- {ODR_NONE, -1, -1, Z_ElementData_octets, (Odr_fun)odr_octetstring},
- {ODR_NONE, -1, -1, Z_ElementData_numeric, (Odr_fun)odr_integer},
- {ODR_NONE, -1, -1, Z_ElementData_date, (Odr_fun)odr_generalizedtime},
- {ODR_NONE, -1, -1, Z_ElementData_ext, (Odr_fun)z_External},
- {ODR_NONE, -1, -1, Z_ElementData_string, (Odr_fun)z_InternationalString},
+ {ODR_NONE, -1, -1, Z_ElementData_octets,
+ (Odr_fun)odr_octetstring, 0},
+ {ODR_NONE, -1, -1, Z_ElementData_numeric,
+ (Odr_fun)odr_integer, 0},
+ {ODR_NONE, -1, -1, Z_ElementData_date,
+ (Odr_fun)odr_generalizedtime, 0},
+ {ODR_NONE, -1, -1, Z_ElementData_ext,
+ (Odr_fun)z_External, 0},
+ {ODR_NONE, -1, -1, Z_ElementData_string,
+ (Odr_fun)z_InternationalString, 0},
/* The entry below provides some backwards compatibility */
- {ODR_NONE, -1, -1, Z_ElementData_string, (Odr_fun)odr_visiblestring},
- {ODR_NONE, -1, -1, Z_ElementData_trueOrFalse, (Odr_fun)odr_bool},
- {ODR_NONE, -1, -1, Z_ElementData_oid, (Odr_fun)odr_oid},
- {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ElementData_intUnit, (Odr_fun)z_IntUnit},
- {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ElementData_elementNotThere, (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_ElementData_elementEmpty, (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_ElementData_noDataRequested, (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_ElementData_diagnostic, (Odr_fun)z_External},
- {ODR_EXPLICIT, ODR_CONTEXT, 6, Z_ElementData_subtree, (Odr_fun)z_GenericRecord},
- {-1, -1, -1, -1, 0}
+ {ODR_NONE, -1, -1, Z_ElementData_string,
+ (Odr_fun)odr_visiblestring, 0},
+ {ODR_NONE, -1, -1, Z_ElementData_trueOrFalse,
+ (Odr_fun)odr_bool, 0},
+ {ODR_NONE, -1, -1, Z_ElementData_oid,
+ (Odr_fun)odr_oid, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ElementData_intUnit,
+ (Odr_fun)z_IntUnit, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ElementData_elementNotThere,
+ (Odr_fun)odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_ElementData_elementEmpty,
+ (Odr_fun)odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_ElementData_noDataRequested,
+ (Odr_fun)odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_ElementData_diagnostic,
+ (Odr_fun)z_External, 0},
+ {ODR_EXPLICIT, ODR_CONTEXT, 6, Z_ElementData_subtree,
+ (Odr_fun)z_GenericRecord, 0},
+ {-1, -1, -1, -1, 0, 0}
};
if (o->direction == ODR_DECODE)
*p = (Z_ElementData *)odr_malloc(o, sizeof(**p));
else if (!*p)
return opt;
- if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_ElementMetaData(ODR o, Z_ElementMetaData **p, int opt)
+int z_ElementMetaData(ODR o, Z_ElementMetaData **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, z_Order, &(*p)->seriesOrder, ODR_CONTEXT, 1, 1) &&
odr_implicit(o, z_Usage, &(*p)->usageRight, ODR_CONTEXT, 2, 1) &&
odr_implicit_settag(o, ODR_CONTEXT, 3) &&
- (odr_sequence_of(o, (Odr_fun)z_HitVector, &(*p)->hits, &(*p)->num_hits) ||
- odr_ok(o)) &&
- odr_implicit(o, z_InternationalString, &(*p)->displayName, ODR_CONTEXT,
- 4, 1) &&
+ (odr_sequence_of(o, (Odr_fun)z_HitVector, &(*p)->hits,
+ &(*p)->num_hits, 0) ||
+ odr_ok(o)) &&
+ odr_implicit(o, z_InternationalString, &(*p)->displayName,
+ ODR_CONTEXT, 4, 1) &&
odr_implicit_settag(o, ODR_CONTEXT, 5) &&
(odr_sequence_of(o, (Odr_fun)z_Variant, &(*p)->supportedVariants,
- &(*p)->num_supportedVariants) || odr_ok(o)) &&
- odr_implicit(o, z_InternationalString, &(*p)->message, ODR_CONTEXT,
- 6, 1) &&
- odr_implicit(o, odr_octetstring, &(*p)->elementDescriptor, ODR_CONTEXT,
- 7, 1) &&
+ &(*p)->num_supportedVariants, 0) || odr_ok(o)) &&
+ odr_implicit(o, z_InternationalString, &(*p)->message,
+ ODR_CONTEXT, 6, 1) &&
+ odr_implicit(o, odr_octetstring, &(*p)->elementDescriptor,
+ ODR_CONTEXT, 7, 1) &&
odr_implicit(o, z_TagPath, &(*p)->surrogateFor, ODR_CONTEXT, 8, 1) &&
- odr_implicit(o, z_TagPath, &(*p)->surrogateElement, ODR_CONTEXT, 9, 1) &&
+ odr_implicit(o, z_TagPath, &(*p)->surrogateElement,
+ ODR_CONTEXT, 9, 1) &&
odr_implicit(o, z_External, &(*p)->other, ODR_CONTEXT, 99, 1) &&
odr_sequence_end(o);
}
-int z_TagUnit(ODR o, Z_TagUnit **p, int opt)
+int z_TagUnit(ODR o, Z_TagUnit **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, odr_integer, &(*p)->tagType, ODR_CONTEXT, 1, 1) &&
- odr_explicit(o, z_StringOrNumeric, &(*p)->tagValue, ODR_CONTEXT, 2, 0) &&
- odr_implicit(o, odr_integer, &(*p)->tagOccurrence, ODR_CONTEXT, 3, 1) &&
+ odr_explicit(o, z_StringOrNumeric, &(*p)->tagValue,
+ ODR_CONTEXT, 2, 0) &&
+ odr_implicit(o, odr_integer, &(*p)->tagOccurrence,
+ ODR_CONTEXT, 3, 1) &&
odr_sequence_end(o);
}
-int z_TagPath(ODR o, Z_TagPath **p, int opt)
+int z_TagPath(ODR o, Z_TagPath **p, int opt, const char *name)
{
if (o->direction == ODR_DECODE)
*p = (Z_TagPath *)odr_malloc(o, sizeof(**p));
else if (!*p)
return opt;
- if (odr_sequence_of(o, (Odr_fun)z_TagUnit, &(*p)->tags, &(*p)->num_tags))
+ if (odr_sequence_of(o, (Odr_fun)z_TagUnit, &(*p)->tags,
+ &(*p)->num_tags, 0))
return 1;
*p = 0;
return opt && odr_ok(o);
}
-int z_Order(ODR o, Z_Order **p, int opt)
+int z_Order(ODR o, Z_Order **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, odr_bool, &(*p)->ascending, ODR_CONTEXT, 1, 0) &&
odr_sequence_end(o);
}
-int z_Usage(ODR o, Z_Usage **p, int opt)
+int z_Usage(ODR o, Z_Usage **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, odr_integer, &(*p)->type, ODR_CONTEXT, 1, 0) &&
odr_implicit(o, z_InternationalString, &(*p)->restriction, ODR_CONTEXT,
- 2, 1) &&
+ 2, 1) &&
odr_sequence_end(o);
}
-int z_HitVector(ODR o, Z_HitVector **p, int opt)
+int z_HitVector(ODR o, Z_HitVector **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- z_Term(o, &(*p)->satisfier, 1) &&
- odr_implicit(o, z_IntUnit, &(*p)->offsetIntoElement, ODR_CONTEXT, 1, 1) &&
+ z_Term(o, &(*p)->satisfier, 1, 0) &&
+ odr_implicit(o, z_IntUnit, &(*p)->offsetIntoElement,
+ ODR_CONTEXT, 1, 1) &&
odr_implicit(o, z_IntUnit, &(*p)->length, ODR_CONTEXT, 2, 1) &&
odr_implicit(o, odr_integer, &(*p)->hitRank, ODR_CONTEXT, 3, 1) &&
odr_implicit(o, odr_octetstring, &(*p)->targetToken, ODR_CONTEXT,
- 4, 1) &&
+ 4, 1) &&
odr_sequence_end(o);
}
-int z_Triple(ODR o, Z_Triple **p, int opt)
+int z_Triple(ODR o, Z_Triple **p, int opt, const char *name)
{
static Odr_arm arm[] =
{
- {ODR_NONE, -1, -1, Z_Triple_integer, (Odr_fun)odr_integer},
- {ODR_NONE, -1, -1, Z_Triple_internationalString, (Odr_fun)z_InternationalString},
+ {ODR_NONE, -1, -1, Z_Triple_integer,
+ (Odr_fun)odr_integer, 0},
+ {ODR_NONE, -1, -1, Z_Triple_internationalString,
+ (Odr_fun)z_InternationalString, 0},
/* The entry below provides some backwards compatibility */
- {ODR_NONE, -1, -1, Z_Triple_internationalString, (Odr_fun)odr_visiblestring},
- {ODR_NONE, -1, -1, Z_Triple_octetString, (Odr_fun)odr_octetstring},
- {ODR_NONE, -1, -1, Z_Triple_oid, (Odr_fun)odr_oid},
- {ODR_NONE, -1, -1, Z_Triple_boolean, (Odr_fun)odr_bool},
- {ODR_NONE, -1, -1, Z_Triple_null, (Odr_fun)odr_null},
- {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Triple_unit, (Odr_fun)z_Unit},
- {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Triple_valueAndUnit, (Odr_fun)z_IntUnit},
- {-1, -1, -1, -1, 0}
+ {ODR_NONE, -1, -1, Z_Triple_internationalString,
+ (Odr_fun)odr_visiblestring, 0},
+ {ODR_NONE, -1, -1, Z_Triple_octetString,
+ (Odr_fun)odr_octetstring, 0},
+ {ODR_NONE, -1, -1, Z_Triple_oid,
+ (Odr_fun)odr_oid, 0},
+ {ODR_NONE, -1, -1, Z_Triple_boolean,
+ (Odr_fun)odr_bool, 0},
+ {ODR_NONE, -1, -1, Z_Triple_null,
+ (Odr_fun)odr_null, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Triple_unit,
+ (Odr_fun)z_Unit, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Triple_valueAndUnit,
+ (Odr_fun)z_IntUnit, 0},
+ {-1, -1, -1, -1, 0, 0}
};
-
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, odr_oid, &(*p)->variantSetId, ODR_CONTEXT, 0, 1) &&
odr_implicit(o, odr_integer, &(*p)->zclass, ODR_CONTEXT, 1, 0) &&
odr_implicit(o, odr_integer, &(*p)->type, ODR_CONTEXT, 2, 0) &&
- odr_constructed_begin(o, &(*p)->value, ODR_CONTEXT, 3) &&
- odr_choice(o, arm, &(*p)->value, &(*p)->which) &&
+ odr_constructed_begin(o, &(*p)->value, ODR_CONTEXT, 3, 0) &&
+ odr_choice(o, arm, &(*p)->value, &(*p)->which, 0) &&
odr_constructed_end(o) &&
odr_sequence_end(o);
}
-int z_Variant(ODR o, Z_Variant **p, int opt)
+int z_Variant(ODR o, Z_Variant **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
- odr_implicit(o, odr_oid, &(*p)->globalVariantSetId, ODR_CONTEXT,
- 1, 1) &&
+ odr_implicit(o, odr_oid, &(*p)->globalVariantSetId,
+ ODR_CONTEXT, 1, 1) &&
odr_implicit_settag(o, ODR_CONTEXT, 2) &&
- odr_sequence_of(o, (Odr_fun)z_Triple, &(*p)->triples, &(*p)->num_triples) &&
+ odr_sequence_of(o, (Odr_fun)z_Triple, &(*p)->triples,
+ &(*p)->num_triples, 0) &&
odr_sequence_end(o);
}
/*
- * Copyright (c) 1995, Index Data.
+ * Copyright (c) 1995-1999, Index Data.
* See the file LICENSE for details.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: prt-rsc.c,v $
- * Revision 1.6 1998-02-11 11:53:32 adam
+ * Revision 1.7 1999-04-20 09:56:48 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.6 1998/02/11 11:53:32 adam
* Changed code so that it compiles as C++.
*
* Revision 1.5 1995/09/29 17:11:55 quinn
/* -------------------- Resource 1 ------------------------- */
-int z_Estimate1(ODR o, Z_Estimate1 **p, int opt)
+int z_Estimate1(ODR o, Z_Estimate1 **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit(o, odr_integer, &(*p)->type, ODR_CONTEXT, 1, 0) &&
odr_sequence_end(o);
}
-int z_ResourceReport1(ODR o, Z_ResourceReport1 **p, int opt)
+int z_ResourceReport1(ODR o, Z_ResourceReport1 **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_implicit_settag(o, ODR_CONTEXT, 1) &&
odr_sequence_of(o, (Odr_fun)z_Estimate1, &(*p)->estimates,
- &(*p)->num_estimates) &&
- odr_implicit(o, odr_visiblestring, &(*p)->message, ODR_CONTEXT, 2, 0) &&
+ &(*p)->num_estimates, 0) &&
+ odr_implicit(o, odr_visiblestring, &(*p)->message,
+ ODR_CONTEXT, 2, 0) &&
odr_sequence_end(o);
}
/* -------------------- Resource 2 ------------------------- */
-int z_StringOrNumeric(ODR, Z_StringOrNumeric **, int);
-int z_IntUnit(ODR, Z_IntUnit **, int);
+/* int z_StringOrNumeric(ODR, Z_StringOrNumeric **, int); */
+/* int z_IntUnit(ODR, Z_IntUnit **, int); */
-int z_Estimate2(ODR o, Z_Estimate2 **p, int opt)
+int z_Estimate2(ODR o, Z_Estimate2 **p, int opt, const char *name)
{
- if (!odr_sequence_begin(o, p, sizeof(**p)))
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
return opt && odr_ok(o);
return
odr_explicit(o, z_StringOrNumeric, &(*p)->type, ODR_CONTEXT, 1, 0) &&
odr_sequence_end(o);
}
-int z_ResourceReport2(ODR o, Z_ResourceReport2 **p, int opt)
+int z_ResourceReport2(ODR o, Z_ResourceReport2 **p, int opt, const char *name)
{
-if (!odr_sequence_begin(o, p, sizeof(**p)))
- return opt && odr_ok(o);
-return
- odr_implicit_settag(o, ODR_CONTEXT, 1) &&
- (odr_sequence_of(o, (Odr_fun)z_Estimate2, &(*p)->estimates,
- &(*p)->num_estimates) || odr_ok(o)) &&
- odr_implicit(o, odr_visiblestring, &(*p)->message, ODR_CONTEXT, 2, 1) &&
- odr_sequence_end(o);
+ if (!odr_sequence_begin(o, p, sizeof(**p), 0))
+ return opt && odr_ok(o);
+ return
+ odr_implicit_settag(o, ODR_CONTEXT, 1) &&
+ (odr_sequence_of(o, (Odr_fun)z_Estimate2, &(*p)->estimates,
+ &(*p)->num_estimates, 0) || odr_ok(o)) &&
+ odr_implicit(o, odr_visiblestring, &(*p)->message,
+ ODR_CONTEXT, 2, 1) &&
+ odr_sequence_end(o);
}
/*
- * Copyright (c) 1998, Index Data.
+ * Copyright (c) 1998-1999, Index Data.
* See the file LICENSE for details.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: prt-univ.c,v $
- * Revision 1.1 1998-03-20 14:46:06 adam
+ * Revision 1.2 1999-04-20 09:56:48 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.1 1998/03/20 14:46:06 adam
* Added UNIverse Resource Reports.
*
*/
#include <proto.h>
-/* YC 0.1 Fri Mar 20 14:28:54 CET 1998 */
-/* Module-C: ResourceReport-Format-Universe-1 */
-
-int z_UniverseReportHits (ODR o, Z_UniverseReportHits **p, int opt)
+int z_UniverseReportHits (ODR o, Z_UniverseReportHits **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin (o, p, sizeof(**p)))
- return opt && odr_ok (o);
- return
- z_StringOrNumeric(o, &(*p)->database, 0) &&
- z_StringOrNumeric(o, &(*p)->hits, 0) &&
- odr_sequence_end (o);
+ if (!odr_sequence_begin (o, p, sizeof(**p), 0))
+ return opt && odr_ok (o);
+ return
+ z_StringOrNumeric(o, &(*p)->database, 0, 0) &&
+ z_StringOrNumeric(o, &(*p)->hits, 0, 0) &&
+ odr_sequence_end (o);
}
-int z_UniverseReportDuplicate (ODR o, Z_UniverseReportDuplicate **p, int opt)
+int z_UniverseReportDuplicate (ODR o, Z_UniverseReportDuplicate **p, int opt,
+ const char *name)
{
- if (!odr_sequence_begin (o, p, sizeof(**p)))
- return opt && odr_ok (o);
- return
- z_StringOrNumeric(o, &(*p)->hitno, 0) &&
- odr_sequence_end (o);
+ if (!odr_sequence_begin (o, p, sizeof(**p), 0))
+ return opt && odr_ok (o);
+ return
+ z_StringOrNumeric(o, &(*p)->hitno, 0, 0) &&
+ odr_sequence_end (o);
}
-int z_UniverseReport (ODR o, Z_UniverseReport **p, int opt)
+int z_UniverseReport (ODR o, Z_UniverseReport **p, int opt, const char *name)
{
- static Odr_arm arm[] = {
- {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_UniverseReport_databaseHits,
- (Odr_fun) z_UniverseReportHits},
- {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_UniverseReport_duplicate,
- (Odr_fun) z_UniverseReportDuplicate},
- {-1, -1, -1, -1, (Odr_fun) 0}
- };
- if (!odr_sequence_begin (o, p, sizeof(**p)))
- return opt && odr_ok (o);
- return
- odr_integer(o, &(*p)->totalHits, 0) &&
- odr_choice (o, arm, &(*p)->u, &(*p)->which) &&
- odr_sequence_end (o);
+ static Odr_arm arm[] = {
+ {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_UniverseReport_databaseHits,
+ (Odr_fun) z_UniverseReportHits, 0},
+ {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_UniverseReport_duplicate,
+ (Odr_fun) z_UniverseReportDuplicate, 0},
+ {-1, -1, -1, -1, (Odr_fun) 0, 0}
+ };
+ if (!odr_sequence_begin (o, p, sizeof(**p), 0))
+ return opt && odr_ok (o);
+ return
+ odr_integer(o, &(*p)->totalHits, 0, 0) &&
+ odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) &&
+ odr_sequence_end (o);
}
/*
- * Copyright (c) 1995-1998, Index Data.
+ * Copyright (c) 1995-1999, Index Data.
* See the file LICENSE for details.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: zget.c,v $
- * Revision 1.16 1998-08-19 16:10:05 adam
+ * Revision 1.17 1999-04-20 09:56:48 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.16 1998/08/19 16:10:05 adam
* Changed som member names of DeleteResultSetRequest/Response.
*
* Revision 1.15 1998/03/31 15:13:19 adam
r->implementationName = "Index Data/YAZ";
r->implementationVersion = YAZ_VERSION;
r->userInformationField = 0;
-#ifdef Z_95
r->otherInfo = 0;
-#endif
return r;
}
r->implementationName = "Index Data/YAZ";
r->implementationVersion = YAZ_VERSION;
r->userInformationField = 0;
-#ifdef Z_95
r->otherInfo = 0;
-#endif
return r;
}
r->mediumSetElementSetNames = 0;
r->preferredRecordSyntax = 0;
r->query = 0;
-#ifdef Z_95
r->additionalSearchInfo = 0;
r->otherInfo = 0;
-#endif
return r;
}
r->resultSetStatus = 0;
r->presentStatus = 0;
r->records = 0;
-#ifdef Z_95
r->additionalSearchInfo = 0;
r->otherInfo = 0;
-#endif
return r;
}
*r->resultSetStartPoint = 1;
r->numberOfRecordsRequested = (int *)odr_malloc(o, sizeof(int));
*r->numberOfRecordsRequested = 10;
-#ifdef Z_95
r->num_ranges = 0;
r->additionalRanges = 0;
r->recordComposition = 0;
-#else
- r->elementSetNames = 0;
-#endif
r->preferredRecordSyntax = 0;
-#ifdef Z_95
r->maxSegmentCount = 0;
r->maxRecordSize = 0;
r->maxSegmentSize = 0;
r->otherInfo = 0;
-#endif
return r;
}
r->presentStatus = (int *)odr_malloc(o, sizeof(int));
*r->presentStatus = Z_PRES_SUCCESS;
r->records = 0;
-#ifdef Z_95
r->otherInfo = 0;
-#endif
return r;
}
Z_DeleteResultSetRequest *zget_DeleteResultSetRequest(ODR o)
{
- Z_DeleteResultSetRequest *r = (Z_DeleteResultSetRequest *)odr_malloc(o, sizeof(*r));
+ Z_DeleteResultSetRequest *r = (Z_DeleteResultSetRequest *)
+ odr_malloc(o, sizeof(*r));
r->referenceId = 0;
r->deleteFunction = (int *)odr_malloc(o, sizeof(int));
*r->deleteFunction = Z_DeleteRequest_list;
r->num_resultSetList = 0;
r->resultSetList = 0;
-#ifdef Z_95
r->otherInfo = 0;
-#endif
return r;
}
Z_DeleteResultSetResponse *zget_DeleteResultSetResponse(ODR o)
{
- Z_DeleteResultSetResponse *r = (Z_DeleteResultSetResponse *)odr_malloc(o, sizeof(*r));
-
+ Z_DeleteResultSetResponse *r = (Z_DeleteResultSetResponse *)
+ odr_malloc(o, sizeof(*r));
+
r->referenceId = 0;
r->deleteOperationStatus = (int *)odr_malloc(o, sizeof(int));
*r->deleteOperationStatus = Z_DeleteStatus_success;
r->numberNotDeleted = 0;
r->bulkStatuses = 0;
r->deleteMessage = 0;
-#ifdef Z_95
r->otherInfo = 0;
-#endif
return r;
}
Z_ScanRequest *zget_ScanRequest(ODR o)
{
Z_ScanRequest *r = (Z_ScanRequest *)odr_malloc(o, sizeof(*r));
-
+
r->referenceId = 0;
r->num_databaseNames = 0;
r->databaseNames = 0;
r->numberOfTermsRequested = (int *)odr_malloc(o, sizeof(int));
*r->numberOfTermsRequested = 20;
r->preferredPositionInResponse = 0;
-#ifdef Z_95
r->otherInfo = 0;
-#endif
return r;
}
Z_ScanResponse *zget_ScanResponse(ODR o)
{
Z_ScanResponse *r = (Z_ScanResponse *)odr_malloc(o, sizeof(*r));
-
+
r->referenceId = 0;
r->stepSize = 0;
r->scanStatus = (int *)odr_malloc(o, sizeof(int));
r->positionOfTerm =0;
r->entries = 0;
r->attributeSet = 0;
-#ifdef Z_95
r->otherInfo = 0;
-#endif
return r;
}
Z_TriggerResourceControlRequest *zget_TriggerResourceControlRequest(ODR o)
{
- Z_TriggerResourceControlRequest *r = (Z_TriggerResourceControlRequest *)odr_malloc(o, sizeof(*r));
-
+ Z_TriggerResourceControlRequest *r = (Z_TriggerResourceControlRequest *)
+ odr_malloc(o, sizeof(*r));
+
r->referenceId = 0;
r->requestedAction = (int *)odr_malloc(o, sizeof(int));
*r->requestedAction = Z_TriggerResourceCtrl_resourceReport;
r->prefResourceReportFormat = 0;
r->resultSetWanted = 0;
-#ifdef Z_95
r->otherInfo = 0;
-#endif
return r;
}
Z_ResourceControlRequest *zget_ResourceControlRequest(ODR o)
{
- Z_ResourceControlRequest *r = (Z_ResourceControlRequest *)odr_malloc(o, sizeof(*r));
+ Z_ResourceControlRequest *r = (Z_ResourceControlRequest *)
+ odr_malloc(o, sizeof(*r));
r->referenceId = 0;
r->suspendedFlag = 0;
r->responseRequired = (int *)odr_malloc(o, sizeof(bool_t));
*r->responseRequired = 0;
r->triggeredRequestFlag = 0;
-#ifdef Z_95
r->otherInfo = 0;
-#endif
return r;
}
Z_ResourceControlResponse *zget_ResourceControlResponse(ODR o)
{
- Z_ResourceControlResponse *r = (Z_ResourceControlResponse *)odr_malloc(o, sizeof(*r));
+ Z_ResourceControlResponse *r = (Z_ResourceControlResponse *)
+ odr_malloc(o, sizeof(*r));
r->referenceId = 0;
r->continueFlag = (int *)odr_malloc(o, sizeof(bool_t));
*r->continueFlag = 1;
r->resultSetWanted = 0;
-#ifdef Z_95
r->otherInfo = 0;
-#endif
return r;
}
Z_AccessControlRequest *zget_AccessControlRequest(ODR o)
{
- Z_AccessControlRequest *r = (Z_AccessControlRequest *)odr_malloc(o, sizeof(*r));
+ Z_AccessControlRequest *r = (Z_AccessControlRequest *)
+ odr_malloc(o, sizeof(*r));
r->referenceId = 0;
r->which = Z_AccessRequest_simpleForm;
r->u.simpleForm = 0;
-#ifdef Z_95
r->otherInfo = 0;
-#endif
return r;
}
Z_AccessControlResponse *zget_AccessControlResponse(ODR o)
{
- Z_AccessControlResponse *r = (Z_AccessControlResponse *)odr_malloc(o, sizeof(*r));
+ Z_AccessControlResponse *r = (Z_AccessControlResponse *)
+ odr_malloc(o, sizeof(*r));
r->referenceId = 0;
r->which = Z_AccessResponse_simpleForm;
r->u.simpleForm = 0;
r->diagnostic = 0;
-#ifdef Z_95
r->otherInfo = 0;
-#endif
return r;
}
r->diagnosticInformation = 0;
r->resourceReportFormat = 0;
r->resourceReport = 0;
-#ifdef Z_95
r->otherInfo = 0;
-#endif
return r;
}
Z_ResourceReportRequest *zget_ResourceReportRequest(ODR o)
{
- Z_ResourceReportRequest *r = (Z_ResourceReportRequest *)odr_malloc(o, sizeof(*r));
+ Z_ResourceReportRequest *r = (Z_ResourceReportRequest *)
+ odr_malloc(o, sizeof(*r));
r->referenceId = 0;
r->opId = 0;
Z_ResourceReportResponse *zget_ResourceReportResponse(ODR o)
{
- Z_ResourceReportResponse *r = (Z_ResourceReportResponse *)odr_malloc(o, sizeof(*r));
+ Z_ResourceReportResponse *r = (Z_ResourceReportResponse *)
+ odr_malloc(o, sizeof(*r));
r->referenceId = 0;
r->resourceReportStatus = (int *)odr_malloc(o, sizeof(int));
Z_ExtendedServicesRequest *zget_ExtendedServicesRequest(ODR o)
{
- Z_ExtendedServicesRequest *r = (Z_ExtendedServicesRequest *)odr_malloc(o, sizeof(*r));
+ Z_ExtendedServicesRequest *r = (Z_ExtendedServicesRequest *)
+ odr_malloc(o, sizeof(*r));
r->referenceId = 0;
r->function = (int *)odr_malloc(o, sizeof(int));
Z_ExtendedServicesResponse *zget_ExtendedServicesResponse(ODR o)
{
- Z_ExtendedServicesResponse *r = (Z_ExtendedServicesResponse *)odr_malloc(o, sizeof(*r));
+ Z_ExtendedServicesResponse *r = (Z_ExtendedServicesResponse *)
+ odr_malloc(o, sizeof(*r));
r->referenceId = 0;
r->operationStatus = (int *)odr_malloc(o, sizeof(int));
/*
- * Copyright (c) 1995-1999, Index Data.
+ * Copyright (c) 1995-1999, Index Data
* See the file LICENSE for details.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: client.c,v $
- * Revision 1.80 1999-03-31 11:18:24 adam
+ * Revision 1.81 1999-04-20 09:56:48 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.80 1999/03/31 11:18:24 adam
* Implemented odr_strdup. Added Reference ID to backend server API.
*
* Revision 1.79 1999/03/23 14:14:25 adam
char *buf;
int len;
- if (!z_APDU(out, &a, 0))
+ if (!z_APDU(out, &a, 0, 0))
{
odr_perror(out, "Encoding APDU");
exit(1);
{
printf("UserInformationfield:\n");
if (!z_External(print, (Z_External**)&res-> userInformationField,
- 0))
+ 0, 0))
{
odr_perror(print, "Printing userinfo\n");
odr_reset(print);
printf("Record type: ");
if (ent)
printf("%s\n", ent->desc);
- else if (!odr_oid(print, &r->direct_reference, 0))
+ else if (!odr_oid(print, &r->direct_reference, 0, 0))
{
odr_perror(print, "print oid");
odr_reset(print);
*/
odr_setbuf(in, (char*)p->u.octet_aligned->buf,
p->u.octet_aligned->len, 0);
- if (!(*type->fun)(in, (char **)&rr, 0))
+ if (!(*type->fun)(in, (char **)&rr, 0, 0))
{
odr_perror(in, "Decoding constructed record.");
fprintf(stderr, "[Near %d]\n", odr_offset(in));
else
{
printf("Unknown record representation.\n");
- if (!z_External(print, &r, 0))
+ if (!z_External(print, &r, 0, 0))
{
odr_perror(print, "Printing external");
odr_reset(print);
}
odr_reset(in); /* release APDU from last round */
odr_setbuf(in, netbuffer, res, 0);
- if (!z_APDU(in, &apdu, 0))
+ if (!z_APDU(in, &apdu, 0, 0))
{
odr_perror(in, "Decoding incoming APDU");
fprintf(stderr, "[Near %d]\n", odr_offset(in));
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: tcpip.c,v $
- * Revision 1.29 1999-04-16 14:45:55 adam
+ * Revision 1.30 1999-04-20 09:56:48 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.29 1999/04/16 14:45:55 adam
* Added interface for tcpd wrapper for access control.
*
* Revision 1.28 1999/03/31 11:11:14 adam
unsigned long one = 1;
#endif
- logf (LOG_LOG, "tcpip_bind");
TRC(fprintf(stderr, "tcpip_bind\n"));
if (setsockopt(h->iofile, SOL_SOCKET, SO_REUSEADDR, (char*)
&one, sizeof(one)) < 0)
}
int tcpip_listen(COMSTACK h, char *raddr, int *addrlen,
- int (*check_ip)(void *cd, const char *a, int len, int type),
+ int (*check_ip)(void *cd, const char *a, int len, int t),
void *cd)
{
struct sockaddr_in addr;
h->cerrno = CSYSERR;
return -1;
}
- if (addrlen && *addrlen >= sizeof(struct sockaddr_in))
+ if (addrlen && (size_t) (*addrlen) >= sizeof(struct sockaddr_in))
memcpy(raddr, &addr, *addrlen = sizeof(struct sockaddr_in));
else if (addrlen)
*addrlen = 0;
struct sockaddr_in addr;
tcpip_state *sp = (struct tcpip_state *)h->cprivate;
char *r, *buf = sp->buf;
- int len;
+ size_t len;
struct hostent *host;
len = sizeof(addr);
* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
* OF THIS SOFTWARE.
*
- * $Log: odr.h,v $
- * Revision 1.28 1999-03-31 11:18:25 adam
- * Implemented odr_strdup. Added Reference ID to backend server API.
- *
- * Revision 1.27 1999/01/08 11:23:17 adam
- * Added const modifier to some of the BER/ODR encoding routines.
- *
- * Revision 1.26 1998/03/20 17:29:20 adam
- * Include of odr_use.h in odr.h. Added prototype for odr_enum.
- *
- * Revision 1.25 1998/02/11 11:53:33 adam
- * Changed code so that it compiles as C++.
- *
- * Revision 1.24 1997/11/24 11:33:56 adam
- * Using function odr_nullval() instead of global ODR_NULLVAL when
- * appropriate.
- *
- * Revision 1.23 1997/09/01 08:49:49 adam
- * New windows NT/95 port using MSV5.0. To export DLL functions the
- * YAZ_EXPORT modifier was added. Defined in yconfig.h.
- *
- * Revision 1.22 1997/07/21 12:44:30 adam
- * Moved definitions of nmem_block and nmem_control.
- *
- * Revision 1.21 1997/05/14 06:53:41 adam
- * C++ support.
- *
- * Revision 1.20 1997/04/30 08:52:08 quinn
- * Null
- *
- * Revision 1.19 1996/10/08 12:58:08 adam
- * New ODR function, odr_choice_enable_bias, to control behaviour of
- * odr_choice_bias.
- *
- * Revision 1.18 1996/07/26 13:38:14 quinn
- * Various smaller things. Gathered header-files.
- *
- * Revision 1.17 1995/11/08 17:41:27 quinn
- * Smallish.
- *
- * Revision 1.16 1995/11/01 13:54:36 quinn
- * Minor adjustments
- *
- * Revision 1.15 1995/10/18 16:12:36 quinn
- * Better diagnostics.
- *
- * Revision 1.14 1995/09/29 17:12:04 quinn
- * Smallish
- *
- * Revision 1.13 1995/09/29 17:01:49 quinn
- * More Windows work
- *
- * Revision 1.12 1995/09/27 15:02:48 quinn
- * Modified function heads & prototypes.
- *
- * Revision 1.11 1995/08/15 12:00:09 quinn
- * Updated External
- *
- * Revision 1.10 1995/08/10 08:54:33 quinn
- * Added Explain.
- *
- * Revision 1.9 1995/06/19 12:38:26 quinn
- * Reorganized include-files. Added small features.
- *
- * Revision 1.8 1995/06/16 13:16:04 quinn
- * Fixed Defaultdiagformat.
- *
- * Revision 1.7 1995/05/29 08:11:32 quinn
- * Moved oid from odr/asn to util.
- *
- * Revision 1.6 1995/05/22 14:47:00 quinn
- * ODR_NULLVAL --> void
- *
- * Revision 1.5 1995/05/22 11:31:24 quinn
- * Added PDUs
- *
- * Revision 1.4 1995/05/16 08:50:33 quinn
- * License, documentation, and memory fixes
- *
- * Revision 1.3 1995/05/15 11:55:54 quinn
- * Work on asynchronous activity.
- *
- * Revision 1.2 1995/04/18 08:14:37 quinn
- * Added dynamic memory allocation on encoding
- *
- * Revision 1.1 1995/03/30 09:39:41 quinn
- * Moved .h files to include directory
- *
- * Revision 1.15 1995/03/29 15:39:57 quinn
- * Fixed bugs in the bitmask operations
- *
- * Revision 1.14 1995/03/27 08:33:15 quinn
- * Added more OID utilities.
- *
- * Revision 1.13 1995/03/17 10:17:44 quinn
- * Added memory management.
- *
- * Revision 1.12 1995/03/14 10:27:38 quinn
- * Modified makefile to use common lib
- * Beginning to add memory management to odr
- *
- * Revision 1.11 1995/03/10 11:44:41 quinn
- * Fixed serious stack-bug in odr_cons_begin
- *
- * Revision 1.10 1995/03/08 12:12:16 quinn
- * Added better error checking.
- *
- * Revision 1.9 1995/03/07 10:10:00 quinn
- * Added some headers for Adam.
- *
- * Revision 1.8 1995/03/07 09:23:16 quinn
- * Installing top-level API and documentation.
- *
- * Revision 1.7 1995/02/10 15:55:29 quinn
- * Bug fixes, mostly.
- *
- * Revision 1.6 1995/02/09 15:51:47 quinn
- * Works better now.
- *
- * Revision 1.5 1995/02/07 17:52:59 quinn
- * A damn mess, but now things work, I think.
- *
- * Revision 1.4 1995/02/06 16:45:03 quinn
- * Small mods.
- *
- * Revision 1.3 1995/02/03 17:04:36 quinn
- * *** empty log message ***
- *
- * Revision 1.2 1995/02/02 20:38:50 quinn
- * Updates.
- *
- * Revision 1.1 1995/02/02 16:21:53 quinn
- * First kick.
- *
+ * $Id: odr.h,v 1.29 1999-04-20 09:56:48 adam Exp $
*/
#ifndef ODR_H
Odr_ber_tag odr_ber_tag;
} *ODR;
-typedef int (*Odr_fun)(ODR, char **, int);
+typedef int (*Odr_fun)(ODR, char **, int, const char *);
typedef struct odr_arm
{
int tag;
int which;
Odr_fun fun;
+ char *name;
} Odr_arm;
/*
#define ODR_MEM NMEM
#define odr_implicit(o, t, p, cl, tg, opt)\
- (odr_implicit_settag((o), cl, tg), t ((o), (p), opt) )
+ (odr_implicit_settag((o), cl, tg), t ((o), (p), (opt), 0) )
+
+#define odr_implicit_tag(o, t, p, cl, tg, opt, name)\
+ (odr_implicit_settag((o), cl, tg), t ((o), (p), (opt), name) )
#define odr_explicit(o, t, p, cl, tg, opt)\
- ((int) (odr_constructed_begin((o), (p), (cl), (tg)) ? \
- t ((o), (p), (opt)) &&\
+ ((int) (odr_constructed_begin((o), (p), (cl), (tg), 0) ? \
+ t ((o), (p), (opt), 0) &&\
+ odr_constructed_end(o) : opt))
+
+#define odr_explicit_tag(o, t, p, cl, tg, opt, name)\
+ ((int) (odr_constructed_begin((o), (p), (cl), (tg), 0) ? \
+ t ((o), (p), (opt), name) &&\
odr_constructed_end(o) : opt))
#define ODR_MASK_ZERO(mask)\
#define ODR_MAXNAME 256
+YAZ_EXPORT int ber_boolean(ODR o, int *val);
+YAZ_EXPORT int ber_tag(ODR o, void *p, int zclass, int tag,
+ int *constructed, int opt);
+YAZ_EXPORT int ber_enctag(ODR o, int zclass, int tag, int constructed);
+YAZ_EXPORT int ber_dectag(const unsigned char *buf, int *zclass,
+ int *tag, int *constructed);
+YAZ_EXPORT int odr_bool(ODR o, int **p, int opt, const char *name);
+YAZ_EXPORT int odr_integer(ODR o, int **p, int opt, const char *name);
+YAZ_EXPORT int odr_enum(ODR o, int **p, int opt, const char *name);
+YAZ_EXPORT int odr_implicit_settag(ODR o, int zclass, int tag);
+YAZ_EXPORT int ber_enclen(ODR o, int len, int lenlen, int exact);
+YAZ_EXPORT int ber_declen(const unsigned char *buf, int *len);
+YAZ_EXPORT void odr_prname(ODR o, const char *name);
+YAZ_EXPORT int ber_null(ODR o);
+YAZ_EXPORT int odr_null(ODR o, Odr_null **p, int opt, const char *name);
+YAZ_EXPORT int ber_integer(ODR o, int *val);
+YAZ_EXPORT int odr_constructed_begin(ODR o, void *p, int zclass, int tag,
+ const char *name);
+YAZ_EXPORT int odr_constructed_end(ODR o);
+YAZ_EXPORT int odr_sequence_begin(ODR o, void *p, int size, const char *name);
+YAZ_EXPORT int odr_set_begin(ODR o, void *p, int size, const char *name);
+YAZ_EXPORT int odr_sequence_end(ODR o);
+YAZ_EXPORT int odr_set_end(ODR o);
+YAZ_EXPORT int ber_octetstring(ODR o, Odr_oct *p, int cons);
+YAZ_EXPORT int odr_octetstring(ODR o, Odr_oct **p, int opt, const char *name);
+YAZ_EXPORT int odp_more_chunks(ODR o, const unsigned char *base, int len);
+YAZ_EXPORT int odr_constructed_more(ODR o);
+YAZ_EXPORT int odr_bitstring(ODR o, Odr_bitmask **p, int opt,
+ const char *name);
+YAZ_EXPORT int ber_bitstring(ODR o, Odr_bitmask *p, int cons);
+YAZ_EXPORT int odr_generalstring(ODR o, char **p, int opt, const char *name);
+YAZ_EXPORT int ber_oidc(ODR o, Odr_oid *p);
+YAZ_EXPORT int odr_oid(ODR o, Odr_oid **p, int opt, const char *name);
+YAZ_EXPORT int odr_choice(ODR o, Odr_arm arm[], void *p, void *whichp,
+ const char *name);
+YAZ_EXPORT int odr_cstring(ODR o, char **p, int opt, const char *name);
+YAZ_EXPORT int odr_sequence_of(ODR o, Odr_fun type, void *p, int *num,
+ const char *name);
+YAZ_EXPORT int odr_set_of(ODR o, Odr_fun type, void *p, int *num,
+ const char *name);
+YAZ_EXPORT int odr_any(ODR o, Odr_any **p, int opt, const char *name);
+YAZ_EXPORT int ber_any(ODR o, Odr_any **p);
+YAZ_EXPORT int completeBER(const unsigned char *buf, int len);
+YAZ_EXPORT void odr_begin(ODR o);
+YAZ_EXPORT void odr_end(ODR o);
+YAZ_EXPORT Odr_oid *odr_oiddup(ODR odr, Odr_oid *o);
+YAZ_EXPORT Odr_oid *odr_oiddup_nmem(NMEM nmem, Odr_oid *o);
+YAZ_EXPORT int odr_grow_block(odr_ecblock *b, int min_bytes);
+YAZ_EXPORT int odr_write(ODR o, unsigned char *buf, int bytes);
+YAZ_EXPORT int odr_seek(ODR o, int whence, int offset);
+YAZ_EXPORT int odr_dumpBER(FILE *f, const char *buf, int len);
+YAZ_EXPORT void odr_choice_bias(ODR o, int what);
+YAZ_EXPORT void odr_choice_enable_bias(ODR o, int mode);
+YAZ_EXPORT int odr_total(ODR o);
+YAZ_EXPORT char *odr_errmsg(int n);
+YAZ_EXPORT Odr_oid *odr_getoidbystr(ODR o, char *str);
+YAZ_EXPORT Odr_oid *odr_getoidbystr_nmem(NMEM o, char *str);
+YAZ_EXPORT int odr_initmember(ODR o, void *p, int size);
+YAZ_EXPORT int odr_peektag(ODR o, int *zclass, int *tag, int *cons);
+YAZ_EXPORT void odr_setlenlen(ODR o, int len);
+
#ifdef __cplusplus
}
#endif
#include <odr_use.h>
-#include <prt.h>
+
#include <xmalloc.h>
#endif
/*
- * Copyright (c) 1995, Index Data.
+ * Copyright (c) 1995-1999, Index Data.
*
* Permission to use, copy, modify, distribute, and sell this software and
* its documentation, in whole or in part, for any purpose, is hereby granted,
* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
* OF THIS SOFTWARE.
*
- * $Log: odr_use.h,v $
- * Revision 1.8 1997-09-01 08:49:49 adam
- * New windows NT/95 port using MSV5.0. To export DLL functions the
- * YAZ_EXPORT modifier was added. Defined in yconfig.h.
- *
- * Revision 1.7 1997/05/14 06:53:42 adam
- * C++ support.
- *
- * Revision 1.6 1995/09/29 17:12:04 quinn
- * Smallish
- *
- * Revision 1.5 1995/09/27 15:02:48 quinn
- * Modified function heads & prototypes.
- *
- * Revision 1.4 1995/08/10 08:54:34 quinn
- * Added Explain.
- *
- * Revision 1.3 1995/06/19 12:38:27 quinn
- * Reorganized include-files. Added small features.
- *
- * Revision 1.2 1995/05/16 08:50:34 quinn
- * License, documentation, and memory fixes
- *
- * Revision 1.1 1995/03/30 09:39:41 quinn
- * Moved .h files to include directory
- *
- * Revision 1.2 1995/02/09 15:51:50 quinn
- * Works better now.
- *
- * Revision 1.1 1995/02/07 17:53:00 quinn
- * A damn mess, but now things work, I think.
- *
+ * $Id: odr_use.h,v 1.9 1999-04-20 09:56:48 adam Exp $
*/
#ifndef ODR_USE_H
{
Odr_any *single_ASN1_type;
Odr_oct *octet_aligned;
- Odr_bitmask *arbitrary; /* we aren't really equipped for this*/
+ Odr_bitmask *arbitrary; /* we aren't really equipped for this*/
} u;
} Odr_external;
-YAZ_EXPORT int odr_external(ODR o, Odr_external **p, int opt);
-
-YAZ_EXPORT int odr_visiblestring(ODR o, char **p, int opt);
-YAZ_EXPORT int odr_graphicstring(ODR o, char **p, int opt);
-YAZ_EXPORT int odr_generalizedtime(ODR o, char **p, int opt);
+YAZ_EXPORT int odr_external(ODR o, Odr_external **p, int opt,
+ const char *name);
+YAZ_EXPORT int odr_visiblestring(ODR o, char **p, int opt,
+ const char *name);
+YAZ_EXPORT int odr_graphicstring(ODR o, char **p, int opt,
+ const char *name);
+YAZ_EXPORT int odr_generalizedtime(ODR o, char **p, int opt,
+ const char *name);
#ifdef __cplusplus
}
* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
* OF THIS SOFTWARE.
*
- * $Log: oid.h,v $
- * Revision 1.31 1999-04-15 09:19:43 adam
- * Added COOKIE UserInfo OID.
- *
- * Revision 1.30 1999/04/09 12:16:11 adam
- * Added OtherInfo private OID proxy.
- *
- * Revision 1.29 1998/12/03 11:33:04 adam
- * Added OID's for XML.
- *
- * Revision 1.28 1998/10/13 16:01:52 adam
- * Implemented support for dynamic object identifiers.
- * Function oid_getvalbyname now accepts raw OID's as well as traditional
- * names.
- *
- * Revision 1.27 1998/05/18 13:06:58 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.26 1998/03/20 14:46:06 adam
- * Added UNIverse Resource Reports.
- *
- * Revision 1.25 1998/02/10 15:31:52 adam
- * Implemented date and time structure. Changed the Update Extended
- * Service.
- *
- * Revision 1.24 1997/09/29 13:18:59 adam
- * Added function, oid_ent_to_oid, to replace the function
- * oid_getoidbyent, which is not thread safe.
- *
- * Revision 1.23 1997/09/01 08:49:50 adam
- * New windows NT/95 port using MSV5.0. To export DLL functions the
- * YAZ_EXPORT modifier was added. Defined in yconfig.h.
- *
- * Revision 1.22 1997/08/19 08:45:13 quinn
- * Added Thesaurus
- *
- * Revision 1.21 1997/08/19 08:43:49 quinn
- * Housekeeping
- *
- * Revision 1.19 1997/07/28 12:34:42 adam
- * Added new OID entries (RVDM).
- *
- * Revision 1.18 1997/05/14 06:53:42 adam
- * C++ support.
- *
- * Revision 1.17 1997/05/02 08:39:27 quinn
- * Support for private OID table added. Thanks to Ronald van der Meer
- *
- * Revision 1.16 1997/04/30 08:52:08 quinn
- * Null
- *
- * Revision 1.15 1996/10/09 15:54:57 quinn
- * Added SearchInfoReport
- *
- * Revision 1.14 1996/10/07 15:29:17 quinn
- * Added SOIF support
- *
- * Revision 1.13 1996/02/20 17:57:53 adam
- * Added const to oid_getvalbyname.
- *
- * Revision 1.12 1996/02/20 12:52:37 quinn
- * Various
- *
- * Revision 1.11 1996/01/02 08:57:30 quinn
- * Changed enums in the ASN.1 .h files to #defines. Changed oident.class to oclass
- *
- * Revision 1.10 1995/11/13 09:27:31 quinn
- * Fiddling with the variant stuff.
- *
- * Revision 1.9 1995/10/12 10:34:45 quinn
- * Added Espec-1.
- *
- * Revision 1.8 1995/10/10 16:27:08 quinn
- * *** empty log message ***
- *
- * Revision 1.7 1995/09/29 17:12:05 quinn
- * Smallish
- *
- * Revision 1.6 1995/09/27 15:02:48 quinn
- * Modified function heads & prototypes.
- *
- * Revision 1.5 1995/09/12 11:31:46 quinn
- * Added some oids.
- *
- * Revision 1.4 1995/06/27 13:20:32 quinn
- * Added SUTRS support
- *
- * Revision 1.3 1995/05/29 08:11:33 quinn
- * Moved oid from odr/asn to util.
- *
- * Revision 1.2 1995/05/16 08:50:35 quinn
- * License, documentation, and memory fixes
- *
- * Revision 1.1 1995/03/30 09:39:41 quinn
- * Moved .h files to include directory
- *
- * Revision 1.1 1995/03/27 08:32:13 quinn
- * Added OID database
- *
- *
+ * $Id: oid.h,v 1.32 1999-04-20 09:56:48 adam Exp $
*/
#ifndef OID_H
/* add new types here... */
/* VAL_DYNAMIC must have highest value */
- VAL_DYNAMIC
+ VAL_DYNAMIC,
+ VAL_MAX = VAL_DYNAMIC+30
} oid_value;
typedef struct oident
YAZ_EXPORT int oid_oidlen(int *o);
YAZ_EXPORT oid_value oid_getvalbyname(const char *name);
YAZ_EXPORT void oid_setprivateoids(oident *list);
-YAZ_EXPORT struct oident *oid_addent (int *oid, int proto, int oclass,
+YAZ_EXPORT struct oident *oid_addent (int *oid, enum oid_proto proto,
+ enum oid_class oclass,
const char *desc, int value);
#ifdef __cplusplus
/*
- * Copyright (c) 1995-1998, Index Data.
+ * Copyright (c) 1995-1999, Index Data.
*
* Permission to use, copy, modify, distribute, and sell this software and
* its documentation, in whole or in part, for any purpose, is hereby granted,
* OF THIS SOFTWARE.
*
* $Log: proto.h,v $
- * Revision 1.46 1998-10-20 13:55:44 quinn
+ * Revision 1.47 1999-04-20 09:56:48 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.46 1998/10/20 13:55:44 quinn
* Fixed Scan bug in asn and client
*
* Revision 1.45 1998/08/19 16:10:07 adam
extern "C" {
#endif
-/*
- * Because we didn't have time to put all of the extra v3 elements in here
- * before the first applications were written, we have to place them
- * in #ifdefs in places where they would break existing code. If you are
- * developing new stuff, we urge you to leave them in, even if you don't
- * intend to use any v3 features. When we are comfortable that the old
- * apps have been updated, we'll remove the #ifdefs.
- */
-
-#define Z_95
-
/* ----------------- GLOBAL AUXILIARY DEFS ----------------*/
struct Z_External;
char *implementationId; /* OPTIONAL */
char *implementationName; /* OPTIONAL */
char *implementationVersion; /* OPTIONAL */
- Z_External *userInformationField; /* OPTIONAL */
-#ifdef Z_95
+ Z_External *userInformationField; /* OPTIONAL */
Z_OtherInformation *otherInfo; /* OPTIONAL */
-#endif
} Z_InitRequest;
typedef struct Z_InitResponse
char *implementationName; /* OPTIONAL */
char *implementationVersion; /* OPTIONAL */
Z_External *userInformationField; /* OPTIONAL */
-#ifdef Z_95
Z_OtherInformation *otherInfo; /* OPTIONAL */
-#endif
} Z_InitResponse;
typedef struct Z_NSRAuthentication
char *account;
} Z_NSRAuthentication;
-int z_NSRAuthentication(ODR o, Z_NSRAuthentication **p, int opt);
+int z_NSRAuthentication(ODR o, Z_NSRAuthentication **p, int opt,
+ const char *name);
-int z_StrAuthentication(ODR o, char **p, int opt);
+int z_StrAuthentication(ODR o, char **p, int opt, const char *name);
/* ------------------ SEARCH SERVICE ----------------*/
typedef struct Z_AttributeElement
{
-#ifdef Z_95
Odr_oid *attributeSet; /* OPTIONAL - v3 only */
-#endif
int *attributeType;
-#ifdef Z_95
int which;
#define Z_AttributeValue_numeric 0
#define Z_AttributeValue_complex 1
int *numeric;
Z_ComplexAttribute *complex;
} value;
-#else
- int *attributeValue;
-#endif
} Z_AttributeElement;
typedef struct Z_Term
Z_ElementSetNames *mediumSetElementSetNames; /* OPTIONAL */
Odr_oid *preferredRecordSyntax; /* OPTIONAL */
Z_Query *query;
-#ifdef Z_95
Z_OtherInformation *additionalSearchInfo; /* OPTIONAL */
Z_OtherInformation *otherInfo; /* OPTIONAL */
-#endif
} Z_SearchRequest;
/* ------------------------ RECORD -------------------------- */
typedef Z_External Z_DatabaseRecord;
-#ifdef Z_95
-
typedef struct Z_DefaultDiagFormat
{
Odr_oid *diagnosticSetId; /* This is opt'l to interwork with bad targets */
} u;
} Z_DiagRec;
-#else
-
-typedef struct Z_DiagRec
-{
- Odr_oid *diagnosticSetId; /* This is opt'l to interwork with bad targets */
- int *condition;
- char *addinfo;
-} Z_DiagRec;
-
-#endif
-
typedef struct Z_DiagRecs
{
int num_diagRecs;
#define Z_PRES_PARTIAL_4 4
#define Z_PRES_FAILURE 5
Z_Records *records; /* OPTIONAL */
-#ifdef Z_95
Z_OtherInformation *additionalSearchInfo;
Z_OtherInformation *otherInfo;
-#endif
} Z_SearchResponse;
/* ------------------------- PRESENT SERVICE -----------------*/
Z_ResultSetId *resultSetId;
int *resultSetStartPoint;
int *numberOfRecordsRequested;
-#ifdef Z_95
int num_ranges;
Z_Range **additionalRanges; /* OPTIONAL */
Z_RecordComposition *recordComposition; /* OPTIONAL */
-#else
- Z_ElementSetNames *elementSetNames; /* OPTIONAL */
-#endif
Odr_oid *preferredRecordSyntax; /* OPTIONAL */
-#ifdef Z_95
int *maxSegmentCount; /* OPTIONAL */
int *maxRecordSize; /* OPTIONAL */
int *maxSegmentSize; /* OPTIONAL */
Z_OtherInformation *otherInfo; /* OPTIONAL */
-#endif
} Z_PresentRequest;
typedef struct Z_PresentResponse
int *nextResultSetPosition;
int *presentStatus;
Z_Records *records;
-#ifdef Z_95
Z_OtherInformation *otherInfo; /* OPTIONAL */
-#endif
} Z_PresentResponse;
/* ------------------ RESOURCE CONTROL ----------------*/
#define Z_TriggerResourceCtrl_cancel 3
Odr_oid *prefResourceReportFormat; /* OPTIONAL */
bool_t *resultSetWanted; /* OPTIONAL */
-#ifdef Z_95
Z_OtherInformation *otherInfo;
-#endif
} Z_TriggerResourceControlRequest;
typedef struct Z_ResourceControlRequest
#define Z_ResourceControlRequest_none 3
bool_t *responseRequired;
bool_t *triggeredRequestFlag; /* OPTIONAL */
-#ifdef Z_95
Z_OtherInformation *otherInfo;
-#endif
} Z_ResourceControlRequest;
typedef struct Z_ResourceControlResponse
Z_ReferenceId *referenceId; /* OPTIONAL */
bool_t *continueFlag;
bool_t *resultSetWanted; /* OPTIONAL */
-#ifdef Z_95
Z_OtherInformation *otherInfo;
-#endif
} Z_ResourceControlResponse;
Odr_oct *simpleForm;
Z_External *externallyDefined;
} u;
-#ifdef Z_95
Z_OtherInformation *otherInfo; /* OPTIONAL */
-#endif
} Z_AccessControlRequest;
typedef struct Z_AccessControlResponse
Z_External *externallyDefined;
} u;
Z_DiagRec *diagnostic; /* OPTIONAL */
-#ifdef Z_95
Z_OtherInformation *otherInfo; /* OPTIONAL */
-#endif
} Z_AccessControlResponse;
/* ------------------------ SCAN SERVICE -------------------- */
int *stepSize; /* OPTIONAL */
int *numberOfTermsRequested;
int *preferredPositionInResponse; /* OPTIONAL */
-#ifdef Z_95
Z_OtherInformation *otherInfo;
-#endif
} Z_ScanRequest;
typedef struct Z_ScanResponse
int *positionOfTerm; /* OPTIONAL */
Z_ListEntries *entries; /* OPTIONAL */
Odr_oid *attributeSet; /* OPTIONAL */
-#ifdef Z_95
Z_OtherInformation *otherInfo;
-#endif
} Z_ScanResponse;
#define Z_DeleteRequest_all 1
int num_resultSetList;
Z_ResultSetId **resultSetList; /* OPTIONAL */
-#ifdef Z_95
Z_OtherInformation *otherInfo;
-#endif
} Z_DeleteResultSetRequest;
typedef struct Z_ListStatuses {
int *numberNotDeleted; /* OPTIONAL */
Z_ListStatuses *bulkStatuses; /* OPTIONAL */
char *deleteMessage; /* OPTIONAL */
-#ifdef Z_95
Z_OtherInformation *otherInfo;
-#endif
} Z_DeleteResultSetResponse;
/* ------------------------ CLOSE SERVICE ------------------- */
char *diagnosticInformation; /* OPTIONAL */
Odr_oid *resourceReportFormat; /* OPTIONAL */
Z_External *resourceReport; /* OPTIONAL */
-#ifdef Z_95
Z_OtherInformation *otherInfo; /* OPTIONAL */
-#endif
} Z_Close;
/* ------------------------ SEGMENTATION -------------------- */
} u;
} Z_APDU;
-YAZ_EXPORT int z_APDU(ODR o, Z_APDU **p, int opt);
-YAZ_EXPORT int z_SUTRS(ODR o, Odr_oct **p, int opt);
+YAZ_EXPORT int z_APDU(ODR o, Z_APDU **p, int opt, const char *name);
+YAZ_EXPORT int z_SUTRS(ODR o, Odr_oct **p, int opt, const char *name);
YAZ_EXPORT Z_InitRequest *zget_InitRequest(ODR o);
YAZ_EXPORT Z_InitResponse *zget_InitResponse(ODR o);
YAZ_EXPORT Z_ResourceControlRequest *zget_ResourceControlRequest(ODR o);
YAZ_EXPORT Z_ResourceControlResponse *zget_ResourceControlResponse(ODR o);
YAZ_EXPORT Z_Close *zget_Close(ODR o);
-YAZ_EXPORT int z_StringList(ODR o, Z_StringList **p, int opt);
-YAZ_EXPORT int z_InternationalString(ODR o, char **p, int opt);
-YAZ_EXPORT int z_OtherInformation(ODR o, Z_OtherInformation **p, int opt);
-YAZ_EXPORT int z_ElementSetName(ODR o, char **p, int opt);
-YAZ_EXPORT int z_IntUnit(ODR o, Z_IntUnit **p, int opt);
-YAZ_EXPORT int z_Unit(ODR o, Z_Unit **p, int opt);
-YAZ_EXPORT int z_DatabaseName(ODR o, Z_DatabaseName **p, int opt);
-YAZ_EXPORT int z_StringOrNumeric(ODR o, Z_StringOrNumeric **p, int opt);
-YAZ_EXPORT int z_OtherInformationUnit(ODR o, Z_OtherInformationUnit **p, int opt);
-YAZ_EXPORT int z_Term(ODR o, Z_Term **p, int opt);
-YAZ_EXPORT int z_Specification(ODR o, Z_Specification **p, int opt);
-YAZ_EXPORT int z_Permissions(ODR o, Z_Permissions **p, int opt);
-YAZ_EXPORT int z_DiagRec(ODR o, Z_DiagRec **p, int opt);
-YAZ_EXPORT int z_DiagRecs(ODR o, Z_DiagRecs **p, int opt);
-YAZ_EXPORT int z_AttributeList(ODR o, Z_AttributeList **p, int opt);
-YAZ_EXPORT int z_DefaultDiagFormat(ODR o, Z_DefaultDiagFormat **p, int opt);
+YAZ_EXPORT int z_StringList(ODR o, Z_StringList **p, int opt,
+ const char *name);
+YAZ_EXPORT int z_InternationalString(ODR o, char **p, int opt,
+ const char *name);
+YAZ_EXPORT int z_OtherInformation(ODR o, Z_OtherInformation **p, int opt,
+ const char *naem);
+YAZ_EXPORT int z_ElementSetName(ODR o, char **p, int opt, const char *name);
+YAZ_EXPORT int z_IntUnit(ODR o, Z_IntUnit **p, int opt, const char *name);
+YAZ_EXPORT int z_Unit(ODR o, Z_Unit **p, int opt, const char *name);
+YAZ_EXPORT int z_DatabaseName(ODR o, Z_DatabaseName **p, int opt,
+ const char *name);
+YAZ_EXPORT int z_StringOrNumeric(ODR o, Z_StringOrNumeric **p, int opt,
+ const char *name);
+YAZ_EXPORT int z_OtherInformationUnit(ODR o, Z_OtherInformationUnit **p,
+ int opt, const char *name);
+YAZ_EXPORT int z_Term(ODR o, Z_Term **p, int opt, const char *name);
+YAZ_EXPORT int z_Specification(ODR o, Z_Specification **p, int opt,
+ const char *name);
+YAZ_EXPORT int z_Permissions(ODR o, Z_Permissions **p, int opt,
+ const char *name);
+YAZ_EXPORT int z_DiagRec(ODR o, Z_DiagRec **p, int opt, const char *name);
+YAZ_EXPORT int z_DiagRecs(ODR o, Z_DiagRecs **p, int opt, const char *name);
+YAZ_EXPORT int z_AttributeList(ODR o, Z_AttributeList **p, int opt,
+ const char *name);
+YAZ_EXPORT int z_DefaultDiagFormat(ODR o, Z_DefaultDiagFormat **p, int opt,
+ const char *name);
YAZ_EXPORT Z_APDU *zget_APDU(ODR o, int which);
-YAZ_EXPORT int z_Query(ODR o, Z_Query **p, int opt);
+YAZ_EXPORT int z_Query(ODR o, Z_Query **p, int opt, const char *name);
#ifdef __cplusplus
}
* OF THIS SOFTWARE.
*
* $Log: prt-acc.h,v $
- * Revision 1.8 1997-09-01 08:49:51 adam
+ * Revision 1.9 1999-04-20 09:56:48 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.8 1997/09/01 08:49:51 adam
* New windows NT/95 port using MSV5.0. To export DLL functions the
* YAZ_EXPORT modifier was added. Defined in yconfig.h.
*
} u;
} Z_PromptObject1;
-YAZ_EXPORT int z_PromptObject1(ODR o, Z_PromptObject1 **p, int opt);
+YAZ_EXPORT int z_PromptObject1(ODR o, Z_PromptObject1 **p, int opt,
+ const char *name);
#ifdef __cplusplus
}
* OF THIS SOFTWARE.
*
* $Log: prt-add.h,v $
- * Revision 1.3 1997-05-14 06:53:46 adam
+ * Revision 1.4 1999-04-20 09:56:48 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.3 1997/05/14 06:53:46 adam
* C++ support.
*
* Revision 1.2 1997/04/30 08:52:09 quinn
Z_SearchInfoReport_elem **elements;
} Z_SearchInfoReport;
-int z_SearchInfoReport (ODR o, Z_SearchInfoReport **p, int opt);
+int z_SearchInfoReport (ODR o, Z_SearchInfoReport **p, int opt,
+ const char *name);
#ifdef __cplusplus
}
Z_HoldingsRecord **holdingsData; /* OPTIONAL */
} Z_OPACRecord;
-YAZ_EXPORT int z_BriefBib(ODR o, Z_BriefBib **p, int opt);
-YAZ_EXPORT int z_OPACRecord(ODR o, Z_OPACRecord **p, int opt);
+YAZ_EXPORT int z_BriefBib(ODR o, Z_BriefBib **p, int opt, const char *name);
+YAZ_EXPORT int z_OPACRecord(ODR o, Z_OPACRecord **p, int opt,
+ const char *name);
#ifdef __cplusplus
}
* Databasix Information Systems B.V., Utrecht, The Netherlands.
*
* $Log: prt-dat.h,v $
- * Revision 1.1 1998-02-10 15:31:52 adam
+ * Revision 1.2 1999-04-20 09:56:48 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.1 1998/02/10 15:31:52 adam
* Implemented date and time structure. Changed the Update Extended
* Service.
*
Z_Time *z3950Time; /* OPTIONAL */
} Z_DateTime;
-YAZ_EXPORT int z_DateTime(ODR o, Z_DateTime **p, int opt);
+YAZ_EXPORT int z_DateTime(ODR o, Z_DateTime **p, int opt, const char *name);
#ifdef __cplusplus
}
Z_DiagnosticUnit **diagnostics;
} Z_DiagnosticFormat;
-YAZ_EXPORT int z_DiagnosticFormat(ODR o, Z_DiagnosticFormat **p, int opt);
+YAZ_EXPORT int z_DiagnosticFormat(ODR o, Z_DiagnosticFormat **p, int opt,
+ const char *name);
#ifdef __cplusplus
}
Z_ElementRequest **elements; /* OPTIONAL */
} Z_Espec1;
-YAZ_EXPORT int z_Espec1(ODR o, Z_Espec1 **p, int opt);
+YAZ_EXPORT int z_Espec1(ODR o, Z_Espec1 **p, int opt, const char *name);
#ifdef __cplusplus
}
Z_External *taskSpecificParameters;
} Z_TaskPackage;
-int z_TaskPackage(ODR o, Z_TaskPackage **p, int opt);
+int z_TaskPackage(ODR o, Z_TaskPackage **p, int opt, const char *name);
/* ----------------------- ITEM ORDER ------------------------- */
} u;
} Z_ItemOrder;
-int z_ItemOrder(ODR o, Z_ItemOrder **p, int opt);
+int z_ItemOrder(ODR o, Z_ItemOrder **p, int opt, const char *name);
/* ----------------------- ITEM UPDATE ------------------------ */
} u;
} Z_IUUpdate;
-YAZ_EXPORT int z_IUUpdate(ODR o, Z_IUUpdate **p, int opt);
+YAZ_EXPORT int z_IUUpdate(ODR o, Z_IUUpdate **p, int opt, const char *name);
#ifdef __cplusplus
}
} u;
} Z_ExplainRecord;
-YAZ_EXPORT int z_ExplainRecord(ODR o, Z_ExplainRecord **p, int opt);
+YAZ_EXPORT int z_ExplainRecord(ODR o, Z_ExplainRecord **p, int opt,
+ const char *name);
#ifdef __cplusplus
}
} u;
};
-YAZ_EXPORT int z_External(ODR o, Z_External **p, int opt);
+YAZ_EXPORT int z_External(ODR o, Z_External **p, int opt, const char *name);
YAZ_EXPORT Z_ext_typeent *z_ext_getentbyref(oid_value val);
#ifdef __cplusplus
Z_TaggedElement **elements;
};
-YAZ_EXPORT int z_GenericRecord(ODR o, Z_GenericRecord **p, int opt);
-YAZ_EXPORT int z_Variant(ODR o, Z_Variant **p, int opt);
+YAZ_EXPORT int z_GenericRecord(ODR o, Z_GenericRecord **p, int opt,
+ const char *name);
+YAZ_EXPORT int z_Variant(ODR o, Z_Variant **p, int opt,
+ const char *name);
#ifdef __cplusplus
}
* OF THIS SOFTWARE.
*
* $Log: prt-rsc.h,v $
- * Revision 1.6 1997-05-14 06:53:50 adam
+ * Revision 1.7 1999-04-20 09:56:48 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.6 1997/05/14 06:53:50 adam
* C++ support.
*
* Revision 1.5 1995/09/29 17:12:11 quinn
char *message;
} Z_ResourceReport1;
-int z_ResourceReport1(ODR o, Z_ResourceReport1 **p, int opt);
+int z_ResourceReport1(ODR o, Z_ResourceReport1 **p, int opt, const char *name);
/* -------------------- Resource-2 -------------------- */
char *message; /* OPTIONAL */
} Z_ResourceReport2;
-int z_ResourceReport2(ODR o, Z_ResourceReport2 **p, int opt);
+int z_ResourceReport2(ODR o, Z_ResourceReport2 **p, int opt, const char *name);
#ifdef __cplusplus
}
/* Module-H ResourceReport-Format-Universe-1 */
typedef struct Z_UniverseReportHits Z_UniverseReportHits;
-int z_UniverseReportHits (ODR o, Z_UniverseReportHits **p, int opt);
+int z_UniverseReportHits (ODR o, Z_UniverseReportHits **p, int opt,
+ const char *name);
typedef struct Z_UniverseReportDuplicate Z_UniverseReportDuplicate;
-int z_UniverseReportDuplicate (ODR o, Z_UniverseReportDuplicate **p, int opt);
+int z_UniverseReportDuplicate (ODR o, Z_UniverseReportDuplicate **p, int opt,
+ const char *name);
typedef struct Z_UniverseReport Z_UniverseReport;
-int z_UniverseReport (ODR o, Z_UniverseReport **p, int opt);
+int z_UniverseReport (ODR o, Z_UniverseReport **p, int opt,
+ const char *name);
struct Z_UniverseReportHits {
Z_StringOrNumeric *database;
+++ /dev/null
-/*
- * Copyright (c) 1995-1999, Index Data
- * See the file LICENSE for details.
- * Sebastian Hammer, Adam Dickmeiss
- *
- * $Log: prt.h,v $
- * Revision 1.25 1999-01-08 11:23:18 adam
- * Added const modifier to some of the BER/ODR encoding routines.
- *
- * Revision 1.24 1998/03/20 17:29:20 adam
- * Include of odr_use.h in odr.h. Added prototype for odr_enum.
- *
- * Revision 1.23 1998/03/20 14:45:27 adam
- * Implemented odr_set_of and odr_enum.
- *
- * Revision 1.22 1998/02/11 11:53:34 adam
- * Changed code so that it compiles as C++.
- *
- * Revision 1.21 1997/10/31 12:20:08 adam
- * Improved memory debugging for xmalloc/nmem.c. References to NMEM
- * instead of ODR in n ESPEC-1 handling in source d1_espec.c.
- * Bug fix: missing fclose in data1_read_espec1.
- *
- */
-
-#ifndef PRT_H
-#define PRT_H
-
-#include <yconfig.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-YAZ_EXPORT int ber_boolean(ODR o, int *val);
-YAZ_EXPORT int ber_tag(ODR o, void *p, int zclass, int tag, int *constructed, int opt);
-YAZ_EXPORT int ber_enctag(ODR o, int zclass, int tag, int constructed);
-YAZ_EXPORT int ber_dectag(const unsigned char *buf, int *zclass, int *tag, int *constructed);
-YAZ_EXPORT int odr_bool(ODR o, int **p, int opt);
-YAZ_EXPORT int odr_integer(ODR o, int **p, int opt);
-YAZ_EXPORT int odr_enum(ODR o, int **p, int opt);
-YAZ_EXPORT int odr_implicit_settag(ODR o, int zclass, int tag);
-YAZ_EXPORT int ber_enclen(ODR o, int len, int lenlen, int exact);
-YAZ_EXPORT int ber_declen(const unsigned char *buf, int *len);
-YAZ_EXPORT char *odr_indent(ODR o);
-YAZ_EXPORT int ber_null(ODR o);
-YAZ_EXPORT int odr_null(ODR o, Odr_null **p, int opt);
-YAZ_EXPORT int ber_integer(ODR o, int *val);
-YAZ_EXPORT int odr_constructed_begin(ODR o, void *p, int zclass, int tag);
-YAZ_EXPORT int odr_constructed_end(ODR o);
-YAZ_EXPORT int odr_sequence_begin(ODR o, void *p, int size);
-YAZ_EXPORT int odr_set_begin(ODR o, void *p, int size);
-YAZ_EXPORT int odr_sequence_end(ODR o);
-YAZ_EXPORT int odr_set_end(ODR o);
-YAZ_EXPORT int ber_octetstring(ODR o, Odr_oct *p, int cons);
-YAZ_EXPORT int odr_octetstring(ODR o, Odr_oct **p, int opt);
-YAZ_EXPORT int odp_more_chunks(ODR o, const unsigned char *base, int len);
-YAZ_EXPORT int odr_constructed_more(ODR o);
-YAZ_EXPORT int odr_bitstring(ODR o, Odr_bitmask **p, int opt);
-YAZ_EXPORT int ber_bitstring(ODR o, Odr_bitmask *p, int cons);
-YAZ_EXPORT int odr_generalstring(ODR o, char **p, int opt);
-YAZ_EXPORT int ber_oidc(ODR o, Odr_oid *p);
-YAZ_EXPORT int odr_oid(ODR o, Odr_oid **p, int opt);
-YAZ_EXPORT int odr_choice(ODR o, Odr_arm arm[], void *p, void *whichp);
-YAZ_EXPORT int odr_cstring(ODR o, char **p, int opt);
-YAZ_EXPORT int odr_sequence_of(ODR o, Odr_fun type, void *p, int *num);
-YAZ_EXPORT int odr_set_of(ODR o, Odr_fun type, void *p, int *num);
-YAZ_EXPORT int odr_any(ODR o, Odr_any **p, int opt);
-YAZ_EXPORT int ber_any(ODR o, Odr_any **p);
-YAZ_EXPORT int completeBER(const unsigned char *buf, int len);
-YAZ_EXPORT void odr_begin(ODR o);
-YAZ_EXPORT void odr_end(ODR o);
-YAZ_EXPORT Odr_oid *odr_oiddup(ODR odr, Odr_oid *o);
-YAZ_EXPORT Odr_oid *odr_oiddup_nmem(NMEM nmem, Odr_oid *o);
-YAZ_EXPORT int odr_grow_block(odr_ecblock *b, int min_bytes);
-YAZ_EXPORT int odr_write(ODR o, unsigned char *buf, int bytes);
-YAZ_EXPORT int odr_seek(ODR o, int whence, int offset);
-YAZ_EXPORT int odr_dumpBER(FILE *f, const char *buf, int len);
-YAZ_EXPORT void odr_choice_bias(ODR o, int what);
-YAZ_EXPORT void odr_choice_enable_bias(ODR o, int mode);
-YAZ_EXPORT int odr_total(ODR o);
-YAZ_EXPORT char *odr_errmsg(int n);
-YAZ_EXPORT Odr_oid *odr_getoidbystr(ODR o, char *str);
-YAZ_EXPORT Odr_oid *odr_getoidbystr_nmem(NMEM o, char *str);
-YAZ_EXPORT int odr_initmember(ODR o, void *p, int size);
-YAZ_EXPORT int odr_peektag(ODR o, int *zclass, int *tag, int *cons);
-YAZ_EXPORT void odr_setlenlen(ODR o, int len);
-#ifdef __cplusplus
-}
-#endif
-
-#endif
/*
- * Copyright (c) 1995, Index Data
+ * Copyright (c) 1995-1999, Index Data
* See the file LICENSE for details.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: ber_bit.c,v $
- * Revision 1.8 1999-01-08 11:23:21 adam
+ * Revision 1.9 1999-04-20 09:56:48 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.8 1999/01/08 11:23:21 adam
* Added const modifier to some of the BER/ODR encoding routines.
*
* Revision 1.7 1995/09/29 17:12:16 quinn
{
base = o->bp;
while (odp_more_chunks(o, base, len))
- if (!odr_bitstring(o, &p, 0))
+ if (!odr_bitstring(o, &p, 0, 0))
return 0;
return 1;
}
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: ber_oct.c,v $
- * Revision 1.12 1999-01-08 11:23:24 adam
+ * Revision 1.13 1999-04-20 09:56:48 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.12 1999/01/08 11:23:24 adam
* Added const modifier to some of the BER/ODR encoding routines.
*
* Revision 1.11 1998/02/11 11:53:34 adam
{
base = o->bp;
while (odp_more_chunks(o, base, len))
- if (!odr_octetstring(o, &p, 0))
+ if (!odr_octetstring(o, &p, 0, 0))
return 0;
return 1;
}
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: odr_any.c,v $
- * Revision 1.7 1998-02-11 11:53:34 adam
+ * Revision 1.8 1999-04-20 09:56:48 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.7 1998/02/11 11:53:34 adam
* Changed code so that it compiles as C++.
*
* Revision 1.6 1995/09/29 17:12:22 quinn
* does not work, and neither does the optional flag, unless the element
* is the last in a sequence.
*/
-int odr_any(ODR o, Odr_any **p, int opt)
+int odr_any(ODR o, Odr_any **p, int opt, const char *name)
{
if (o->error)
return 0;
if (o->direction == ODR_PRINT)
{
- fprintf(o->print, "%sANY (len=%d)\n", odr_indent(o), (*p)->len);
+ odr_prname(o, name);
+ fprintf(o->print, "ANY (len=%d)\n", (*p)->len);
return 1;
}
if (o->direction == ODR_DECODE)
/*
- * Copyright (c) 1995, Index Data
+ * Copyright (c) 1995-1999, Index Data
* See the file LICENSE for details.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: odr_bit.c,v $
- * Revision 1.11 1998-02-11 11:53:34 adam
+ * Revision 1.12 1999-04-20 09:56:48 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.11 1998/02/11 11:53:34 adam
* Changed code so that it compiles as C++.
*
* Revision 1.10 1995/09/29 17:12:22 quinn
* Top level bitstring string en/decoder.
* Returns 1 on success, 0 on error.
*/
-int odr_bitstring(ODR o, Odr_bitmask **p, int opt)
+int odr_bitstring(ODR o, Odr_bitmask **p, int opt, const char *name)
{
int res, cons = 0;
return opt;
if (o->direction == ODR_PRINT)
{
- fprintf(o->print, "%sBITSTRING(len=%d)\n", odr_indent(o),
- (*p)->top + 1);
+ odr_prname(o, name);
+ fprintf(o->print, "BITSTRING(len=%d)\n",(*p)->top + 1);
return 1;
}
if (o->direction == ODR_DECODE)
/*
- * Copyright (c) 1995, Index Data
+ * Copyright (c) 1995-1999, Index Data
* See the file LICENSE for details.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: odr_bool.c,v $
- * Revision 1.9 1998-02-11 11:53:34 adam
+ * Revision 1.10 1999-04-20 09:56:48 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.9 1998/02/11 11:53:34 adam
* Changed code so that it compiles as C++.
*
* Revision 1.8 1995/09/29 17:12:23 quinn
* Top level boolean en/decoder.
* Returns 1 on success, 0 on error.
*/
-int odr_bool(ODR o, int **p, int opt)
+int odr_bool(ODR o, int **p, int opt, const char *name)
{
int res, cons = 0;
return opt;
if (o->direction == ODR_PRINT)
{
- fprintf(o->print, "%s%s\n", odr_indent(o), (**p ? "TRUE" : "FALSE"));
+ odr_prname(o, name);
+ fprintf(o->print, "%s\n", (**p ? "TRUE" : "FALSE"));
return 1;
}
if (cons)
/*
- * Copyright (c) 1995, Index Data
+ * Copyright (c) 1995-1999, Index Data
* See the file LICENSE for details.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: odr_choice.c,v $
- * Revision 1.15 1998-02-11 11:53:34 adam
+ * Revision 1.16 1999-04-20 09:56:48 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.15 1998/02/11 11:53:34 adam
* Changed code so that it compiles as C++.
*
* Revision 1.14 1997/05/14 06:53:57 adam
#include <odr.h>
-int odr_choice(ODR o, Odr_arm arm[], void *p, void *whichp)
+int odr_choice(ODR o, Odr_arm arm[], void *p, void *whichp,
+ const char *name)
{
int i, cl = -1, tg, cn, *which = (int *)whichp, bias = o->choice_bias;
if (o->direction != ODR_DECODE && !*(char**)p)
return 0;
o->choice_bias = -1;
+
+ if (o->direction == ODR_PRINT)
+ {
+ if (name)
+ {
+ odr_prname(o, name);
+ fprintf (o->print, "choice\n");
+ }
+ }
for (i = 0; arm[i].fun; i++)
{
if (o->direction == ODR_DECODE)
if (arm[i].tagmode == ODR_IMPLICIT)
{
odr_implicit_settag(o, cl, tg);
- return (*arm[i].fun)(o, (char **)p, 0);
+ return (*arm[i].fun)(o, (char **)p, 0, arm[i].name);
}
/* explicit */
- if (!odr_constructed_begin(o, p, cl, tg))
+ if (!odr_constructed_begin(o, p, cl, tg, 0))
return 0;
- return (*arm[i].fun)(o, (char **)p, 0) &&
+ return (*arm[i].fun)(o, (char **)p, 0, arm[i].name) &&
odr_constructed_end(o);
}
}
else /* no tagging. Have to poll type */
{
- if ((*arm[i].fun)(o, (char **)p, 1) && *(char**)p)
+ if ((*arm[i].fun)(o, (char **)p, 1, arm[i].name) && *(char**)p)
return 1;
}
}
/*
- * Copyright (c) 1995, Index Data
+ * Copyright (c) 1995-1999, Index Data
* See the file LICENSE for details.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: odr_cons.c,v $
- * Revision 1.18 1997-05-14 06:53:58 adam
+ * Revision 1.19 1999-04-20 09:56:48 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.18 1997/05/14 06:53:58 adam
* C++ support.
*
* Revision 1.17 1996/10/23 12:31:24 adam
*
* Revision 1.13 1995/08/15 11:16:39 quinn
* Fixed pretty-printers.
- * CV:e ----------------------------------------------------------------------
- * CV:e ----------------------------------------------------------------------
*
* Revision 1.12 1995/06/19 12:38:47 quinn
* Added BER dumper.
o->lenlen = len;
}
-int odr_constructed_begin(ODR o, void *p, int zclass, int tag)
+int odr_constructed_begin(ODR o, void *p, int zclass, int tag,
+ const char *name)
{
int res;
int cons = 1;
}
else if (o->direction == ODR_PRINT)
{
- fprintf(o->print, "%s{\n", odr_indent(o));
+ odr_prname(o, name);
+ fprintf(o->print, "{\n");
o->indent++;
}
else
assert(o->indent > 0);
o->stackp--;
o->indent--;
- fprintf(o->print, "%s}\n", odr_indent(o));
+ odr_prname(o, 0);
+ fprintf(o->print, "}\n");
return 1;
default:
o->error = OOTHER;
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: odr_enum.c,v $
- * Revision 1.2 1999-01-08 11:23:27 adam
+ * Revision 1.3 1999-04-20 09:56:48 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.2 1999/01/08 11:23:27 adam
* Added const modifier to some of the BER/ODR encoding routines.
*
* Revision 1.1 1998/03/20 14:45:01 adam
* Top level enum en/decoder.
* Returns 1 on success, 0 on error.
*/
-int odr_enum(ODR o, int **p, int opt)
+int odr_enum(ODR o, int **p, int opt, const char *name)
{
int res, cons = 0;
return opt;
if (o->direction == ODR_PRINT)
{
- fprintf(o->print, "%s%d\n", odr_indent(o), **p);
+ odr_prname(o, name);
+ fprintf(o->print, "%d\n", **p);
return 1;
}
if (cons)
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: odr_int.c,v $
- * Revision 1.12 1999-01-08 11:23:28 adam
+ * Revision 1.13 1999-04-20 09:56:48 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.12 1999/01/08 11:23:28 adam
* Added const modifier to some of the BER/ODR encoding routines.
*
* Revision 1.11 1998/02/11 11:53:34 adam
* Top level integer en/decoder.
* Returns 1 on success, 0 on error.
*/
-int odr_integer(ODR o, int **p, int opt)
+int odr_integer(ODR o, int **p, int opt, const char *name)
{
int res, cons = 0;
return opt;
if (o->direction == ODR_PRINT)
{
- fprintf(o->print, "%s%d\n", odr_indent(o), **p);
+ odr_prname(o, name);
+ fprintf(o->print, "%d\n", **p);
return 1;
}
if (cons)
/*
- * Copyright (c) 1995-1997, Index Data
+ * Copyright (c) 1995-1999, Index Data
* See the file LICENSE for details.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: odr_null.c,v $
- * Revision 1.10 1997-11-24 11:33:56 adam
+ * Revision 1.11 1999-04-20 09:56:48 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.10 1997/11/24 11:33:56 adam
* Using function odr_nullval() instead of global ODR_NULLVAL when
* appropriate.
*
* Top level null en/decoder.
* Returns 1 on success, 0 on error.
*/
-int odr_null(ODR o, Odr_null **p, int opt)
+int odr_null(ODR o, Odr_null **p, int opt, const char *name)
{
int res, cons = 0;
return opt;
if (o->direction == ODR_PRINT)
{
- fprintf(o->print, "%sNULL\n", odr_indent(o));
+ odr_prname(o, name);
+ fprintf(o->print, "NULL\n");
return 1;
}
if (cons)
/*
- * Copyright (c) 1995, Index Data
+ * Copyright (c) 1995-1999, Index Data
* See the file LICENSE for details.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: odr_oct.c,v $
- * Revision 1.12 1998-02-11 11:53:34 adam
+ * Revision 1.13 1999-04-20 09:56:48 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.12 1998/02/11 11:53:34 adam
* Changed code so that it compiles as C++.
*
* Revision 1.11 1995/09/29 17:12:25 quinn
* Top level octet string en/decoder.
* Returns 1 on success, 0 on error.
*/
-int odr_octetstring(ODR o, Odr_oct **p, int opt)
+int odr_octetstring(ODR o, Odr_oct **p, int opt, const char *name)
{
int res, cons = 0;
return opt;
if (o->direction == ODR_PRINT)
{
- fprintf(o->print, "%sOCTETSTRING(len=%d)\n", odr_indent(o), (*p)->len);
+ odr_prname(o, name);
+ fprintf(o->print, "OCTETSTRING(len=%d)\n", (*p)->len);
return 1;
}
if (o->direction == ODR_DECODE)
/*
* Friendlier interface to octetstring.
*/
-int odr_cstring(ODR o, char **p, int opt)
+int odr_cstring(ODR o, char **p, int opt, const char *name)
{
int cons = 0, res;
Odr_oct *t;
return opt;
if (o->direction == ODR_PRINT)
{
- fprintf(o->print, "%s'%s'\n", odr_indent(o), *p);
+ odr_prname(o, name);
+ fprintf(o->print, "'%s'\n", *p);
return 1;
}
t = (Odr_oct *)odr_malloc(o, sizeof(Odr_oct)); /* wrapper for octstring */
/*
- * Copyright (c) 1995, Index Data
+ * Copyright (c) 1995-1999, Index Data
* See the file LICENSE for details.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: odr_oid.c,v $
- * Revision 1.13 1998-02-11 11:53:34 adam
+ * Revision 1.14 1999-04-20 09:56:48 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.13 1998/02/11 11:53:34 adam
* Changed code so that it compiles as C++.
*
* Revision 1.12 1995/09/29 17:12:25 quinn
* Top level oid en/decoder.
* Returns 1 on success, 0 on error.
*/
-int odr_oid(ODR o, Odr_oid **p, int opt)
+int odr_oid(ODR o, Odr_oid **p, int opt, const char *name)
{
int res, cons = 0;
{
int i;
- fprintf(o->print, "%sOID:", odr_indent(o));
+ odr_prname(o, name);
+ fprintf(o->print, "OID:");
for (i = 0; (*p)[i] > -1; i++)
fprintf(o->print, " %d", (*p)[i]);
fprintf(o->print, "\n");
/*
- * Copyright (c) 1995-1998, Index Data
+ * Copyright (c) 1995-1999, Index Data
* See the file LICENSE for details.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: odr_seq.c,v $
- * Revision 1.23 1998-03-20 14:45:01 adam
+ * Revision 1.24 1999-04-20 09:56:48 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.23 1998/03/20 14:45:01 adam
* Implemented odr_enum and odr_set_of.
*
* Revision 1.22 1998/02/11 11:53:34 adam
#include <odr.h>
#include <assert.h>
-int odr_sequence_begin(ODR o, void *p, int size)
+int odr_sequence_begin(ODR o, void *p, int size, const char *name)
{
char **pp = (char**) p;
}
if (o->direction == ODR_DECODE)
*pp = 0;
- if (odr_constructed_begin(o, p, o->t_class, o->t_tag))
+ if (odr_constructed_begin(o, p, o->t_class, o->t_tag, name))
{
if (o->direction == ODR_DECODE && size)
*pp = (char *)odr_malloc(o, size);
return 0;
}
-int odr_set_begin(ODR o, void *p, int size)
+int odr_set_begin(ODR o, void *p, int size, const char *name)
{
char **pp = (char**) p;
}
if (o->direction == ODR_DECODE)
*pp = 0;
- if (odr_constructed_begin(o, p, o->t_class, o->t_tag))
+ if (odr_constructed_begin(o, p, o->t_class, o->t_tag, name))
{
if (o->direction == ODR_DECODE && size)
*pp = (char *)odr_malloc(o, size);
}
*pp = tmp;
}
- if (!(*type)(o, (*pp) + *num, 0))
+ if (!(*type)(o, (*pp) + *num, 0, 0))
return 0;
(*num)++;
}
#ifdef ODR_DEBUG
fprintf(stderr, "[seqof: elem #%d]", i);
#endif
- if (!(*type)(o, *pp + i, 0))
+ if (!(*type)(o, *pp + i, 0, 0))
return 0;
}
break;
return odr_sequence_end(o);
}
-int odr_set_of(ODR o, Odr_fun type, void *p, int *num)
+int odr_set_of(ODR o, Odr_fun type, void *p, int *num, const char *name)
{
- if (!odr_set_begin(o, p, 0)) {
+ if (!odr_set_begin(o, p, 0, name)) {
if (o->direction == ODR_DECODE)
*num = 0;
return 0;
return odr_sequence_x (o, type, p, num);
}
-int odr_sequence_of(ODR o, Odr_fun type, void *p, int *num)
+int odr_sequence_of(ODR o, Odr_fun type, void *p, int *num,
+ const char *name)
{
- if (!odr_sequence_begin(o, p, 0)) {
+ if (!odr_sequence_begin(o, p, 0, name)) {
if (o->direction == ODR_DECODE)
*num = 0;
return 0;
/*
- * Copyright (c) 1995, Index Data
+ * Copyright (c) 1995-1999, Index Data
* See the file LICENSE for details.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: odr_use.c,v $
- * Revision 1.8 1998-02-11 11:53:34 adam
+ * Revision 1.9 1999-04-20 09:56:48 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.8 1998/02/11 11:53:34 adam
* Changed code so that it compiles as C++.
*
* Revision 1.7 1995/09/29 17:12:27 quinn
#include <odr.h>
#include <odr_use.h>
-int odr_external(ODR o, Odr_external **p, int opt)
+int odr_external(ODR o, Odr_external **p, int opt, const char *name)
{
Odr_external *pp;
static Odr_arm arm[] =
{
- {ODR_EXPLICIT, ODR_CONTEXT, 0, ODR_EXTERNAL_single, (Odr_fun)odr_any},
- {ODR_IMPLICIT, ODR_CONTEXT, 1, ODR_EXTERNAL_octet, (Odr_fun)odr_octetstring},
- {ODR_IMPLICIT, ODR_CONTEXT, 2, ODR_EXTERNAL_arbitrary, (Odr_fun)odr_bitstring},
- {-1, -1, -1, -1, 0}
+ {ODR_EXPLICIT, ODR_CONTEXT, 0, ODR_EXTERNAL_single,
+ (Odr_fun)odr_any, "single"},
+ {ODR_IMPLICIT, ODR_CONTEXT, 1, ODR_EXTERNAL_octet,
+ (Odr_fun)odr_octetstring, "octet"},
+ {ODR_IMPLICIT, ODR_CONTEXT, 2, ODR_EXTERNAL_arbitrary,
+ (Odr_fun)odr_bitstring, "arbitrary"},
+ {-1, -1, -1, -1, 0, 0}
};
odr_implicit_settag(o, ODR_UNIVERSAL, ODR_EXTERNAL);
- if (!odr_sequence_begin(o, p, sizeof(Odr_external)))
+ if (!odr_sequence_begin(o, p, sizeof(Odr_external), name))
return opt;
pp = *p;
return
- odr_oid(o, &pp->direct_reference, 1) &&
- odr_integer(o, &pp->indirect_reference, 1) &&
- odr_graphicstring(o, &pp->descriptor, 1) &&
- odr_choice(o, arm, &pp->u, &pp->which) &&
+ odr_oid(o, &pp->direct_reference, 1, "direct") &&
+ odr_integer(o, &pp->indirect_reference, 1, "indirect") &&
+ odr_graphicstring(o, &pp->descriptor, 1, "descriptor") &&
+ odr_choice(o, arm, &pp->u, &pp->which, 0) &&
odr_sequence_end(o);
}
-int odr_visiblestring(ODR o, char **p, int opt)
+int odr_visiblestring(ODR o, char **p, int opt, const char *name)
{
- return odr_implicit(o, odr_cstring, p, ODR_UNIVERSAL, ODR_VISIBLESTRING,
- opt);
+ return odr_implicit_tag(o, odr_cstring, p, ODR_UNIVERSAL,
+ ODR_VISIBLESTRING, opt, name);
}
/*
* a char may not be sufficient to hold a general string, but we'll deal
* with that once we start looking more closely at UniCode & co.
*/
-int odr_generalstring(ODR o, char **p, int opt)
+int odr_generalstring(ODR o, char **p, int opt, const char *name)
{
- return odr_implicit(o, odr_cstring, p, ODR_UNIVERSAL, ODR_GENERALSTRING,
- opt);
+ return odr_implicit_tag(o, odr_cstring, p, ODR_UNIVERSAL,
+ ODR_GENERALSTRING,opt, name);
}
-int odr_graphicstring(ODR o, char **p, int opt)
+int odr_graphicstring(ODR o, char **p, int opt, const char *name)
{
- return odr_implicit(o, odr_cstring, p, ODR_UNIVERSAL, ODR_GRAPHICSTRING,
- opt);
+ return odr_implicit_tag(o, odr_cstring, p, ODR_UNIVERSAL,
+ ODR_GRAPHICSTRING, opt, name);
}
-int odr_generalizedtime(ODR o, char **p, int opt)
+int odr_generalizedtime(ODR o, char **p, int opt, const char *name)
{
- return odr_implicit(o, odr_cstring, p, ODR_UNIVERSAL, ODR_GENERALIZEDTIME,
- opt);
+ return odr_implicit_tag(o, odr_cstring, p, ODR_UNIVERSAL,
+ ODR_GENERALIZEDTIME, opt, name);
}
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: odr_util.c,v $
- * Revision 1.15 1999-01-08 11:23:29 adam
+ * Revision 1.16 1999-04-20 09:56:48 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.15 1999/01/08 11:23:29 adam
* Added const modifier to some of the BER/ODR encoding routines.
*
* Revision 1.14 1998/10/13 15:58:36 adam
#include <odr.h>
#include <oid.h>
-char *odr_indent(ODR o)
+void odr_prname(ODR o, const char *name)
{
- static char buf[512];
- int i = o->indent;
-
- memset(buf, ' ', 512);
- if (i >= 128)
- i = 127;
- buf[o->indent * 4] = 0;
- return buf;
+ if (name)
+ fprintf (o->print, "%*s%s ", o->indent*4, "", name);
+ else
+ fprintf (o->print, "%*s", o->indent*4, "");
}
int odp_more_chunks(ODR o, const unsigned char *base, int len)
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: d1_read.c,v $
- * Revision 1.24 1998-10-28 15:10:09 adam
+ * Revision 1.25 1999-04-20 09:56:48 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.24 1998/10/28 15:10:09 adam
* Added --with-yc option to configure. For the data1_node in data1.h:
* decreased size of localdata and removed member "line" which wasn't useful.
*
{
char tag[64];
char args[256];
- int i;
+ size_t i;
const char *t = (*buf) + 1;
data1_node **pp;
data1_element *elem = 0;
/*
- * Copyright (c) 1995, Index Data I/S
+ * Copyright (c) 1995-1999, Index Data
* See the file LICENSE for details.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: eventl.h,v $
- * Revision 1.10 1998-01-29 13:30:23 adam
+ * Revision 1.11 1999-04-20 09:56:48 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.10 1998/01/29 13:30:23 adam
* Better event handle system for NT/Unix.
*
* Revision 1.9 1997/09/01 09:31:48 adam
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: seshigh.c,v $
- * Revision 1.87 1999-03-31 11:18:25 adam
+ * Revision 1.88 1999-04-20 09:56:48 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.87 1999/03/31 11:18:25 adam
* Implemented odr_strdup. Added Reference ID to backend server API.
*
* Revision 1.86 1999/02/02 13:57:38 adam
req = request_get(&assoc->incoming); /* get a new request structure */
odr_reset(assoc->decode);
odr_setbuf(assoc->decode, assoc->input_buffer, res, 0);
- if (!z_APDU(assoc->decode, &req->request, 0))
+ if (!z_APDU(assoc->decode, &req->request, 0, 0))
{
logf(LOG_LOG, "ODR error on incoming PDU: %s [near byte %d] ",
odr_errmsg(odr_geterror(assoc->decode)),
return;
}
req->request_mem = odr_extract_mem(assoc->decode);
- if (assoc->print && !z_APDU(assoc->print, &req->request, 0))
+ if (assoc->print && !z_APDU(assoc->print, &req->request, 0, 0))
{
logf(LOG_WARN, "ODR print error: %s",
odr_errmsg(odr_geterror(assoc->print)));
static int process_response(association *assoc, request *req, Z_APDU *res)
{
odr_setbuf(assoc->encode, req->response, req->size_response, 1);
- if (!z_APDU(assoc->encode, &res, 0))
+ if (!z_APDU(assoc->encode, &res, 0, 0))
{
logf(LOG_WARN, "ODR error when encoding response: %s",
odr_errmsg(odr_geterror(assoc->decode)));
req->response = odr_getbuf(assoc->encode, &req->len_response,
&req->size_response);
odr_setbuf(assoc->encode, 0, 0, 0); /* don'txfree if we abort later */
- if (assoc->print && !z_APDU(assoc->print, &res, 0))
+ if (assoc->print && !z_APDU(assoc->print, &res, 0, 0))
{
logf(LOG_WARN, "ODR print error: %s",
odr_errmsg(odr_geterror(assoc->print)));
#if ASN_COMPILED
rec->u.nonSurrogateDiagnostic = dr;
#else
-#ifdef Z_95
rec->u.nonSurrogateDiagnostic = drec;
drec->which = Z_DiagRec_defaultFormat;
drec->u.defaultFormat = dr;
-#else
- rec->u.nonSurrogateDiagnostic = dr;
#endif
-#endif
- dr->diagnosticSetId = odr_oiddup (assoc->encode,
- oid_ent_to_oid(&bib1, oid));
+ dr->diagnosticSetId =
+ odr_oiddup (assoc->encode, oid_ent_to_oid(&bib1, oid));
dr->condition = err;
set_addinfo (dr, addinfo);
return rec;
int error, char *addinfo)
{
int oid[OID_SIZE];
- Z_NamePlusRecord *rec = (Z_NamePlusRecord *)odr_malloc (assoc->encode, sizeof(*rec));
+ Z_NamePlusRecord *rec = (Z_NamePlusRecord *)
+ odr_malloc (assoc->encode, sizeof(*rec));
int *err = (int *)odr_malloc (assoc->encode, sizeof(*err));
oident bib1;
Z_DiagRec *drec = (Z_DiagRec *)odr_malloc (assoc->encode, sizeof(*drec));
- Z_DefaultDiagFormat *dr = (Z_DefaultDiagFormat *)odr_malloc (assoc->encode, sizeof(*dr));
-
+ Z_DefaultDiagFormat *dr = (Z_DefaultDiagFormat *)
+ odr_malloc (assoc->encode, sizeof(*dr));
+
bib1.proto = assoc->proto;
bib1.oclass = CLASS_DIAGSET;
bib1.value = VAL_BIB1;
/*
- * Copyright (C) 1995-1998, Index Data I/S
+ * Copyright (C) 1995-1999, Index Data
* See the file LICENSE for details.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: session.h,v $
- * Revision 1.18 1998-08-03 10:23:57 adam
+ * Revision 1.19 1999-04-20 09:56:48 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.18 1998/08/03 10:23:57 adam
* Fixed bug regarding Options for Sort.
*
* Revision 1.17 1998/07/20 12:38:43 adam
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: tcpdchk.c,v $
- * Revision 1.1 1999-04-16 14:45:55 adam
+ * Revision 1.2 1999-04-20 09:56:48 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.1 1999/04/16 14:45:55 adam
* Added interface for tcpd wrapper for access control.
*
*/
int check_ip_tcpd(void *cd, const char *addr, int len, int type)
{
- const char *daemon_name = cd;
+ const char *daemon_name = (const char *) cd;
if (type == AF_INET)
{
{
#if HAVE_TCPD_H
struct request_info request_info;
-#endif
int i;
+#endif
char *host_name = 0, *host_addr = 0;
struct hostent *host;
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: oid.c,v $
- * Revision 1.34 1999-04-15 09:19:43 adam
+ * Revision 1.35 1999-04-20 09:56:49 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.34 1999/04/15 09:19:43 adam
* Added COOKIE UserInfo OID.
*
* Revision 1.33 1999/04/09 12:16:11 adam
static oident oids[] =
{
/* General definitions */
- {PROTO_GENERAL, CLASS_TRANSYN, VAL_BER, {2,1,1,-1}, "BER" },
- {PROTO_GENERAL, CLASS_TRANSYN, VAL_ISO2709, {1,0,2709,1,1,-1},"ISO2709"},
-
+ {PROTO_GENERAL, CLASS_TRANSYN, VAL_BER, {2,1,1,-1},
+ "BER" },
+ {PROTO_GENERAL, CLASS_TRANSYN, VAL_ISO2709, {1,0,2709,1,1,-1},
+ "ISO2709"},
/* Z39.50v3 definitions */
- {PROTO_Z3950, CLASS_ABSYN, VAL_APDU, {2,1,-1}, "Z-APDU" },
-
- {PROTO_Z3950, CLASS_APPCTX, VAL_BASIC_CTX, {1,1,-1}, "Z-BASIC" },
-
- {PROTO_Z3950, CLASS_ATTSET, VAL_BIB1, {3,1,-1}, "Bib-1" },
- {PROTO_Z3950, CLASS_ATTSET, VAL_EXP1, {3,2,-1}, "Exp-1" },
- {PROTO_Z3950, CLASS_ATTSET, VAL_EXT1, {3,3,-1}, "Ext-1" },
- {PROTO_Z3950, CLASS_ATTSET, VAL_CCL1, {3,4,-1}, "CCL-1" },
- {PROTO_Z3950, CLASS_ATTSET, VAL_GILS, {3,5,-1}, "GILS-attset" },
- {PROTO_Z3950, CLASS_ATTSET, VAL_STAS, {3,6,-1}, "STAS-attset" },
- {PROTO_Z3950, CLASS_ATTSET, VAL_COLLECT1, {3,7,-1}, "Collections-attset"},
- {PROTO_Z3950, CLASS_ATTSET, VAL_CIMI1, {3,8,-1}, "CIMI-attset"},
- {PROTO_Z3950, CLASS_ATTSET, VAL_GEO, {3,9,-1}, "Geo-attset"},
- {PROTO_Z3950, CLASS_ATTSET, VAL_THESAURUS, {3,1000,81,1,-1},"Thesaurus-attset"},
- {PROTO_Z3950, CLASS_DIAGSET, VAL_BIB1, {4,1,-1}, "Bib-1" },
- {PROTO_Z3950, CLASS_DIAGSET, VAL_DIAG1, {4,2,-1}, "Diag-1" },
-
- {PROTO_Z3950, CLASS_RECSYN, VAL_UNIMARC, {5,1,-1}, "Unimarc" },
- {PROTO_Z3950, CLASS_RECSYN, VAL_INTERMARC, {5,2,-1}, "Intermarc" },
- {PROTO_Z3950, CLASS_RECSYN, VAL_CCF, {5,3,-1}, "CCF" },
- {PROTO_Z3950, CLASS_RECSYN, VAL_USMARC, {5,10,-1}, "USmarc" },
- {PROTO_Z3950, CLASS_RECSYN, VAL_UKMARC, {5,11,-1}, "UKmarc" },
- {PROTO_Z3950, CLASS_RECSYN, VAL_NORMARC, {5,12,-1}, "Normarc" },
- {PROTO_Z3950, CLASS_RECSYN, VAL_LIBRISMARC,{5,13,-1}, "Librismarc" },
- {PROTO_Z3950, CLASS_RECSYN, VAL_DANMARC, {5,14,-1}, "Danmarc" },
- {PROTO_Z3950, CLASS_RECSYN, VAL_FINMARC, {5,15,-1}, "Finmarc" },
- {PROTO_Z3950, CLASS_RECSYN, VAL_MAB, {5,16,-1}, "MAB" },
- {PROTO_Z3950, CLASS_RECSYN, VAL_CANMARC, {5,17,-1}, "Canmarc" },
- {PROTO_Z3950, CLASS_RECSYN, VAL_SBN, {5,18,-1}, "SBN" },
- {PROTO_Z3950, CLASS_RECSYN, VAL_PICAMARC, {5,19,-1}, "Picamarc" },
- {PROTO_Z3950, CLASS_RECSYN, VAL_AUSMARC, {5,20,-1}, "Ausmarc" },
- {PROTO_Z3950, CLASS_RECSYN, VAL_IBERMARC, {5,21,-1}, "Ibermarc" },
- {PROTO_Z3950, CLASS_RECSYN, VAL_CATMARC, {5,22,-1}, "Carmarc" },
- {PROTO_Z3950, CLASS_RECSYN, VAL_MALMARC, {5,23,-1}, "Malmarc" },
- {PROTO_Z3950, CLASS_RECSYN, VAL_EXPLAIN, {5,100,-1}, "Explain" },
- {PROTO_Z3950, CLASS_RECSYN, VAL_SUTRS, {5,101,-1}, "SUTRS" },
- {PROTO_Z3950, CLASS_RECSYN, VAL_OPAC, {5,102,-1}, "OPAC" },
- {PROTO_Z3950, CLASS_RECSYN, VAL_SUMMARY, {5,103,-1}, "Summary" },
- {PROTO_Z3950, CLASS_RECSYN, VAL_GRS0, {5,104,-1}, "GRS-0" },
- {PROTO_Z3950, CLASS_RECSYN, VAL_GRS1, {5,105,-1}, "GRS-1" },
- {PROTO_Z3950, CLASS_RECSYN, VAL_EXTENDED, {5,106,-1}, "Extended" },
- {PROTO_Z3950, CLASS_RECSYN, VAL_FRAGMENT, {5,107,-1}, "Fragment" },
-
- {PROTO_Z3950, CLASS_RECSYN, VAL_PDF, {5,109,1,-1},"pdf" },
- {PROTO_Z3950, CLASS_RECSYN, VAL_POSTSCRIPT,{5,109,2,-1},"postscript" },
- {PROTO_Z3950, CLASS_RECSYN, VAL_HTML, {5,109,3,-1},"html" },
- {PROTO_Z3950, CLASS_RECSYN, VAL_TIFF, {5,109,4,-1},"tiff" },
- {PROTO_Z3950, CLASS_RECSYN, VAL_GIF, {5,109,5,-1},"gif" },
- {PROTO_Z3950, CLASS_RECSYN, VAL_JPEG, {5,109,6,-1},"jpeg" },
- {PROTO_Z3950, CLASS_RECSYN, VAL_PNG, {5,109,7,-1},"png" },
- {PROTO_Z3950, CLASS_RECSYN, VAL_MPEG, {5,109,8,-1},"mpeg" },
- {PROTO_Z3950, CLASS_RECSYN, VAL_SGML, {5,109,9,-1},"sgml" },
-
- {PROTO_Z3950, CLASS_RECSYN, VAL_TIFFB, {5,110,1,-1},"tiff-b" },
- {PROTO_Z3950, CLASS_RECSYN, VAL_WAV, {5,110,2,-1},"wav" },
-
- {PROTO_Z3950, CLASS_RECSYN, VAL_SQLRS, {5,111,-1}, "SQL-RS" },
+ {PROTO_Z3950, CLASS_ABSYN, VAL_APDU, {2,1,-1},
+ "Z-APDU"},
+ {PROTO_Z3950, CLASS_APPCTX, VAL_BASIC_CTX, {1,1,-1},
+ "Z-BASIC"},
+ {PROTO_Z3950, CLASS_ATTSET, VAL_BIB1, {3,1,-1},
+ "Bib-1"},
+ {PROTO_Z3950, CLASS_ATTSET, VAL_EXP1, {3,2,-1},
+ "Exp-1"},
+ {PROTO_Z3950, CLASS_ATTSET, VAL_EXT1, {3,3,-1},
+ "Ext-1"},
+ {PROTO_Z3950, CLASS_ATTSET, VAL_CCL1, {3,4,-1},
+ "CCL-1"},
+ {PROTO_Z3950, CLASS_ATTSET, VAL_GILS, {3,5,-1},
+ "GILS-attset"},
+ {PROTO_Z3950, CLASS_ATTSET, VAL_STAS, {3,6,-1},
+ "STAS-attset"},
+ {PROTO_Z3950, CLASS_ATTSET, VAL_COLLECT1, {3,7,-1},
+ "Collections-attset"},
+ {PROTO_Z3950, CLASS_ATTSET, VAL_CIMI1, {3,8,-1},
+ "CIMI-attset"},
+ {PROTO_Z3950, CLASS_ATTSET, VAL_GEO, {3,9,-1},
+ "Geo-attset"},
+ {PROTO_Z3950, CLASS_ATTSET, VAL_THESAURUS, {3,1000,81,1,-1},
+ "Thesaurus-attset"},
+ {PROTO_Z3950, CLASS_DIAGSET, VAL_BIB1, {4,1,-1},
+ "Bib-1"},
+ {PROTO_Z3950, CLASS_DIAGSET, VAL_DIAG1, {4,2,-1},
+ "Diag-1"},
+ {PROTO_Z3950, CLASS_RECSYN, VAL_UNIMARC, {5,1,-1},
+ "Unimarc"},
+ {PROTO_Z3950, CLASS_RECSYN, VAL_INTERMARC, {5,2,-1},
+ "Intermarc"},
+ {PROTO_Z3950, CLASS_RECSYN, VAL_CCF, {5,3,-1},
+ "CCF"},
+ {PROTO_Z3950, CLASS_RECSYN, VAL_USMARC, {5,10,-1},
+ "USmarc"},
+ {PROTO_Z3950, CLASS_RECSYN, VAL_UKMARC, {5,11,-1},
+ "UKmarc"},
+ {PROTO_Z3950, CLASS_RECSYN, VAL_NORMARC, {5,12,-1},
+ "Normarc"},
+ {PROTO_Z3950, CLASS_RECSYN, VAL_LIBRISMARC, {5,13,-1},
+ "Librismarc"},
+ {PROTO_Z3950, CLASS_RECSYN, VAL_DANMARC, {5,14,-1},
+ "Danmarc"},
+ {PROTO_Z3950, CLASS_RECSYN, VAL_FINMARC, {5,15,-1},
+ "Finmarc"},
+ {PROTO_Z3950, CLASS_RECSYN, VAL_MAB, {5,16,-1},
+ "MAB"},
+ {PROTO_Z3950, CLASS_RECSYN, VAL_CANMARC, {5,17,-1},
+ "Canmarc"},
+ {PROTO_Z3950, CLASS_RECSYN, VAL_SBN, {5,18,-1},
+ "SBN"},
+ {PROTO_Z3950, CLASS_RECSYN, VAL_PICAMARC, {5,19,-1},
+ "Picamarc"},
+ {PROTO_Z3950, CLASS_RECSYN, VAL_AUSMARC, {5,20,-1},
+ "Ausmarc"},
+ {PROTO_Z3950, CLASS_RECSYN, VAL_IBERMARC, {5,21,-1},
+ "Ibermarc"},
+ {PROTO_Z3950, CLASS_RECSYN, VAL_CATMARC, {5,22,-1},
+ "Carmarc"},
+ {PROTO_Z3950, CLASS_RECSYN, VAL_MALMARC, {5,23,-1},
+ "Malmarc"},
+ {PROTO_Z3950, CLASS_RECSYN, VAL_EXPLAIN, {5,100,-1},
+ "Explain"},
+ {PROTO_Z3950, CLASS_RECSYN, VAL_SUTRS, {5,101,-1},
+ "SUTRS"},
+ {PROTO_Z3950, CLASS_RECSYN, VAL_OPAC, {5,102,-1},
+ "OPAC"},
+ {PROTO_Z3950, CLASS_RECSYN, VAL_SUMMARY, {5,103,-1},
+ "Summary"},
+ {PROTO_Z3950, CLASS_RECSYN, VAL_GRS0, {5,104,-1},
+ "GRS-0"},
+ {PROTO_Z3950, CLASS_RECSYN, VAL_GRS1, {5,105,-1},
+ "GRS-1"},
+ {PROTO_Z3950, CLASS_RECSYN, VAL_EXTENDED, {5,106,-1},
+ "Extended"},
+ {PROTO_Z3950, CLASS_RECSYN, VAL_FRAGMENT, {5,107,-1},
+ "Fragment"},
+ {PROTO_Z3950, CLASS_RECSYN, VAL_PDF, {5,109,1,-1},
+ "pdf"},
+ {PROTO_Z3950, CLASS_RECSYN, VAL_POSTSCRIPT, {5,109,2,-1},
+ "postscript"},
+ {PROTO_Z3950, CLASS_RECSYN, VAL_HTML, {5,109,3,-1},
+ "html"},
+ {PROTO_Z3950, CLASS_RECSYN, VAL_TIFF, {5,109,4,-1},
+ "tiff"},
+ {PROTO_Z3950, CLASS_RECSYN, VAL_GIF, {5,109,5,-1},
+ "gif"},
+ {PROTO_Z3950, CLASS_RECSYN, VAL_JPEG, {5,109,6,-1},
+ "jpeg"},
+ {PROTO_Z3950, CLASS_RECSYN, VAL_PNG, {5,109,7,-1},
+ "png"},
+ {PROTO_Z3950, CLASS_RECSYN, VAL_MPEG, {5,109,8,-1},
+ "mpeg"},
+ {PROTO_Z3950, CLASS_RECSYN, VAL_SGML, {5,109,9,-1},
+ "sgml"},
+
+ {PROTO_Z3950, CLASS_RECSYN, VAL_TIFFB, {5,110,1,-1},
+ "tiff-b"},
+ {PROTO_Z3950, CLASS_RECSYN, VAL_WAV, {5,110,2,-1},
+ "wav"},
+
+ {PROTO_Z3950, CLASS_RECSYN, VAL_SQLRS, {5,111,-1},
+ "SQL-RS"},
#if 0
- {PROTO_Z3950, CLASS_RECSYN, VAL_ID_SGML, {5,1000,81,1,-1},"ID-SGML" },
+ {PROTO_Z3950, CLASS_RECSYN, VAL_ID_SGML, {5,1000,81,1,-1},
+ "ID-SGML" },
#endif
- {PROTO_Z3950, CLASS_RECSYN, VAL_SOIF, {5,1000,81,2,-1},"SOIF" },
- {PROTO_Z3950, CLASS_RECSYN, VAL_TEXT_XML, {5,109,10,-1}, "text-XML" },
- {PROTO_Z3950, CLASS_RECSYN, VAL_TEXT_XML, {5,109,10,-1}, "XML" },
- {PROTO_Z3950, CLASS_RECSYN, VAL_APPLICATION_XML,
- {5,109,11,-1}, "application-XML" },
- {PROTO_Z3950, CLASS_RESFORM, VAL_RESOURCE1, {7,1,-1}, "Resource-1" },
- {PROTO_Z3950, CLASS_RESFORM, VAL_RESOURCE2, {7,2,-1}, "Resource-2" },
- {PROTO_Z3950, CLASS_RESFORM, VAL_UNIVERSE_REPORT, {7,1000,81,1,-1}, "UNIverse-Resource-Report"},
-
- {PROTO_Z3950, CLASS_ACCFORM, VAL_PROMPT1, {8,1,-1}, "Prompt-1" },
- {PROTO_Z3950, CLASS_ACCFORM, VAL_DES1, {8,2,-1}, "Des-1" },
- {PROTO_Z3950, CLASS_ACCFORM, VAL_KRB1, {8,3,-1}, "Krb-1" },
-
- {PROTO_Z3950, CLASS_EXTSERV, VAL_PRESSET, {9,1,-1}, "Pers. set" },
- {PROTO_Z3950, CLASS_EXTSERV, VAL_PQUERY, {9,2,-1}, "Pers. query" },
- {PROTO_Z3950, CLASS_EXTSERV, VAL_PCQUERY, {9,3,-1}, "Per'd query" },
- {PROTO_Z3950, CLASS_EXTSERV, VAL_ITEMORDER, {9,4,-1}, "Item order" },
- {PROTO_Z3950, CLASS_EXTSERV, VAL_DBUPDATE, {9,5,1,1,-1}, "DB. Update" },
- {PROTO_Z3950, CLASS_EXTSERV, VAL_EXPORTSPEC,{9,6,-1}, "exp. spec." },
- {PROTO_Z3950, CLASS_EXTSERV, VAL_EXPORTINV, {9,7,-1}, "exp. inv." },
-
- {PROTO_Z3950, CLASS_USERINFO,VAL_SEARCHRES1,{10,1,-1}, "searchResult-1"},
- {PROTO_Z3950, CLASS_USERINFO,VAL_CHARLANG, {10,2,-1}, "CharSetandLanguageNegotiation"},
- {PROTO_Z3950, CLASS_USERINFO,VAL_USERINFO1, {10,3,-1}, "UserInfo-1"},
- {PROTO_Z3950, CLASS_USERINFO,VAL_MULTISRCH1,{10,4,-1}, "MultipleSearchTerms-1"},
- {PROTO_Z3950, CLASS_USERINFO,VAL_MULTISRCH2,{10,5,-1}, "MultipleSearchTerms-2"},
- {PROTO_Z3950, CLASS_USERINFO,VAL_DATETIME, {10,6,-1}, "DateTime"},
- {PROTO_Z3950, CLASS_USERINFO,VAL_PROXY, {10,1000,81,1,-1}, "Proxy" },
- {PROTO_Z3950, CLASS_USERINFO,VAL_PROXY, {10,1000,81,2,-1}, "Cookie" },
-
- {PROTO_Z3950, CLASS_ELEMSPEC,VAL_ESPEC1, {11,1,-1}, "Espec-1" },
-
- {PROTO_Z3950, CLASS_VARSET, VAL_VAR1, {12,1,-1}, "Variant-1" },
-
- {PROTO_Z3950, CLASS_SCHEMA, VAL_WAIS, {13,1,-1}, "WAIS-schema" },
- {PROTO_Z3950, CLASS_SCHEMA, VAL_GILS, {13,2,-1}, "GILS-schema" },
- {PROTO_Z3950, CLASS_SCHEMA, VAL_COLLECT1, {13,3,-1}, "Collections-schema" },
- {PROTO_Z3950, CLASS_SCHEMA, VAL_GEO, {13,4,-1}, "Geo-schema" },
- {PROTO_Z3950, CLASS_SCHEMA, VAL_CIMI1, {13,5,-1}, "CIMI-schema" },
- {PROTO_Z3950, CLASS_SCHEMA, VAL_UPDATEES, {13,6,-1}, "Update ES" },
- {PROTO_Z3950, CLASS_SCHEMA, VAL_THESAURUS, {13,1000,81,1,-1}, "thesaurus-schema"},
- {PROTO_Z3950, CLASS_SCHEMA, VAL_EXPLAIN, {13,1000,81,2,-1}, "Explain-schema"},
- {PROTO_Z3950, CLASS_TAGSET, VAL_SETM, {14,1,-1}, "TagsetM" },
- {PROTO_Z3950, CLASS_TAGSET, VAL_SETG, {14,2,-1}, "TagsetG" },
- {PROTO_Z3950, CLASS_TAGSET, VAL_STAS, {14,3,-1}, "STAS-tagset" },
- {PROTO_Z3950, CLASS_TAGSET, VAL_GILS, {14,4,-1}, "GILS-tagset" },
- {PROTO_Z3950, CLASS_TAGSET, VAL_COLLECT1, {14,5,-1}, "Collections-tagset"},
- {PROTO_Z3950, CLASS_TAGSET, VAL_CIMI1, {14,6,-1}, "CIMI-tagset" },
- {PROTO_Z3950, CLASS_TAGSET, VAL_THESAURUS, {14,1000,81,1,-1}, "thesaurus-tagset"},
- {PROTO_Z3950, CLASS_TAGSET, VAL_EXPLAIN, {14,1000,81,2,-1}, "Explain-tagset"},
+ {PROTO_Z3950, CLASS_RECSYN, VAL_SOIF, {5,1000,81,2,-1},
+ "SOIF" },
+ {PROTO_Z3950, CLASS_RECSYN, VAL_TEXT_XML, {5,109,10,-1},
+ "text-XML" },
+ {PROTO_Z3950, CLASS_RECSYN, VAL_TEXT_XML, {5,109,10,-1},
+ "XML" },
+ {PROTO_Z3950, CLASS_RECSYN, VAL_APPLICATION_XML, {5,109,11,-1},
+ "application-XML" },
+ {PROTO_Z3950, CLASS_RESFORM, VAL_RESOURCE1, {7,1,-1},
+ "Resource-1"},
+ {PROTO_Z3950, CLASS_RESFORM, VAL_RESOURCE2, {7,2,-1},
+ "Resource-2"},
+ {PROTO_Z3950, CLASS_RESFORM, VAL_UNIVERSE_REPORT, {7,1000,81,1,-1},
+ "UNIverse-Resource-Report"},
+
+ {PROTO_Z3950, CLASS_ACCFORM, VAL_PROMPT1, {8,1,-1},
+ "Prompt-1"},
+ {PROTO_Z3950, CLASS_ACCFORM, VAL_DES1, {8,2,-1},
+ "Des-1"},
+ {PROTO_Z3950, CLASS_ACCFORM, VAL_KRB1, {8,3,-1},
+ "Krb-1"},
+ {PROTO_Z3950, CLASS_EXTSERV, VAL_PRESSET, {9,1,-1},
+ "Pers. set"},
+ {PROTO_Z3950, CLASS_EXTSERV, VAL_PQUERY, {9,2,-1},
+ "Pers. query"},
+ {PROTO_Z3950, CLASS_EXTSERV, VAL_PCQUERY, {9,3,-1},
+ "Per'd query"},
+ {PROTO_Z3950, CLASS_EXTSERV, VAL_ITEMORDER, {9,4,-1},
+ "Item order"},
+ {PROTO_Z3950, CLASS_EXTSERV, VAL_DBUPDATE, {9,5,1,1,-1},
+ "DB. Update"},
+ {PROTO_Z3950, CLASS_EXTSERV, VAL_EXPORTSPEC, {9,6,-1},
+ "exp. spec."},
+ {PROTO_Z3950, CLASS_EXTSERV, VAL_EXPORTINV, {9,7,-1},
+ "exp. inv."},
+
+ {PROTO_Z3950, CLASS_USERINFO,VAL_SEARCHRES1, {10,1,-1},
+ "searchResult-1"},
+ {PROTO_Z3950, CLASS_USERINFO,VAL_CHARLANG, {10,2,-1},
+ "CharSetandLanguageNegotiation"},
+ {PROTO_Z3950, CLASS_USERINFO,VAL_USERINFO1, {10,3,-1},
+ "UserInfo-1"},
+ {PROTO_Z3950, CLASS_USERINFO,VAL_MULTISRCH1, {10,4,-1},
+ "MultipleSearchTerms-1"},
+ {PROTO_Z3950, CLASS_USERINFO,VAL_MULTISRCH2, {10,5,-1},
+ "MultipleSearchTerms-2"},
+ {PROTO_Z3950, CLASS_USERINFO,VAL_DATETIME, {10,6,-1},
+ "DateTime"},
+ {PROTO_Z3950, CLASS_USERINFO,VAL_PROXY, {10,1000,81,1,-1},
+ "Proxy" },
+ {PROTO_Z3950, CLASS_USERINFO,VAL_COOKIE, {10,1000,81,2,-1},
+ "Cookie" },
+ {PROTO_Z3950, CLASS_ELEMSPEC,VAL_ESPEC1, {11,1,-1},
+ "Espec-1"},
+ {PROTO_Z3950, CLASS_VARSET, VAL_VAR1, {12,1,-1},
+ "Variant-1"},
+ {PROTO_Z3950, CLASS_SCHEMA, VAL_WAIS, {13,1,-1},
+ "WAIS-schema"},
+ {PROTO_Z3950, CLASS_SCHEMA, VAL_GILS, {13,2,-1},
+ "GILS-schema"},
+ {PROTO_Z3950, CLASS_SCHEMA, VAL_COLLECT1, {13,3,-1},
+ "Collections-schema"},
+ {PROTO_Z3950, CLASS_SCHEMA, VAL_GEO, {13,4,-1},
+ "Geo-schema"},
+ {PROTO_Z3950, CLASS_SCHEMA, VAL_CIMI1, {13,5,-1},
+ "CIMI-schema"},
+ {PROTO_Z3950, CLASS_SCHEMA, VAL_UPDATEES, {13,6,-1},
+ "Update ES"},
+ {PROTO_Z3950, CLASS_SCHEMA, VAL_THESAURUS, {13,1000,81,1,-1},
+ "thesaurus-schema"},
+ {PROTO_Z3950, CLASS_SCHEMA, VAL_EXPLAIN, {13,1000,81,2,-1},
+ "Explain-schema"},
+ {PROTO_Z3950, CLASS_TAGSET, VAL_SETM, {14,1,-1},
+ "TagsetM"},
+ {PROTO_Z3950, CLASS_TAGSET, VAL_SETG, {14,2,-1},
+ "TagsetG"},
+ {PROTO_Z3950, CLASS_TAGSET, VAL_STAS, {14,3,-1},
+ "STAS-tagset"},
+ {PROTO_Z3950, CLASS_TAGSET, VAL_GILS, {14,4,-1},
+ "GILS-tagset"},
+ {PROTO_Z3950, CLASS_TAGSET, VAL_COLLECT1, {14,5,-1},
+ "Collections-tagset"},
+ {PROTO_Z3950, CLASS_TAGSET, VAL_CIMI1, {14,6,-1},
+ "CIMI-tagset"},
+ {PROTO_Z3950, CLASS_TAGSET, VAL_THESAURUS, {14,1000,81,1,-1},
+ "thesaurus-tagset"},
+ {PROTO_Z3950, CLASS_TAGSET, VAL_EXPLAIN, {14,1000,81,2,-1},
+ "Explain-tagset"},
/* SR definitions. Note that some of them aren't defined by the
return oid_ent_to_oid (ent, ret);
}
-struct oident *oid_addent (int *oid, int proto, int oclass,
+struct oident *oid_addent (int *oid, enum oid_proto proto,
+ enum oid_class oclass,
const char *desc, int value)
{
struct oident *oident;
oident->desc = (char *) malloc (strlen(desc)+1);
strcpy (oident->desc, desc);
if (value == VAL_DYNAMIC)
- oident->value = ++oid_value_dynamic;
+ oident->value = (enum oid_value) (++oid_value_dynamic);
else
- oident->value = value;
+ oident->value = (enum oid_value) value;
oid_oidcpy (oident->oidsuffix, oid);
oident_list->next = oident_table;
oident_table = oident_list;
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: pquery.c,v $
- * Revision 1.21 1998-10-13 16:03:37 adam
+ * Revision 1.22 1999-04-20 09:56:49 adam
+ * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
+ * Modified all encoders/decoders to reflect this change.
+ *
+ * Revision 1.21 1998/10/13 16:03:37 adam
* Better checking for invalid OID's in p_query_rpn.
*
* Revision 1.20 1998/03/31 15:13:20 adam
elements[i] =
(Z_AttributeElement*)odr_malloc (o,sizeof(**elements));
elements[i]->attributeType = &attr_tmp[2*i];
-#ifdef Z_95
if (attr_set[i] == VAL_NONE)
elements[i]->attributeSet = 0;
else
}
elements[i]->which = Z_AttributeValue_numeric;
elements[i]->value.numeric = &attr_tmp[2*i+1];
-#else
- elements[i]->attributeValue = &attr_tmp[2*i+1];
-#endif
}
}
#ifdef ASN_COMPILED