* Sebastian Hammer, Adam Dickmeiss
*
* $Log: proto.c,v $
- * Revision 1.44 1996-02-20 12:51:41 quinn
+ * Revision 1.54 1996-11-11 13:14:46 adam
+ * Fixed tagging bug in z_ProximityOperator.
+ *
+ * Revision 1.53 1996/10/09 15:54:55 quinn
+ * Added SearchInfoReport
+ *
+ * Revision 1.52 1996/10/08 12:56:57 adam
+ * Bug fix: tagging of type 101 query.
+ *
+ * Revision 1.51 1996/07/26 14:07:21 quinn
+ * Small
+ *
+ * Revision 1.50 1996/07/26 13:36:15 quinn
+ * Various smallish
+ *
+ * Revision 1.49 1996/07/06 19:58:28 quinn
+ * System headerfiles gathered in yconfig
+ *
+ * Revision 1.48 1996/06/10 08:53:33 quinn
+ * Added Summary,OPAC,ResourceReport
+ *
+ * Revision 1.47 1996/05/29 15:47:50 quinn
+ * Fixed in bug DiagRecs decoder. Thanks to Linda Harris.
+ *
+ * Revision 1.46 1996/04/10 11:39:42 quinn
+ * Fixed bug in UserInfo
+ *
+ * Revision 1.45 1996/02/23 10:00:25 quinn
+ * Fixes to SCAN
+ *
+ * Revision 1.44 1996/02/20 12:51:41 quinn
* Completed SCAN. Fixed problems with EXTERNAL.
*
* Revision 1.43 1996/02/10 12:22:49 quinn
return opt && odr_ok(o);
return
odr_implicit(o, z_InfoCategory, &(*p)->category, ODR_CONTEXT, 1, 1) &&
- odr_choice(o, arm, &(*p)->which, &(*p)->information) &&
+ odr_choice(o, arm, &(*p)->information, &(*p)->which) &&
odr_sequence_end(o);
}
if (!odr_sequence_begin(o, p, sizeof(**p)))
return opt && odr_ok(o);
return
- odr_implicit(o, odr_visiblestring, &(*p)->unitSystem, ODR_CONTEXT,
+ odr_explicit(o, z_InternationalString, &(*p)->unitSystem, ODR_CONTEXT,
1, 1) &&
odr_explicit(o, z_StringOrNumeric, &(*p)->unitType, ODR_CONTEXT,
2, 1) &&
static Odr_arm arm[] =
{
{ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ProxCode_known, odr_integer},
- {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ProxCode_private, odr_integer},
+ {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ProxCode_private, odr_integer},
{-1, -1, -1, -1, 0}
};
{
{ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Query_type_1, z_RPNQuery},
{ODR_EXPLICIT, ODR_CONTEXT, 2, Z_Query_type_2, odr_octetstring},
- {ODR_EXPLICIT, ODR_CONTEXT, 101, Z_Query_type_101, z_RPNQuery},
+ {ODR_IMPLICIT, ODR_CONTEXT, 101, Z_Query_type_101, z_RPNQuery},
{-1, -1, -1, -1, 0}
};
&(*p)->num_diagRecs))
return 1;
*p = 0;
- return 0;
+ return opt && odr_ok(o);
}
int z_NamePlusRecord(ODR o, Z_NamePlusRecord **p, int opt)
return opt && odr_ok(o);
}
-int z_OccurrenceByAttributes(ODR o, Z_OccurrenceByAttributes **p, int opt)
+int z_OccurrenceByAttributesElem(ODR o, Z_OccurrenceByAttributesElem **p,
+ int opt)
{
if (!odr_sequence_begin(o, p, sizeof(**p)))
return opt && odr_ok(o);
odr_sequence_end(o);
}
+int z_OccurrenceByAttributes(ODR o, Z_OccurrenceByAttributes **p, int opt)
+{
+ if (!odr_initmember(o, p, sizeof(**p)))
+ return opt && odr_ok(o);
+ if (!odr_sequence_of(o, z_OccurrenceByAttributesElem, &(*p)->elements,
+ &(*p)->num_elements))
+ return 1;
+ *p = 0;
+ return opt && odr_ok(o);
+}
+
#else
/*
z_ReferenceId(o, &(*p)->referenceId, 1) &&
odr_implicit(o, odr_integer, &(*p)->deleteFunction, ODR_CONTEXT, 32,
0) &&
- (odr_sequence_of(o, z_ListStatus, &(*p)->resultSetList,
+ (odr_sequence_of(o, z_ResultSetId, &(*p)->resultSetList,
&(*p)->num_ids) || odr_ok(o)) &&
#ifdef Z_95
z_OtherInformation(o, &(*p)->otherInfo, 1) &&
odr_sequence_end(o);
}
+/* ---------------------- Resource Report ---------------- */
+
+int z_ResourceReportRequest(ODR o, Z_ResourceReportRequest **p, int opt)
+{
+ if (!odr_sequence_begin(o, p, sizeof(**p)))
+ return opt && odr_ok(o);
+ return
+ z_ReferenceId(o, &(*p)->referenceId, 1) &&
+ 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) &&
+ odr_sequence_end(o);
+}
+
+int z_ResourceReportResponse(ODR o, Z_ResourceReportResponse **p, int opt)
+{
+ if (!odr_sequence_begin(o, p, sizeof(**p)))
+ return opt && odr_ok(o);
+ return
+ z_ReferenceId(o, &(*p)->referenceId, 1) &&
+ odr_implicit(o, odr_integer, &(*p)->resourceReportStatus,
+ ODR_CONTEXT, 50, 0) &&
+ odr_explicit(o, z_External, &(*p)->resourceReport, ODR_CONTEXT,
+ 51, 1) &&
+ z_OtherInformation(o, &(*p)->otherInfo, 1) &&
+ odr_sequence_end(o);
+}
+
/* ------------------------ APDU ------------------------- */
int z_APDU(ODR o, Z_APDU **p, int opt)
z_ResourceControlResponse},
{ODR_IMPLICIT, ODR_CONTEXT, 32, Z_APDU_triggerResourceControlRequest,
z_TriggerResourceControlRequest},
+ {ODR_IMPLICIT, ODR_CONTEXT, 33, Z_APDU_resourceReportRequest,
+ z_ResourceReportRequest},
+ {ODR_IMPLICIT, ODR_CONTEXT, 34, Z_APDU_resourceReportResponse,
+ z_ResourceReportResponse},
{ODR_IMPLICIT, ODR_CONTEXT, 35, Z_APDU_scanRequest, z_ScanRequest},
{ODR_IMPLICIT, ODR_CONTEXT, 36, Z_APDU_scanResponse, z_ScanResponse},
{ODR_IMPLICIT, ODR_CONTEXT, 43, Z_APDU_sortRequest, z_SortRequest},
if (o->direction == ODR_DECODE)
*p = odr_malloc(o, sizeof(**p));
+ odr_setlenlen(o, 5);
if (!odr_choice(o, arm, &(*p)->u, &(*p)->which))
{
if (o->direction == ODR_DECODE)