* Sebastian Hammer, Adam Dickmeiss
*
* $Log: proto.c,v $
- * Revision 1.28 1995-06-14 15:26:35 quinn
+ * Revision 1.29 1995-06-15 07:44:49 quinn
+ * Moving to v3.
+ *
+ * Revision 1.28 1995/06/14 15:26:35 quinn
* *** empty log message ***
*
* Revision 1.27 1995/06/07 14:36:22 quinn
int z_OtherInformation(ODR o, Z_OtherInformation **p, int opt)
{
- if (o->direction == ODR_ENCODE)
+ if (o->direction == ODR_DECODE)
*p = odr_malloc(o, sizeof(**p));
-
+ else if (!*p)
+ return opt;
odr_implicit_settag(o, ODR_CONTEXT, 201);
if (odr_sequence_of(o, z_OtherInformationUnit, &(*p)->list,
&(*p)->num_elements))
if (o->direction == ODR_DECODE)
*p = odr_malloc(o, sizeof(**p));
+ else if (!*p)
+ return opt;
if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
return 1;
*p = 0;
if (o->direction == ODR_DECODE)
*p = odr_malloc(o, sizeof(**p));
+ else if (!*p)
+ return opt;
if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
return 1;
ODR_CONTEXT, 47, 1) &&
odr_implicit(o, odr_bool, &(*p)->resultSetWanted, ODR_CONTEXT,
48, 1) &&
-#ifdef Z_OTHERINFO
+#ifdef Z_95
z_OtherInformation(o, &(*p)->otherInfo, 1) &&
#endif
odr_sequence_end(o);
42, 0) &&
odr_implicit(o, odr_bool, &(*p)->triggeredRequestFlag,
ODR_CONTEXT, 43, 1) &&
-#ifdef Z_OTHERINFO
+#ifdef Z_95
z_OtherInformation(o, &(*p)->otherInfo, 1) &&
#endif
odr_sequence_end(o);
odr_implicit(o, odr_bool, &(*p)->continueFlag, ODR_CONTEXT, 44, 0) &&
odr_implicit(o, odr_bool, &(*p)->resultSetWanted, ODR_CONTEXT,
45, 1) &&
-#ifdef Z_OTHERINFO
+#ifdef Z_95
z_OtherInformation(o, &(*p)->otherInfo, 1) &&
#endif
odr_sequence_end(o);
odr_implicit(o, odr_integer, &(*p)->attributeType, ODR_CONTEXT,
120, 0) &&
#ifdef Z_95
- odr_choice(o, arm, &(*p)->u, &(*p)->which) &&
+ odr_choice(o, arm, &(*p)->value, &(*p)->which) &&
#else
odr_implicit(o, odr_integer, &(*p)->attributeValue, ODR_CONTEXT,
121, 0) &&
return opt && odr_ok(o);
if (o->direction == ODR_DECODE)
*p = odr_malloc(o, sizeof(**p));
- else
- (*p)->u.and = ODR_NULLVAL;
if (odr_choice(o, arm, &(*p)->u, &(*p)->which) &&
odr_constructed_end(o))
{-1, -1, -1, -1, 0}
};
- if (o->direction ==ODR_DECODE)
+ if (o->direction == ODR_DECODE)
*p = odr_malloc(o, sizeof(**p));
else if (!*p)
return opt;
return odr_external(o, (Odr_external **) p, opt);
}
+#ifdef Z_95
+
+int z_DefaultDiagFormat(ODR o, Z_DefaultDiagFormat **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);
+}
+
+int z_DiagRec(ODR o, Z_DiagRec **p, int opt)
+{
+ static Odr_arm arm[] =
+ {
+ {-1, -1, -1, Z_DiagRec_defaultFormat, z_DefaultDiagFormat},
+ {-1, -1, -1, Z_DiagRec_externallyDefined, odr_external},
+ {-1, -1, -1, -1, 0}
+ };
+
+ if (o->direction == ODR_DECODE)
+ *p = odr_malloc(o, sizeof(**p));
+ else if (!*p)
+ return opt;
+ if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
+ 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)))
odr_sequence_end(o);
}
+#endif
+
int z_NamePlusRecord(ODR o, Z_NamePlusRecord **p, int opt)
{
static Odr_arm arm[] =
{
if (o->direction == ODR_DECODE)
*p = odr_malloc(o, sizeof(**p));
+ else if (!*p)
+ return opt;
if (odr_sequence_of(o, z_NamePlusRecord, &(*p)->records,
&(*p)->num_records))
return 1;
return
z_ReferenceId(o, &(*p)->referenceId, 1) &&
odr_choice(o, arm, &(*p)->u, &(*p)->which) &&
-#ifdef Z_OTHERINFO
+#ifdef Z_95
z_OtherInformation(o, &(*p)->otherInfo, 1) &&
#endif
odr_sequence_end(o);
z_ReferenceId(o, &(*p)->referenceId, 1) &&
odr_choice(o, arm, &(*p)->u, &(*p)->which) &&
odr_explicit(o, z_DiagRec, &(*p)->diagnostic, ODR_CONTEXT, 223, 1) &&
-#ifdef Z_OTHERINFO
+#ifdef Z_95
z_OtherInformation(o, &(*p)->otherInfo, 1) &&
#endif
odr_sequence_end(o);
if (o->direction == ODR_DECODE)
*p = odr_malloc(o, sizeof(**p));
+ else if (!*p)
+ return opt;
if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
return 1;
if (o->direction == ODR_DECODE)
*p = odr_malloc(o, sizeof(**p));
+ else if (!*p)
+ return opt;
if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
return 1;
{
{ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ElementSpec_elementSetName,
odr_visiblestring},
- {ODR_IMPLICIT; ODR_CONTEXT, 2, Z_ElementSpec_externalSpec,
+ {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ElementSpec_externalSpec,
odr_external},
{-1, -1, -1, -1, 0}
};
if (o->direction == ODR_DECODE)
*p = odr_malloc(o, sizeof(**p));
+ else if (!*p)
+ return opt;
if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
return 1;
if (!odr_sequence_begin(o, p, sizeof(**p)))
return opt && odr_ok(o);
return
- odr_explicit(o, z_DatabaseName, &(*p)->db, ODR_CONTEXT, 1, 0) &&
+ odr_explicit(o, z_DatabaseName, &(*p)->databaseName, ODR_CONTEXT,
+ 1, 0) &&
odr_implicit(o, z_Specification, &(*p)->spec, ODR_CONTEXT, 2, 0) &&
odr_sequence_end(o);
}
1, 0) &&
odr_implicit(o, z_Specification, &(*p)->generic, ODR_CONTEXT, 2, 1) &&
odr_implicit_settag(o, ODR_CONTEXT, 3) &&
- (odr_sequence_of(o, z_DbSpecific, &(*p)->num_dbSpecific,
- &(*p)->dbSpecific) || odr_ok(o)) &&
+ (odr_sequence_of(o, z_DbSpecific, &(*p)->dbSpecific,
+ &(*p)->num_dbSpecific) || odr_ok(o)) &&
odr_implicit_settag(o, ODR_CONTEXT, 4) &&
- (odr_sequence_of(o, odr_oid, &(*p)->num_recordSyntax,
- &(*p)->recordSyntax) || odr_ok(o)) &&
+ (odr_sequence_of(o, odr_oid, &(*p)->recordSyntax,
+ &(*p)->num_recordSyntax) || odr_ok(o)) &&
odr_sequence_end(o);
}
if (o->direction == ODR_DECODE)
*p = odr_malloc(o, sizeof(**p));
+ else if (!*p)
+ return opt;
if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
return 1;
29, 0) &&
#ifdef Z_95
odr_implicit_settag(o, ODR_CONTEXT, 212) &&
- (odr_sequence_of(o, z_Range, &(*p)->num_ranges,
- &(*p)->additionalRanges) || odr_ok(o)) &&
+ (odr_sequence_of(o, z_Range, &(*p)->additionalRanges,
+ &(*p)->num_ranges) || odr_ok(o)) &&
z_RecordComposition(o, &(*p)->recordComposition, 1) &&
#else
z_ElementSetNames(o, &pp->elementSetNames, 1) &&
204, 1) &&
odr_implicit(o, odr_integer, &(*p)->maxRecordSize, ODR_CONTEXT,
206, 1) &&
- odr_impplicit(o, odr_integer, &(*p)->maxSegmentSize, ODR_CONTEXT,
+ odr_implicit(o, odr_integer, &(*p)->maxSegmentSize, ODR_CONTEXT,
207, 1) &&
z_OtherInformation(o, &(*p)->otherInfo, 1) &&
#endif
z_PresentStatus(o, &pp->presentStatus, 0) &&
z_Records(o, &pp->records, 1) &&
#ifdef Z_95
- Z_OtherInformation(o, &(*p)->otherInfo, 1) &&
+ z_OtherInformation(o, &(*p)->otherInfo, 1) &&
#endif
odr_sequence_end(o);
}
0) &&
(odr_sequence_of(o, z_ListStatus, &(*p)->resultSetList,
&(*p)->num_ids) || odr_ok(o)) &&
-#ifdef Z_OTHERINFO
+#ifdef Z_95
z_OtherInformation(o, &(*p)->otherInfo, 1) &&
#endif
odr_sequence_end(o);
&(*p)->num_bulkStatuses) || odr_ok(o)) &&
odr_implicit(o, odr_visiblestring, &(*p)->deleteMessage, ODR_CONTEXT,
36, 1) &&
-#ifdef Z_OTHERINFO
+#ifdef Z_95
z_OtherInformation(o, &(*p)->otherInfo, 1) &&
#endif
odr_sequence_end(o);
odr_implicit(o, odr_integer, &(*p)->numberOfRecordsReturned,
ODR_CONTEXT, 24, 0) &&
odr_implicit_settag(o, ODR_CONTEXT, 0) &&
- odr_sequence_of(o, z_NamePlusRecord, &(*p)->num_segmentRecords,
- &(*p)->segmentRecords) &&
+ odr_sequence_of(o, z_NamePlusRecord, &(*p)->segmentRecords,
+ &(*p)->num_segmentRecords) &&
z_OtherInformation(o, &(*p)->otherInfo, 1) &&
odr_sequence_end(o);
}
4, 1) &&
odr_implicit(o, odr_external, &(*p)->resourceReport, ODR_CONTEXT,
5, 1) &&
-#ifdef Z_OTHERINFO
+#ifdef Z_95
z_OtherInformation(o, &(*p)->otherInfo, 1) &&
#endif
odr_sequence_end(o);