Exemplo n.º 1
0
int z_Scan(ODR o, Z_Scan **p, int opt, const char *name)
{
	static Odr_arm arm[] = {
		{ODR_IMPLICIT, ODR_CONTEXT, 0, Z_Scan_nonZeroStepSize,
		(Odr_fun) odr_null, "nonZeroStepSize"},
		{ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Scan_specifiedStepSize,
		(Odr_fun) odr_null, "specifiedStepSize"},
		{ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Scan_termList1,
		(Odr_fun) odr_null, "termList1"},
		{ODR_IMPLICIT, ODR_CONTEXT, 4, Z_Scan_termList2,
		(Odr_fun) z_AttrListList, "termList2"},
		{ODR_IMPLICIT, ODR_CONTEXT, 5, Z_Scan_posInResponse,
		(Odr_fun) odr_integer, "posInResponse"},
		{ODR_IMPLICIT, ODR_CONTEXT, 6, Z_Scan_resources,
		(Odr_fun) odr_null, "resources"},
		{ODR_IMPLICIT, ODR_CONTEXT, 7, Z_Scan_endOfList,
		(Odr_fun) odr_null, "endOfList"},
		{-1, -1, -1, -1, (Odr_fun) 0, 0}
	};
	if (!odr_initmember(o, p, sizeof(**p)))
		return odr_missing(o, opt, name);
	if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
		return 1;
	if (o->direction == ODR_DECODE)
		*p = 0;
	return odr_missing(o, opt, name);
}
Exemplo n.º 2
0
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, "resultSets"},
		{ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Proximity_badSet,
		(Odr_fun) z_InternationalString, "badSet"},
		{ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Proximity_relation,
		(Odr_fun) odr_integer, "relation"},
		{ODR_IMPLICIT, ODR_CONTEXT, 4, Z_Proximity_unit,
		(Odr_fun) odr_integer, "unit"},
		{ODR_IMPLICIT, ODR_CONTEXT, 5, Z_Proximity_distance,
		(Odr_fun) odr_integer, "distance"},
		{ODR_EXPLICIT, ODR_CONTEXT, 6, Z_Proximity_attributes,
		(Odr_fun) z_AttributeList, "attributes"},
		{ODR_IMPLICIT, ODR_CONTEXT, 7, Z_Proximity_ordered,
		(Odr_fun) odr_null, "ordered"},
		{ODR_IMPLICIT, ODR_CONTEXT, 8, Z_Proximity_exclusion,
		(Odr_fun) odr_null, "exclusion"},
		{-1, -1, -1, -1, (Odr_fun) 0, 0}
	};
	if (!odr_initmember(o, p, sizeof(**p)))
		return odr_missing(o, opt, name);
	if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
		return 1;
	if (o->direction == ODR_DECODE)
		*p = 0;
	return odr_missing(o, opt, name);
}
Exemplo n.º 3
0
int z_AccessCtrl(ODR o, Z_AccessCtrl **p, int opt, const char *name)
{
	static Odr_arm arm[] = {
		{ODR_IMPLICIT, ODR_CONTEXT, 1, Z_AccessCtrl_noUser,
		(Odr_fun) odr_null, "noUser"},
		{ODR_IMPLICIT, ODR_CONTEXT, 2, Z_AccessCtrl_refused,
		(Odr_fun) odr_null, "refused"},
		{ODR_IMPLICIT, ODR_CONTEXT, 3, Z_AccessCtrl_simple,
		(Odr_fun) odr_null, "simple"},
		{ODR_IMPLICIT, ODR_CONTEXT, 4, Z_AccessCtrl_oid,
		(Odr_fun) z_OidList, "oid"},
		{ODR_IMPLICIT, ODR_CONTEXT, 5, Z_AccessCtrl_alternative,
		(Odr_fun) z_AltOidList, "alternative"},
		{ODR_IMPLICIT, ODR_CONTEXT, 6, Z_AccessCtrl_pwdInv,
		(Odr_fun) odr_null, "pwdInv"},
		{ODR_IMPLICIT, ODR_CONTEXT, 7, Z_AccessCtrl_pwdExp,
		(Odr_fun) odr_null, "pwdExp"},
		{-1, -1, -1, -1, (Odr_fun) 0, 0}
	};
	if (!odr_initmember(o, p, sizeof(**p)))
		return odr_missing(o, opt, name);
	if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
		return 1;
	if (o->direction == ODR_DECODE)
		*p = 0;
	return odr_missing(o, opt, name);
}
Exemplo n.º 4
0
int z_MultipleSearchTerms_2 (ODR o, Z_MultipleSearchTerms_2 **p, int opt, const char *name)
{
	if (!odr_initmember (o, p, sizeof(**p)))
		return odr_missing(o, opt, name);
	if (odr_sequence_of (o, (Odr_fun) z_MultipleSearchTerms_2_s, &(*p)->elements,
		&(*p)->num, name))
		return 1;
	if(o->direction == ODR_DECODE)
		*p = 0;
	return odr_missing(o, opt, name);
}
Exemplo n.º 5
0
int z_EIOriginPartNotToKeepRanges(ODR o, Z_EIOriginPartNotToKeepRanges **p, int opt, const char *name)
{
	if (!odr_initmember(o, p, sizeof(**p)))
		return odr_missing(o, opt, name);
	if (odr_sequence_of(o, (Odr_fun) z_EIOriginPartNotToKeepRanges_s, &(*p)->elements,
		&(*p)->num, name))
		return 1;
	if (o->direction == ODR_DECODE)
		*p = 0;
	return odr_missing(o, opt, name);
}
Exemplo n.º 6
0
int z_IUTaskPackageRecordStructureSurrogateDiagnostics(ODR o, Z_IUTaskPackageRecordStructureSurrogateDiagnostics **p, int opt, const char *name)
{
	if (!odr_initmember(o, p, sizeof(**p)))
		return odr_missing(o, opt, name);
	if (odr_sequence_of(o, (Odr_fun) z_DiagRec, &(*p)->elements,
		&(*p)->num, name))
		return 1;
	if (o->direction == ODR_DECODE)
		*p = 0;
	return odr_missing(o, opt, name);
}
Exemplo n.º 7
0
int z_DiagnosticFormat(ODR o, Z_DiagnosticFormat **p, int opt, const char *name)
{
	if (!odr_initmember(o, p, sizeof(**p)))
		return odr_missing(o, opt, name);
	if (odr_sequence_of(o, (Odr_fun) z_DiagnosticFormat_s, &(*p)->elements,
		&(*p)->num, name))
		return 1;
	if (o->direction == ODR_DECODE)
		*p = 0;
	return odr_missing(o, opt, name);
}
Exemplo n.º 8
0
int z_IU0SuppliedRecords(ODR o, Z_IU0SuppliedRecords **p, int opt, const char *name)
{
	if (!odr_initmember(o, p, sizeof(**p)))
		return odr_missing(o, opt, name);
	if (odr_sequence_of(o, (Odr_fun) z_IU0SuppliedRecords_elem, &(*p)->elements,
		&(*p)->num, name))
		return 1;
	if (o->direction == ODR_DECODE)
		*p = 0;
	return odr_missing(o, opt, name);
}
Exemplo n.º 9
0
int z_AltOidList(ODR o, Z_AltOidList **p, int opt, const char *name)
{
	if (!odr_initmember(o, p, sizeof(**p)))
		return odr_missing(o, opt, name);
	if (odr_sequence_of(o, (Odr_fun) odr_oid, &(*p)->elements,
		&(*p)->num, name))
		return 1;
	if (o->direction == ODR_DECODE)
		*p = 0;
	return odr_missing(o, opt, name);
}
Exemplo n.º 10
0
int z_PQSOriginPartToKeep (ODR o, Z_PQSOriginPartToKeep **p, int opt, const char *name)
{
	static Odr_arm arm[] = {
		{ODR_IMPLICIT, ODR_CONTEXT, 1, Z_PQSOriginPartToKeep_packageName,
		(Odr_fun) z_InternationalString, "packageName"},
		{ODR_EXPLICIT, ODR_CONTEXT, 2, Z_PQSOriginPartToKeep_exportPackage,
		(Odr_fun) z_ESExportSpecification, "exportPackage"},
		{-1, -1, -1, -1, (Odr_fun) 0, 0}
	};
	if (!odr_sequence_begin (o, p, sizeof(**p), name))
		return odr_missing(o, opt, name) && odr_ok (o);
	return
		odr_implicit_tag (o, odr_bool,
			&(*p)->activeFlag, ODR_CONTEXT, 1, 0, "activeFlag") &&
		odr_implicit_settag (o, ODR_CONTEXT, 2) &&
		(odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->databaseNames,
		  &(*p)->num_databaseNames, "databaseNames") || odr_ok(o)) &&
		odr_implicit_tag (o, odr_integer,
			&(*p)->resultSetDisposition, ODR_CONTEXT, 3, 1, "resultSetDisposition") &&
		odr_explicit_tag (o, z_ESDestination,
			&(*p)->alertDestination, ODR_CONTEXT, 4, 1, "alertDestination") &&
		((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 5, "exportParameters") &&
		odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) &&
		odr_constructed_end (o)) || odr_ok(o)) &&
		odr_sequence_end (o);
}
Exemplo n.º 11
0
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, "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), name))
        return odr_missing(o, opt, name);
    pp = *p;
    return
        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);
}
Exemplo n.º 12
0
int z_IU0SuppliedRecords_elem(ODR o, Z_IU0SuppliedRecords_elem **p, int opt, const char *name)
{
	static Odr_arm arm[] = {
		{ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IU0SuppliedRecords_elem_number,
		(Odr_fun) odr_integer, "number"},
		{ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IU0SuppliedRecords_elem_string,
		(Odr_fun) z_InternationalString, "string"},
		{ODR_IMPLICIT, ODR_CONTEXT, 3, Z_IU0SuppliedRecords_elem_opaque,
		(Odr_fun) odr_octetstring, "opaque"},
		{-1, -1, -1, -1, (Odr_fun) 0, 0}
	};
	if (!odr_sequence_begin(o, p, sizeof(**p), name))
		return odr_missing(o, opt, name) && odr_ok (o);
	return
		((odr_constructed_begin(o, &(*p)->u, ODR_CONTEXT, 1, "recordId") &&
		odr_choice(o, arm, &(*p)->u, &(*p)->which, 0) &&
		odr_constructed_end(o)) || odr_ok(o)) &&
		odr_explicit_tag(o, z_IU0SuppliedRecordsId,
			&(*p)->supplementalId, ODR_CONTEXT, 2, 1, "supplementalId") &&
		odr_implicit_tag(o, z_IU0CorrelationInfo,
			&(*p)->correlationInfo, ODR_CONTEXT, 3, 1, "correlationInfo") &&
		odr_implicit_tag(o, z_External,
			&(*p)->record, ODR_CONTEXT, 4, 0, "record") &&
		odr_sequence_end(o);
}
Exemplo n.º 13
0
int z_Segmentation(ODR o, Z_Segmentation **p, int opt, const char *name)
{
	static Odr_arm arm[] = {
		{ODR_IMPLICIT, ODR_CONTEXT, 0, Z_Segmentation_segmentCount,
		(Odr_fun) odr_null, "segmentCount"},
		{ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Segmentation_segmentSize,
		(Odr_fun) odr_integer, "segmentSize"},
		{-1, -1, -1, -1, (Odr_fun) 0, 0}
	};
	if (!odr_initmember(o, p, sizeof(**p)))
		return odr_missing(o, opt, name);
	if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
		return 1;
	if (o->direction == ODR_DECODE)
		*p = 0;
	return odr_missing(o, opt, name);
}
Exemplo n.º 14
0
int z_KRBObject(ODR o, Z_KRBObject **p, int opt, const char *name)
{
	static Odr_arm arm[] = {
		{ODR_IMPLICIT, ODR_CONTEXT, 1, Z_KRBObject_challenge,
		(Odr_fun) z_KRBRequest, "challenge"},
		{ODR_IMPLICIT, ODR_CONTEXT, 2, Z_KRBObject_response,
		(Odr_fun) z_KRBResponse, "response"},
		{-1, -1, -1, -1, (Odr_fun) 0, 0}
	};
	if (!odr_initmember(o, p, sizeof(**p)))
		return odr_missing(o, opt, name);
	if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
		return 1;
	if (o->direction == ODR_DECODE)
		*p = 0;
	return odr_missing(o, opt, name);
}
Exemplo n.º 15
0
int z_EIExportInvocation(ODR o, Z_EIExportInvocation **p, int opt, const char *name)
{
	static Odr_arm arm[] = {
		{ODR_IMPLICIT, ODR_CONTEXT, 1, Z_EIExportInvocation_esRequest,
		(Odr_fun) z_EIExportInvocationEsRequest, "esRequest"},
		{ODR_IMPLICIT, ODR_CONTEXT, 2, Z_EIExportInvocation_taskPackage,
		(Odr_fun) z_EIExportInvocationTaskPackage, "taskPackage"},
		{-1, -1, -1, -1, (Odr_fun) 0, 0}
	};
	if (!odr_initmember(o, p, sizeof(**p)))
		return odr_missing(o, opt, name);
	if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
		return 1;
	if (o->direction == ODR_DECODE)
		*p = 0;
	return odr_missing(o, opt, name);
}
Exemplo n.º 16
0
int z_UniverseReportDuplicate(ODR o, Z_UniverseReportDuplicate **p, int opt, const char *name)
{
	if (!odr_sequence_begin(o, p, sizeof(**p), name))
		return odr_missing(o, opt, name) && odr_ok (o);
	return
		z_StringOrNumeric(o, &(*p)->hitno, 0, "hitno") &&
		odr_sequence_end(o);
}
Exemplo n.º 17
0
int z_UniverseReportHits(ODR o, Z_UniverseReportHits **p, int opt, const char *name)
{
	if (!odr_sequence_begin(o, p, sizeof(**p), name))
		return odr_missing(o, opt, name) && odr_ok (o);
	return
		z_StringOrNumeric(o, &(*p)->database, 0, "database") &&
		z_StringOrNumeric(o, &(*p)->hits, 0, "hits") &&
		odr_sequence_end(o);
}
Exemplo n.º 18
0
int z_IU0SuppliedRecordsId(ODR o, Z_IU0SuppliedRecordsId **p, int opt, const char *name)
{
	static Odr_arm arm[] = {
		{ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IU0SuppliedRecordsId_timeStamp,
		(Odr_fun) odr_generalizedtime, "timeStamp"},
		{ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IU0SuppliedRecordsId_versionNumber,
		(Odr_fun) z_InternationalString, "versionNumber"},
		{ODR_IMPLICIT, ODR_CONTEXT, 3, Z_IU0SuppliedRecordsId_previousVersion,
		(Odr_fun) z_External, "previousVersion"},
		{-1, -1, -1, -1, (Odr_fun) 0, 0}
	};
	if (!odr_initmember(o, p, sizeof(**p)))
		return odr_missing(o, opt, name);
	if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
		return 1;
	if (o->direction == ODR_DECODE)
		*p = 0;
	return odr_missing(o, opt, name);
}
Exemplo n.º 19
0
int z_ExtServices(ODR o, Z_ExtServices **p, int opt, const char *name)
{
	static Odr_arm arm[] = {
		{ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ExtServices_req,
		(Odr_fun) odr_integer, "req"},
		{ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ExtServices_permission,
		(Odr_fun) odr_integer, "permission"},
		{ODR_IMPLICIT, ODR_CONTEXT, 3, Z_ExtServices_immediate,
		(Odr_fun) odr_integer, "immediate"},
		{-1, -1, -1, -1, (Odr_fun) 0, 0}
	};
	if (!odr_initmember(o, p, sizeof(**p)))
		return odr_missing(o, opt, name);
	if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
		return 1;
	if (o->direction == ODR_DECODE)
		*p = 0;
	return odr_missing(o, opt, name);
}
Exemplo n.º 20
0
int z_EIOriginPartNotToKeepRanges_s(ODR o, Z_EIOriginPartNotToKeepRanges_s **p, int opt, const char *name)
{
	if (!odr_sequence_begin(o, p, sizeof(**p), name))
		return odr_missing(o, opt, name) && odr_ok (o);
	return
		odr_implicit_tag(o, odr_integer,
			&(*p)->start, ODR_CONTEXT, 1, 0, "start") &&
		odr_implicit_tag(o, odr_integer,
			&(*p)->count, ODR_CONTEXT, 2, 1, "count") &&
		odr_sequence_end(o);
}
Exemplo n.º 21
0
int z_PQSPeriodicQueryScheduleEsRequest (ODR o, Z_PQSPeriodicQueryScheduleEsRequest **p, int opt, const char *name)
{
	if (!odr_sequence_begin (o, p, sizeof(**p), name))
		return odr_missing(o, opt, name) && odr_ok (o);
	return
		odr_explicit_tag (o, z_PQSOriginPartToKeep,
			&(*p)->toKeep, ODR_CONTEXT, 1, 0, "toKeep") &&
		odr_explicit_tag (o, z_PQSOriginPartNotToKeep,
			&(*p)->notToKeep, ODR_CONTEXT, 2, 0, "notToKeep") &&
		odr_sequence_end (o);
}
Exemplo n.º 22
0
int z_EIExportInvocationTaskPackage(ODR o, Z_EIExportInvocationTaskPackage **p, int opt, const char *name)
{
	if (!odr_sequence_begin(o, p, sizeof(**p), name))
		return odr_missing(o, opt, name) && odr_ok (o);
	return
		odr_explicit_tag(o, z_EIOriginPartToKeep,
			&(*p)->originPart, ODR_CONTEXT, 1, 0, "originPart") &&
		odr_explicit_tag(o, z_EITargetPart,
			&(*p)->targetPart, ODR_CONTEXT, 2, 1, "targetPart") &&
		odr_sequence_end(o);
}
Exemplo n.º 23
0
int z_IU0CorrelationInfo(ODR o, Z_IU0CorrelationInfo **p, int opt, const char *name)
{
	if (!odr_sequence_begin(o, p, sizeof(**p), name))
		return odr_missing(o, opt, name) && odr_ok (o);
	return
		odr_implicit_tag(o, z_InternationalString,
			&(*p)->note, ODR_CONTEXT, 1, 1, "note") &&
		odr_implicit_tag(o, odr_integer,
			&(*p)->id, ODR_CONTEXT, 2, 1, "id") &&
		odr_sequence_end(o);
}
Exemplo n.º 24
0
int z_KRBResponse(ODR o, Z_KRBResponse **p, int opt, const char *name)
{
	if (!odr_sequence_begin(o, p, sizeof(**p), name))
		return odr_missing(o, opt, name) && odr_ok (o);
	return
		odr_implicit_tag(o, z_InternationalString,
			&(*p)->userid, ODR_CONTEXT, 1, 1, "userid") &&
		odr_implicit_tag(o, odr_octetstring,
			&(*p)->ticket, ODR_CONTEXT, 2, 0, "ticket") &&
		odr_sequence_end(o);
}
Exemplo n.º 25
0
int z_EIExportInvocationEsRequest(ODR o, Z_EIExportInvocationEsRequest **p, int opt, const char *name)
{
	if (!odr_sequence_begin(o, p, sizeof(**p), name))
		return odr_missing(o, opt, name) && odr_ok (o);
	return
		odr_explicit_tag(o, z_EIOriginPartToKeep,
			&(*p)->toKeep, ODR_CONTEXT, 1, 0, "toKeep") &&
		odr_explicit_tag(o, z_EIOriginPartNotToKeep,
			&(*p)->notToKeep, ODR_CONTEXT, 2, 0, "notToKeep") &&
		odr_sequence_end(o);
}
Exemplo n.º 26
0
int z_DiagTerm(ODR o, Z_DiagTerm **p, int opt, const char *name)
{
	if (!odr_sequence_begin(o, p, sizeof(**p), name))
		return odr_missing(o, opt, name) && odr_ok (o);
	return
		odr_implicit_tag(o, odr_integer,
			&(*p)->problem, ODR_CONTEXT, 1, 1, "problem") &&
		odr_explicit_tag(o, z_Term,
			&(*p)->term, ODR_CONTEXT, 2, 0, "term") &&
		odr_sequence_end(o);
}
Exemplo n.º 27
0
int z_MultipleSearchTerms_2_s (ODR o, Z_MultipleSearchTerms_2_s **p, int opt, const char *name)
{
	if (!odr_sequence_begin (o, p, sizeof(**p), name))
		return odr_missing(o, opt, name) && odr_ok (o);
	return
		odr_explicit_tag (o, z_Term,
			&(*p)->term, ODR_CONTEXT, 1, 0, "term") &&
		odr_implicit_tag (o, odr_bool,
			&(*p)->flag, ODR_CONTEXT, 2, 1, "flag") &&
		odr_sequence_end (o);
}
Exemplo n.º 28
0
int z_DbUnavail(ODR o, Z_DbUnavail **p, int opt, const char *name)
{
	if (!odr_sequence_begin(o, p, sizeof(**p), name))
		return odr_missing(o, opt, name) && odr_ok (o);
	return
		odr_implicit_tag(o, z_DatabaseName,
			&(*p)->db, ODR_CONTEXT, 1, 0, "db") &&
		odr_implicit_tag(o, z_DbUnavail_0,
			&(*p)->why, ODR_CONTEXT, 2, 0, "why") &&
		odr_sequence_end(o);
}
Exemplo n.º 29
0
int z_DbUnavail_0(ODR o, Z_DbUnavail_0 **p, int opt, const char *name)
{
	if (!odr_sequence_begin(o, p, sizeof(**p), name))
		return odr_missing(o, opt, name) && odr_ok (o);
	return
		odr_implicit_tag(o, odr_integer,
			&(*p)->reasonCode, ODR_CONTEXT, 1, 1, "reasonCode") &&
		odr_implicit_tag(o, z_InternationalString,
			&(*p)->message, ODR_CONTEXT, 2, 1, "message") &&
		odr_sequence_end(o);
}
Exemplo n.º 30
0
int z_TooMany(ODR o, Z_TooMany **p, int opt, const char *name)
{
	if (!odr_sequence_begin(o, p, sizeof(**p), name))
		return odr_missing(o, opt, name) && odr_ok (o);
	return
		odr_implicit_tag(o, odr_integer,
			&(*p)->tooManyWhat, ODR_CONTEXT, 1, 0, "tooManyWhat") &&
		odr_implicit_tag(o, odr_integer,
			&(*p)->max, ODR_CONTEXT, 2, 1, "max") &&
		odr_sequence_end(o);
}