aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorLev Walkin <vlm@lionet.info>2005-11-07 15:26:47 +0000
committerLev Walkin <vlm@lionet.info>2005-11-07 15:26:47 +0000
commit5ab96cda95eaaa50473346d3aaa0c2b869e9e93a (patch)
tree6b9b9244e15c656b62414a852f10c69111fc6d62 /tests
parent1c75173e2af510ae535f2934b3d063b3e258b47e (diff)
new test for Choice
Diffstat (limited to 'tests')
-rw-r--r--tests/70-xer-test-OK.asn16
-rw-r--r--tests/70-xer-test-OK.asn1.-EF41
-rw-r--r--tests/70-xer-test-OK.asn1.-P765
3 files changed, 709 insertions, 103 deletions
diff --git a/tests/70-xer-test-OK.asn1 b/tests/70-xer-test-OK.asn1
index 330b9137..2c23f522 100644
--- a/tests/70-xer-test-OK.asn1
+++ b/tests/70-xer-test-OK.asn1
@@ -29,6 +29,8 @@ BEGIN
namedSetOfREAL NamedSetOfREAL,
namedSetOfEnums NamedSetOfEnums,
seqOfZuka SeqOfZuka,
+ setOfChoice SetOfChoice,
+ namedSetOfChoice NamedSetOfChoice,
...
}
@@ -71,5 +73,9 @@ BEGIN
NamedSetOfEnums ::= SET OF name ENUMERATED { one, oneMore }
SequenceOf ::= SEQUENCE OF id INTEGER { one(1), two(2) }
SeqOfZuka ::= SEQUENCE OF zuka NULL
+ SetOfChoice ::= SET OF SimpleChoice
+ NamedSetOfChoice ::= SET OF whatever SimpleChoice
+
+ SimpleChoice ::= CHOICE { a NULL, b INTEGER }
END
diff --git a/tests/70-xer-test-OK.asn1.-EF b/tests/70-xer-test-OK.asn1.-EF
index adc34d4b..983f40af 100644
--- a/tests/70-xer-test-OK.asn1.-EF
+++ b/tests/70-xer-test-OK.asn1.-EF
@@ -6,14 +6,19 @@ BEGIN
PDU ::= CHOICE {
sequence [0] IMPLICIT Sequence,
set [1] IMPLICIT Set,
- setOf [2] IMPLICIT SetOf,
- sequenceOf [3] IMPLICIT SequenceOf,
- extensibleSet [4] IMPLICIT ExtensibleSet,
- extensibleSequence [5] IMPLICIT ExtensibleSequence,
- extensibleSequence2 [6] IMPLICIT ExtensibleSequence2,
- setOfNULL [7] IMPLICIT SetOfNULL,
+ sequenceOf [2] IMPLICIT SequenceOf,
+ extensibleSet [3] IMPLICIT ExtensibleSet,
+ extensibleSequence [4] IMPLICIT ExtensibleSequence,
+ extensibleSequence2 [5] IMPLICIT ExtensibleSequence2,
+ setOfNULL [6] IMPLICIT SetOfNULL,
+ setOfREAL [7] IMPLICIT SetOfREAL,
setOfEnums [8] IMPLICIT SetOfEnums,
- seqOfZuka [9] IMPLICIT SeqOfZuka,
+ namedSetOfNULL [9] IMPLICIT NamedSetOfNULL,
+ namedSetOfREAL [10] IMPLICIT NamedSetOfREAL,
+ namedSetOfEnums [11] IMPLICIT NamedSetOfEnums,
+ seqOfZuka [12] IMPLICIT SeqOfZuka,
+ setOfChoice [13] IMPLICIT SetOfChoice,
+ namedSetOfChoice [14] IMPLICIT NamedSetOfChoice,
...
}
@@ -51,15 +56,24 @@ ExtensibleSequence2 ::= SEQUENCE {
integer [1] IMPLICIT INTEGER OPTIONAL
}
-SetOf ::= SET OF REAL
-
SetOfNULL ::= SET OF NULL
+SetOfREAL ::= SET OF REAL
+
SetOfEnums ::= SET OF ENUMERATED {
one(0),
oneMore(1)
}
+NamedSetOfNULL ::= SET OF y NULL
+
+NamedSetOfREAL ::= SET OF name REAL
+
+NamedSetOfEnums ::= SET OF name ENUMERATED {
+ one(0),
+ oneMore(1)
+ }
+
SequenceOf ::= SEQUENCE OF id INTEGER {
one(1),
two(2)
@@ -67,4 +81,13 @@ SequenceOf ::= SEQUENCE OF id INTEGER {
SeqOfZuka ::= SEQUENCE OF zuka NULL
+SetOfChoice ::= SET OF SimpleChoice
+
+NamedSetOfChoice ::= SET OF whatever SimpleChoice
+
+SimpleChoice ::= CHOICE {
+ a [0] IMPLICIT NULL,
+ b [1] IMPLICIT INTEGER
+}
+
END
diff --git a/tests/70-xer-test-OK.asn1.-P b/tests/70-xer-test-OK.asn1.-P
index 25a5a4fa..a0e273c1 100644
--- a/tests/70-xer-test-OK.asn1.-P
+++ b/tests/70-xer-test-OK.asn1.-P
@@ -3,14 +3,19 @@
#include <Sequence.h>
#include <Set.h>
-#include <SetOf.h>
#include <SequenceOf.h>
#include <ExtensibleSet.h>
#include <ExtensibleSequence.h>
#include <ExtensibleSequence2.h>
#include <SetOfNULL.h>
+#include <SetOfREAL.h>
#include <SetOfEnums.h>
+#include <NamedSetOfNULL.h>
+#include <NamedSetOfREAL.h>
+#include <NamedSetOfEnums.h>
#include <SeqOfZuka.h>
+#include <SetOfChoice.h>
+#include <NamedSetOfChoice.h>
#include <constr_CHOICE.h>
/*** <<< DEPS [PDU] >>> ***/
@@ -19,14 +24,19 @@ typedef enum PDU_PR {
PDU_PR_NOTHING, /* No components present */
PDU_PR_sequence,
PDU_PR_set,
- PDU_PR_setOf,
PDU_PR_sequenceOf,
PDU_PR_extensibleSet,
PDU_PR_extensibleSequence,
PDU_PR_extensibleSequence2,
PDU_PR_setOfNULL,
+ PDU_PR_setOfREAL,
PDU_PR_setOfEnums,
+ PDU_PR_namedSetOfNULL,
+ PDU_PR_namedSetOfREAL,
+ PDU_PR_namedSetOfEnums,
PDU_PR_seqOfZuka,
+ PDU_PR_setOfChoice,
+ PDU_PR_namedSetOfChoice,
/* Extensions may appear below */
} PDU_PR;
@@ -37,14 +47,19 @@ typedef struct PDU {
union PDU_u {
Sequence_t sequence;
Set_t set;
- SetOf_t setOf;
SequenceOf_t sequenceOf;
ExtensibleSet_t extensibleSet;
ExtensibleSequence_t extensibleSequence;
ExtensibleSequence2_t extensibleSequence2;
SetOfNULL_t setOfNULL;
+ SetOfREAL_t setOfREAL;
SetOfEnums_t setOfEnums;
+ NamedSetOfNULL_t namedSetOfNULL;
+ NamedSetOfREAL_t namedSetOfREAL;
+ NamedSetOfEnums_t namedSetOfEnums;
SeqOfZuka_t seqOfZuka;
+ SetOfChoice_t setOfChoice;
+ NamedSetOfChoice_t namedSetOfChoice;
/*
* This type is extensible,
* possible extensions are below.
@@ -76,48 +91,48 @@ static asn_TYPE_member_t asn_MBR_PDU_1[] = {
.memb_constraints = 0, /* Defer constraints checking to the member type */
.name = "set"
},
- { ATF_NOFLAGS, 0, offsetof(struct PDU, choice.setOf),
- .tag = (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
- .tag_mode = -1, /* IMPLICIT tag at current level */
- .type = &asn_DEF_SetOf,
- .memb_constraints = 0, /* Defer constraints checking to the member type */
- .name = "setOf"
- },
{ ATF_NOFLAGS, 0, offsetof(struct PDU, choice.sequenceOf),
- .tag = (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
+ .tag = (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
.tag_mode = -1, /* IMPLICIT tag at current level */
.type = &asn_DEF_SequenceOf,
.memb_constraints = 0, /* Defer constraints checking to the member type */
.name = "sequenceOf"
},
{ ATF_NOFLAGS, 0, offsetof(struct PDU, choice.extensibleSet),
- .tag = (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
+ .tag = (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
.tag_mode = -1, /* IMPLICIT tag at current level */
.type = &asn_DEF_ExtensibleSet,
.memb_constraints = 0, /* Defer constraints checking to the member type */
.name = "extensibleSet"
},
{ ATF_NOFLAGS, 0, offsetof(struct PDU, choice.extensibleSequence),
- .tag = (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
+ .tag = (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
.tag_mode = -1, /* IMPLICIT tag at current level */
.type = &asn_DEF_ExtensibleSequence,
.memb_constraints = 0, /* Defer constraints checking to the member type */
.name = "extensibleSequence"
},
{ ATF_NOFLAGS, 0, offsetof(struct PDU, choice.extensibleSequence2),
- .tag = (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
+ .tag = (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
.tag_mode = -1, /* IMPLICIT tag at current level */
.type = &asn_DEF_ExtensibleSequence2,
.memb_constraints = 0, /* Defer constraints checking to the member type */
.name = "extensibleSequence2"
},
{ ATF_NOFLAGS, 0, offsetof(struct PDU, choice.setOfNULL),
- .tag = (ASN_TAG_CLASS_CONTEXT | (7 << 2)),
+ .tag = (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
.tag_mode = -1, /* IMPLICIT tag at current level */
.type = &asn_DEF_SetOfNULL,
.memb_constraints = 0, /* Defer constraints checking to the member type */
.name = "setOfNULL"
},
+ { ATF_NOFLAGS, 0, offsetof(struct PDU, choice.setOfREAL),
+ .tag = (ASN_TAG_CLASS_CONTEXT | (7 << 2)),
+ .tag_mode = -1, /* IMPLICIT tag at current level */
+ .type = &asn_DEF_SetOfREAL,
+ .memb_constraints = 0, /* Defer constraints checking to the member type */
+ .name = "setOfREAL"
+ },
{ ATF_NOFLAGS, 0, offsetof(struct PDU, choice.setOfEnums),
.tag = (ASN_TAG_CLASS_CONTEXT | (8 << 2)),
.tag_mode = -1, /* IMPLICIT tag at current level */
@@ -125,25 +140,65 @@ static asn_TYPE_member_t asn_MBR_PDU_1[] = {
.memb_constraints = 0, /* Defer constraints checking to the member type */
.name = "setOfEnums"
},
- { ATF_NOFLAGS, 0, offsetof(struct PDU, choice.seqOfZuka),
+ { ATF_NOFLAGS, 0, offsetof(struct PDU, choice.namedSetOfNULL),
.tag = (ASN_TAG_CLASS_CONTEXT | (9 << 2)),
.tag_mode = -1, /* IMPLICIT tag at current level */
+ .type = &asn_DEF_NamedSetOfNULL,
+ .memb_constraints = 0, /* Defer constraints checking to the member type */
+ .name = "namedSetOfNULL"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct PDU, choice.namedSetOfREAL),
+ .tag = (ASN_TAG_CLASS_CONTEXT | (10 << 2)),
+ .tag_mode = -1, /* IMPLICIT tag at current level */
+ .type = &asn_DEF_NamedSetOfREAL,
+ .memb_constraints = 0, /* Defer constraints checking to the member type */
+ .name = "namedSetOfREAL"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct PDU, choice.namedSetOfEnums),
+ .tag = (ASN_TAG_CLASS_CONTEXT | (11 << 2)),
+ .tag_mode = -1, /* IMPLICIT tag at current level */
+ .type = &asn_DEF_NamedSetOfEnums,
+ .memb_constraints = 0, /* Defer constraints checking to the member type */
+ .name = "namedSetOfEnums"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct PDU, choice.seqOfZuka),
+ .tag = (ASN_TAG_CLASS_CONTEXT | (12 << 2)),
+ .tag_mode = -1, /* IMPLICIT tag at current level */
.type = &asn_DEF_SeqOfZuka,
.memb_constraints = 0, /* Defer constraints checking to the member type */
.name = "seqOfZuka"
},
+ { ATF_NOFLAGS, 0, offsetof(struct PDU, choice.setOfChoice),
+ .tag = (ASN_TAG_CLASS_CONTEXT | (13 << 2)),
+ .tag_mode = -1, /* IMPLICIT tag at current level */
+ .type = &asn_DEF_SetOfChoice,
+ .memb_constraints = 0, /* Defer constraints checking to the member type */
+ .name = "setOfChoice"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct PDU, choice.namedSetOfChoice),
+ .tag = (ASN_TAG_CLASS_CONTEXT | (14 << 2)),
+ .tag_mode = -1, /* IMPLICIT tag at current level */
+ .type = &asn_DEF_NamedSetOfChoice,
+ .memb_constraints = 0, /* Defer constraints checking to the member type */
+ .name = "namedSetOfChoice"
+ },
};
static asn_TYPE_tag2member_t asn_MAP_PDU_1_tag2el[] = {
{ (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sequence at 19 */
{ (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* set at 20 */
- { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* setOf at 21 */
- { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* sequenceOf at 22 */
- { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* extensibleSet at 23 */
- { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* extensibleSequence at 24 */
- { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* extensibleSequence2 at 25 */
- { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* setOfNULL at 26 */
+ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sequenceOf at 21 */
+ { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* extensibleSet at 22 */
+ { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* extensibleSequence at 23 */
+ { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* extensibleSequence2 at 24 */
+ { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* setOfNULL at 25 */
+ { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* setOfREAL at 26 */
{ (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* setOfEnums at 27 */
- { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* seqOfZuka at 28 */
+ { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* namedSetOfNULL at 28 */
+ { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* namedSetOfREAL at 29 */
+ { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* namedSetOfEnums at 30 */
+ { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* seqOfZuka at 31 */
+ { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* setOfChoice at 32 */
+ { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 } /* namedSetOfChoice at 33 */
};
static asn_CHOICE_specifics_t asn_SPC_PDU_1_specs = {
sizeof(struct PDU),
@@ -151,7 +206,7 @@ static asn_CHOICE_specifics_t asn_SPC_PDU_1_specs = {
offsetof(struct PDU, present),
sizeof(((struct PDU *)0)->present),
asn_MAP_PDU_1_tag2el,
- 10, /* Count of tags in the map */
+ 15, /* Count of tags in the map */
1 /* Whether extensible */
};
asn_TYPE_descriptor_t asn_DEF_PDU = {
@@ -170,7 +225,7 @@ asn_TYPE_descriptor_t asn_DEF_PDU = {
0, /* No tags (pointer) */
0, /* No tags (count) */
asn_MBR_PDU_1,
- 10, /* Elements count */
+ 15, /* Elements count */
&asn_SPC_PDU_1_specs /* Additional specs */
};
@@ -242,10 +297,10 @@ static ber_tlv_tag_t asn_DEF_Sequence_1_tags[] = {
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static asn_TYPE_tag2member_t asn_MAP_Sequence_1_tag2el[] = {
- { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* integer at 33 */
- { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sequence at 34 */
- { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* bits at 35 */
- { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* string at 36 */
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* integer at 38 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sequence at 39 */
+ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* bits at 40 */
+ { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* string at 41 */
};
static asn_SEQUENCE_specifics_t asn_SPC_Sequence_1_specs = {
sizeof(struct Sequence),
@@ -335,8 +390,8 @@ static ber_tlv_tag_t asn_DEF_Set_1_tags[] = {
(ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
};
static asn_TYPE_tag2member_t asn_MAP_Set_1_tag2el[] = {
- { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* roid at 40 */
- { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* opaque at 41 */
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* roid at 45 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* opaque at 46 */
};
static uint8_t asn_MAP_Set_1_mmap[(2 + (8 * sizeof(unsigned int)) - 1) / 8] = {
(1 << 7) | (0 << 6)
@@ -554,8 +609,8 @@ static ber_tlv_tag_t asn_DEF_ExtensibleSet_1_tags[] = {
(ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
};
static asn_TYPE_tag2member_t asn_MAP_ExtensibleSet_1_tag2el[] = {
- { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* string at 45 */
- { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* enum at 47 */
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* string at 50 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* enum at 52 */
};
static uint8_t asn_MAP_ExtensibleSet_1_mmap[(2 + (8 * sizeof(unsigned int)) - 1) / 8] = {
(0 << 7) | (0 << 6)
@@ -649,9 +704,9 @@ static ber_tlv_tag_t asn_DEF_ExtensibleSequence_1_tags[] = {
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static asn_TYPE_tag2member_t asn_MAP_ExtensibleSequence_1_tag2el[] = {
- { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* string at 51 */
- { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* integer at 53 */
- { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* gtime at 54 */
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* string at 56 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* integer at 58 */
+ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* gtime at 59 */
};
static asn_SEQUENCE_specifics_t asn_SPC_ExtensibleSequence_1_specs = {
sizeof(struct ExtensibleSequence),
@@ -730,8 +785,8 @@ static ber_tlv_tag_t asn_DEF_ExtensibleSequence2_1_tags[] = {
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static asn_TYPE_tag2member_t asn_MAP_ExtensibleSequence2_1_tag2el[] = {
- { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* string at 58 */
- { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* integer at 60 */
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* string at 63 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* integer at 65 */
};
static asn_SEQUENCE_specifics_t asn_SPC_ExtensibleSequence2_1_specs = {
sizeof(struct ExtensibleSequence2),
@@ -764,47 +819,47 @@ asn_TYPE_descriptor_t asn_DEF_ExtensibleSequence2 = {
};
-/*** <<< INCLUDES [SetOf] >>> ***/
+/*** <<< INCLUDES [SetOfNULL] >>> ***/
-#include <REAL.h>
+#include <NULL.h>
#include <asn_SET_OF.h>
#include <constr_SET_OF.h>
-/*** <<< TYPE-DECLS [SetOf] >>> ***/
+/*** <<< TYPE-DECLS [SetOfNULL] >>> ***/
-typedef struct SetOf {
- A_SET_OF(REAL_t) list;
+typedef struct SetOfNULL {
+ A_SET_OF(NULL_t) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
-} SetOf_t;
+} SetOfNULL_t;
-/*** <<< FUNC-DECLS [SetOf] >>> ***/
+/*** <<< FUNC-DECLS [SetOfNULL] >>> ***/
-extern asn_TYPE_descriptor_t asn_DEF_SetOf;
+extern asn_TYPE_descriptor_t asn_DEF_SetOfNULL;
-/*** <<< STAT-DEFS [SetOf] >>> ***/
+/*** <<< STAT-DEFS [SetOfNULL] >>> ***/
-static asn_TYPE_member_t asn_MBR_SetOf_1[] = {
+static asn_TYPE_member_t asn_MBR_SetOfNULL_1[] = {
{ ATF_POINTER, 0, 0,
- .tag = (ASN_TAG_CLASS_UNIVERSAL | (9 << 2)),
+ .tag = (ASN_TAG_CLASS_UNIVERSAL | (5 << 2)),
.tag_mode = 0,
- .type = &asn_DEF_REAL,
+ .type = &asn_DEF_NULL,
.memb_constraints = 0, /* Defer constraints checking to the member type */
.name = ""
},
};
-static ber_tlv_tag_t asn_DEF_SetOf_1_tags[] = {
+static ber_tlv_tag_t asn_DEF_SetOfNULL_1_tags[] = {
(ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
};
-static asn_SET_OF_specifics_t asn_SPC_SetOf_1_specs = {
- sizeof(struct SetOf),
- offsetof(struct SetOf, _asn_ctx),
- 0, /* XER encoding is XMLDelimitedItemList */
+static asn_SET_OF_specifics_t asn_SPC_SetOfNULL_1_specs = {
+ sizeof(struct SetOfNULL),
+ offsetof(struct SetOfNULL, _asn_ctx),
+ 1, /* XER encoding is XMLValueList */
};
-asn_TYPE_descriptor_t asn_DEF_SetOf = {
- "SetOf",
- "SetOf",
+asn_TYPE_descriptor_t asn_DEF_SetOfNULL = {
+ "SetOfNULL",
+ "SetOfNULL",
SET_OF_free,
SET_OF_print,
SET_OF_constraint,
@@ -813,59 +868,59 @@ asn_TYPE_descriptor_t asn_DEF_SetOf = {
SET_OF_decode_xer,
SET_OF_encode_xer,
0, /* Use generic outmost tag fetcher */
- asn_DEF_SetOf_1_tags,
- sizeof(asn_DEF_SetOf_1_tags)
- /sizeof(asn_DEF_SetOf_1_tags[0]), /* 1 */
- asn_DEF_SetOf_1_tags, /* Same as above */
- sizeof(asn_DEF_SetOf_1_tags)
- /sizeof(asn_DEF_SetOf_1_tags[0]), /* 1 */
- asn_MBR_SetOf_1,
+ asn_DEF_SetOfNULL_1_tags,
+ sizeof(asn_DEF_SetOfNULL_1_tags)
+ /sizeof(asn_DEF_SetOfNULL_1_tags[0]), /* 1 */
+ asn_DEF_SetOfNULL_1_tags, /* Same as above */
+ sizeof(asn_DEF_SetOfNULL_1_tags)
+ /sizeof(asn_DEF_SetOfNULL_1_tags[0]), /* 1 */
+ asn_MBR_SetOfNULL_1,
1, /* Single element */
- &asn_SPC_SetOf_1_specs /* Additional specs */
+ &asn_SPC_SetOfNULL_1_specs /* Additional specs */
};
-/*** <<< INCLUDES [SetOfNULL] >>> ***/
+/*** <<< INCLUDES [SetOfREAL] >>> ***/
-#include <NULL.h>
+#include <REAL.h>
#include <asn_SET_OF.h>
#include <constr_SET_OF.h>
-/*** <<< TYPE-DECLS [SetOfNULL] >>> ***/
+/*** <<< TYPE-DECLS [SetOfREAL] >>> ***/
-typedef struct SetOfNULL {
- A_SET_OF(NULL_t) list;
+typedef struct SetOfREAL {
+ A_SET_OF(REAL_t) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
-} SetOfNULL_t;
+} SetOfREAL_t;
-/*** <<< FUNC-DECLS [SetOfNULL] >>> ***/
+/*** <<< FUNC-DECLS [SetOfREAL] >>> ***/
-extern asn_TYPE_descriptor_t asn_DEF_SetOfNULL;
+extern asn_TYPE_descriptor_t asn_DEF_SetOfREAL;
-/*** <<< STAT-DEFS [SetOfNULL] >>> ***/
+/*** <<< STAT-DEFS [SetOfREAL] >>> ***/
-static asn_TYPE_member_t asn_MBR_SetOfNULL_1[] = {
+static asn_TYPE_member_t asn_MBR_SetOfREAL_1[] = {
{ ATF_POINTER, 0, 0,
- .tag = (ASN_TAG_CLASS_UNIVERSAL | (5 << 2)),
+ .tag = (ASN_TAG_CLASS_UNIVERSAL | (9 << 2)),
.tag_mode = 0,
- .type = &asn_DEF_NULL,
+ .type = &asn_DEF_REAL,
.memb_constraints = 0, /* Defer constraints checking to the member type */
.name = ""
},
};
-static ber_tlv_tag_t asn_DEF_SetOfNULL_1_tags[] = {
+static ber_tlv_tag_t asn_DEF_SetOfREAL_1_tags[] = {
(ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
};
-static asn_SET_OF_specifics_t asn_SPC_SetOfNULL_1_specs = {
- sizeof(struct SetOfNULL),
- offsetof(struct SetOfNULL, _asn_ctx),
- 1, /* XER encoding is XMLValueList */
+static asn_SET_OF_specifics_t asn_SPC_SetOfREAL_1_specs = {
+ sizeof(struct SetOfREAL),
+ offsetof(struct SetOfREAL, _asn_ctx),
+ 0, /* XER encoding is XMLDelimitedItemList */
};
-asn_TYPE_descriptor_t asn_DEF_SetOfNULL = {
- "SetOfNULL",
- "SetOfNULL",
+asn_TYPE_descriptor_t asn_DEF_SetOfREAL = {
+ "SetOfREAL",
+ "SetOfREAL",
SET_OF_free,
SET_OF_print,
SET_OF_constraint,
@@ -874,15 +929,15 @@ asn_TYPE_descriptor_t asn_DEF_SetOfNULL = {
SET_OF_decode_xer,
SET_OF_encode_xer,
0, /* Use generic outmost tag fetcher */
- asn_DEF_SetOfNULL_1_tags,
- sizeof(asn_DEF_SetOfNULL_1_tags)
- /sizeof(asn_DEF_SetOfNULL_1_tags[0]), /* 1 */
- asn_DEF_SetOfNULL_1_tags, /* Same as above */
- sizeof(asn_DEF_SetOfNULL_1_tags)
- /sizeof(asn_DEF_SetOfNULL_1_tags[0]), /* 1 */
- asn_MBR_SetOfNULL_1,
+ asn_DEF_SetOfREAL_1_tags,
+ sizeof(asn_DEF_SetOfREAL_1_tags)
+ /sizeof(asn_DEF_SetOfREAL_1_tags[0]), /* 1 */
+ asn_DEF_SetOfREAL_1_tags, /* Same as above */
+ sizeof(asn_DEF_SetOfREAL_1_tags)
+ /sizeof(asn_DEF_SetOfREAL_1_tags[0]), /* 1 */
+ asn_MBR_SetOfREAL_1,
1, /* Single element */
- &asn_SPC_SetOfNULL_1_specs /* Additional specs */
+ &asn_SPC_SetOfREAL_1_specs /* Additional specs */
};
@@ -1067,6 +1122,309 @@ asn_TYPE_descriptor_t asn_DEF_SetOfEnums = {
};
+/*** <<< INCLUDES [NamedSetOfNULL] >>> ***/
+
+#include <NULL.h>
+#include <asn_SET_OF.h>
+#include <constr_SET_OF.h>
+
+/*** <<< TYPE-DECLS [NamedSetOfNULL] >>> ***/
+
+typedef struct NamedSetOfNULL {
+ A_SET_OF(NULL_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} NamedSetOfNULL_t;
+
+/*** <<< FUNC-DECLS [NamedSetOfNULL] >>> ***/
+
+extern asn_TYPE_descriptor_t asn_DEF_NamedSetOfNULL;
+
+/*** <<< STAT-DEFS [NamedSetOfNULL] >>> ***/
+
+static asn_TYPE_member_t asn_MBR_NamedSetOfNULL_1[] = {
+ { ATF_POINTER, 0, 0,
+ .tag = (ASN_TAG_CLASS_UNIVERSAL | (5 << 2)),
+ .tag_mode = 0,
+ .type = &asn_DEF_NULL,
+ .memb_constraints = 0, /* Defer constraints checking to the member type */
+ .name = "y"
+ },
+};
+static ber_tlv_tag_t asn_DEF_NamedSetOfNULL_1_tags[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_NamedSetOfNULL_1_specs = {
+ sizeof(struct NamedSetOfNULL),
+ offsetof(struct NamedSetOfNULL, _asn_ctx),
+ 1, /* XER encoding is XMLValueList */
+};
+asn_TYPE_descriptor_t asn_DEF_NamedSetOfNULL = {
+ "NamedSetOfNULL",
+ "NamedSetOfNULL",
+ SET_OF_free,
+ SET_OF_print,
+ SET_OF_constraint,
+ SET_OF_decode_ber,
+ SET_OF_encode_der,
+ SET_OF_decode_xer,
+ SET_OF_encode_xer,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_NamedSetOfNULL_1_tags,
+ sizeof(asn_DEF_NamedSetOfNULL_1_tags)
+ /sizeof(asn_DEF_NamedSetOfNULL_1_tags[0]), /* 1 */
+ asn_DEF_NamedSetOfNULL_1_tags, /* Same as above */
+ sizeof(asn_DEF_NamedSetOfNULL_1_tags)
+ /sizeof(asn_DEF_NamedSetOfNULL_1_tags[0]), /* 1 */
+ asn_MBR_NamedSetOfNULL_1,
+ 1, /* Single element */
+ &asn_SPC_NamedSetOfNULL_1_specs /* Additional specs */
+};
+
+
+/*** <<< INCLUDES [NamedSetOfREAL] >>> ***/
+
+#include <REAL.h>
+#include <asn_SET_OF.h>
+#include <constr_SET_OF.h>
+
+/*** <<< TYPE-DECLS [NamedSetOfREAL] >>> ***/
+
+typedef struct NamedSetOfREAL {
+ A_SET_OF(REAL_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} NamedSetOfREAL_t;
+
+/*** <<< FUNC-DECLS [NamedSetOfREAL] >>> ***/
+
+extern asn_TYPE_descriptor_t asn_DEF_NamedSetOfREAL;
+
+/*** <<< STAT-DEFS [NamedSetOfREAL] >>> ***/
+
+static asn_TYPE_member_t asn_MBR_NamedSetOfREAL_1[] = {
+ { ATF_POINTER, 0, 0,
+ .tag = (ASN_TAG_CLASS_UNIVERSAL | (9 << 2)),
+ .tag_mode = 0,
+ .type = &asn_DEF_REAL,
+ .memb_constraints = 0, /* Defer constraints checking to the member type */
+ .name = "name"
+ },
+};
+static ber_tlv_tag_t asn_DEF_NamedSetOfREAL_1_tags[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_NamedSetOfREAL_1_specs = {
+ sizeof(struct NamedSetOfREAL),
+ offsetof(struct NamedSetOfREAL, _asn_ctx),
+ 0, /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_NamedSetOfREAL = {
+ "NamedSetOfREAL",
+ "NamedSetOfREAL",
+ SET_OF_free,
+ SET_OF_print,
+ SET_OF_constraint,
+ SET_OF_decode_ber,
+ SET_OF_encode_der,
+ SET_OF_decode_xer,
+ SET_OF_encode_xer,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_NamedSetOfREAL_1_tags,
+ sizeof(asn_DEF_NamedSetOfREAL_1_tags)
+ /sizeof(asn_DEF_NamedSetOfREAL_1_tags[0]), /* 1 */
+ asn_DEF_NamedSetOfREAL_1_tags, /* Same as above */
+ sizeof(asn_DEF_NamedSetOfREAL_1_tags)
+ /sizeof(asn_DEF_NamedSetOfREAL_1_tags[0]), /* 1 */
+ asn_MBR_NamedSetOfREAL_1,
+ 1, /* Single element */
+ &asn_SPC_NamedSetOfREAL_1_specs /* Additional specs */
+};
+
+
+/*** <<< INCLUDES [NamedSetOfEnums] >>> ***/
+
+#include <ENUMERATED.h>
+#include <asn_SET_OF.h>
+#include <constr_SET_OF.h>
+
+/*** <<< DEPS [NamedSetOfEnums] >>> ***/
+
+typedef enum name {
+ name_one = 0,
+ name_oneMore = 1
+} name_e;
+
+/*** <<< TYPE-DECLS [NamedSetOfEnums] >>> ***/
+
+typedef struct NamedSetOfEnums {
+ A_SET_OF(ENUMERATED_t) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} NamedSetOfEnums_t;
+
+/*** <<< FUNC-DECLS [NamedSetOfEnums] >>> ***/
+
+/* extern asn_TYPE_descriptor_t asn_DEF_name_2; // (Use -fall-defs-global to expose) */
+extern asn_TYPE_descriptor_t asn_DEF_NamedSetOfEnums;
+
+/*** <<< CODE [NamedSetOfEnums] >>> ***/
+
+static int
+name_2_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
+ asn_app_consume_bytes_f *app_errlog, void *app_key) {
+ /* Replace with underlying type checker */
+ td->check_constraints = asn_DEF_ENUMERATED.check_constraints;
+ return td->check_constraints(td, sptr, app_errlog, app_key);
+}
+
+/*
+ * This type is implemented using ENUMERATED,
+ * so here we adjust the DEF accordingly.
+ */
+static void
+name_2_inherit_TYPE_descriptor(asn_TYPE_descriptor_t *td) {
+ td->free_struct = asn_DEF_ENUMERATED.free_struct;
+ td->print_struct = asn_DEF_ENUMERATED.print_struct;
+ td->ber_decoder = asn_DEF_ENUMERATED.ber_decoder;
+ td->der_encoder = asn_DEF_ENUMERATED.der_encoder;
+ td->xer_decoder = asn_DEF_ENUMERATED.xer_decoder;
+ td->xer_encoder = asn_DEF_ENUMERATED.xer_encoder;
+ td->elements = asn_DEF_ENUMERATED.elements;
+ td->elements_count = asn_DEF_ENUMERATED.elements_count;
+ /* td->specifics = asn_DEF_ENUMERATED.specifics; // Defined explicitly */
+}
+
+static void
+name_2_free(asn_TYPE_descriptor_t *td,
+ void *struct_ptr, int contents_only) {
+ name_2_inherit_TYPE_descriptor(td);
+ td->free_struct(td, struct_ptr, contents_only);
+}
+
+static int
+name_2_print(asn_TYPE_descriptor_t *td, const void *struct_ptr,
+ int ilevel, asn_app_consume_bytes_f *cb, void *app_key) {
+ name_2_inherit_TYPE_descriptor(td);
+ return td->print_struct(td, struct_ptr, ilevel, cb, app_key);
+}
+
+static asn_dec_rval_t
+name_2_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const void *bufptr, size_t size, int tag_mode) {
+ name_2_inherit_TYPE_descriptor(td);
+ return td->ber_decoder(opt_codec_ctx, td, structure, bufptr, size, tag_mode);
+}
+
+static asn_enc_rval_t
+name_2_encode_der(asn_TYPE_descriptor_t *td,
+ void *structure, int tag_mode, ber_tlv_tag_t tag,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ name_2_inherit_TYPE_descriptor(td);
+ return td->der_encoder(td, structure, tag_mode, tag, cb, app_key);
+}
+
+static asn_dec_rval_t
+name_2_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td,
+ void **structure, const char *opt_mname, const void *bufptr, size_t size) {
+ name_2_inherit_TYPE_descriptor(td);
+ return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size);
+}
+
+static asn_enc_rval_t
+name_2_encode_xer(asn_TYPE_descriptor_t *td, void *structure,
+ int ilevel, enum xer_encoder_flags_e flags,
+ asn_app_consume_bytes_f *cb, void *app_key) {
+ name_2_inherit_TYPE_descriptor(td);
+ return td->xer_encoder(td, structure, ilevel, flags, cb, app_key);
+}
+
+
+/*** <<< STAT-DEFS [NamedSetOfEnums] >>> ***/
+
+static asn_INTEGER_enum_map_t asn_MAP_name_2_value2enum[] = {
+ { 0, 3, "one" },
+ { 1, 7, "oneMore" }
+};
+static unsigned int asn_MAP_name_2_enum2value[] = {
+ 0, /* one(0) */
+ 1 /* oneMore(1) */
+};
+static asn_INTEGER_specifics_t asn_SPC_name_2_specs = {
+ asn_MAP_name_2_value2enum, /* "tag" => N; sorted by tag */
+ asn_MAP_name_2_enum2value, /* N => "tag"; sorted by N */
+ 2, /* Number of elements in the maps */
+ 0, /* Enumeration is not extensible */
+ 1 /* Strict enumeration */
+};
+static ber_tlv_tag_t asn_DEF_name_2_tags[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+static /* Use -fall-defs-global to expose */
+asn_TYPE_descriptor_t asn_DEF_name_2 = {
+ "",
+ "",
+ name_2_free,
+ name_2_print,
+ name_2_constraint,
+ name_2_decode_ber,
+ name_2_encode_der,
+ name_2_decode_xer,
+ name_2_encode_xer,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_name_2_tags,
+ sizeof(asn_DEF_name_2_tags)
+ /sizeof(asn_DEF_name_2_tags[0]), /* 1 */
+ asn_DEF_name_2_tags, /* Same as above */
+ sizeof(asn_DEF_name_2_tags)
+ /sizeof(asn_DEF_name_2_tags[0]), /* 1 */
+ 0, 0, /* Defined elsewhere */
+ &asn_SPC_name_2_specs /* Additional specs */
+};
+
+static asn_TYPE_member_t asn_MBR_NamedSetOfEnums_1[] = {
+ { ATF_POINTER, 0, 0,
+ .tag = (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
+ .tag_mode = 0,
+ .type = &asn_DEF_name_2,
+ .memb_constraints = 0, /* Defer constraints checking to the member type */
+ .name = "name"
+ },
+};
+static ber_tlv_tag_t asn_DEF_NamedSetOfEnums_1_tags[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_NamedSetOfEnums_1_specs = {
+ sizeof(struct NamedSetOfEnums),
+ offsetof(struct NamedSetOfEnums, _asn_ctx),
+ 1, /* XER encoding is XMLValueList */
+};
+asn_TYPE_descriptor_t asn_DEF_NamedSetOfEnums = {
+ "NamedSetOfEnums",
+ "NamedSetOfEnums",
+ SET_OF_free,
+ SET_OF_print,
+ SET_OF_constraint,
+ SET_OF_decode_ber,
+ SET_OF_encode_der,
+ SET_OF_decode_xer,
+ SET_OF_encode_xer,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_NamedSetOfEnums_1_tags,
+ sizeof(asn_DEF_NamedSetOfEnums_1_tags)
+ /sizeof(asn_DEF_NamedSetOfEnums_1_tags[0]), /* 1 */
+ asn_DEF_NamedSetOfEnums_1_tags, /* Same as above */
+ sizeof(asn_DEF_NamedSetOfEnums_1_tags)
+ /sizeof(asn_DEF_NamedSetOfEnums_1_tags[0]), /* 1 */
+ asn_MBR_NamedSetOfEnums_1,
+ 1, /* Single element */
+ &asn_SPC_NamedSetOfEnums_1_specs /* Additional specs */
+};
+
+
/*** <<< INCLUDES [SequenceOf] >>> ***/
#include <INTEGER.h>
@@ -1188,3 +1546,222 @@ asn_TYPE_descriptor_t asn_DEF_SeqOfZuka = {
&asn_SPC_SeqOfZuka_1_specs /* Additional specs */
};
+
+/*** <<< INCLUDES [SetOfChoice] >>> ***/
+
+#include <asn_SET_OF.h>
+#include <constr_SET_OF.h>
+
+/*** <<< FWD-DECLS [SetOfChoice] >>> ***/
+
+struct SimpleChoice;
+
+/*** <<< TYPE-DECLS [SetOfChoice] >>> ***/
+
+typedef struct SetOfChoice {
+ A_SET_OF(struct SimpleChoice) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SetOfChoice_t;
+
+/*** <<< FUNC-DECLS [SetOfChoice] >>> ***/
+
+extern asn_TYPE_descriptor_t asn_DEF_SetOfChoice;
+
+/*** <<< POST-INCLUDE [SetOfChoice] >>> ***/
+
+#include <SimpleChoice.h>
+
+/*** <<< STAT-DEFS [SetOfChoice] >>> ***/
+
+static asn_TYPE_member_t asn_MBR_SetOfChoice_1[] = {
+ { ATF_POINTER, 0, 0,
+ .tag = -1 /* Ambiguous tag (CHOICE?) */,
+ .tag_mode = 0,
+ .type = &asn_DEF_SimpleChoice,
+ .memb_constraints = 0, /* Defer constraints checking to the member type */
+ .name = ""
+ },
+};
+static ber_tlv_tag_t asn_DEF_SetOfChoice_1_tags[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_SetOfChoice_1_specs = {
+ sizeof(struct SetOfChoice),
+ offsetof(struct SetOfChoice, _asn_ctx),
+ 0, /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_SetOfChoice = {
+ "SetOfChoice",
+ "SetOfChoice",
+ SET_OF_free,
+ SET_OF_print,
+ SET_OF_constraint,
+ SET_OF_decode_ber,
+ SET_OF_encode_der,
+ SET_OF_decode_xer,
+ SET_OF_encode_xer,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_SetOfChoice_1_tags,
+ sizeof(asn_DEF_SetOfChoice_1_tags)
+ /sizeof(asn_DEF_SetOfChoice_1_tags[0]), /* 1 */
+ asn_DEF_SetOfChoice_1_tags, /* Same as above */
+ sizeof(asn_DEF_SetOfChoice_1_tags)
+ /sizeof(asn_DEF_SetOfChoice_1_tags[0]), /* 1 */
+ asn_MBR_SetOfChoice_1,
+ 1, /* Single element */
+ &asn_SPC_SetOfChoice_1_specs /* Additional specs */
+};
+
+
+/*** <<< INCLUDES [NamedSetOfChoice] >>> ***/
+
+#include <asn_SET_OF.h>
+#include <constr_SET_OF.h>
+
+/*** <<< FWD-DECLS [NamedSetOfChoice] >>> ***/
+
+struct SimpleChoice;
+
+/*** <<< TYPE-DECLS [NamedSetOfChoice] >>> ***/
+
+typedef struct NamedSetOfChoice {
+ A_SET_OF(struct SimpleChoice) list;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} NamedSetOfChoice_t;
+
+/*** <<< FUNC-DECLS [NamedSetOfChoice] >>> ***/
+
+extern asn_TYPE_descriptor_t asn_DEF_NamedSetOfChoice;
+
+/*** <<< POST-INCLUDE [NamedSetOfChoice] >>> ***/
+
+#include <SimpleChoice.h>
+
+/*** <<< STAT-DEFS [NamedSetOfChoice] >>> ***/
+
+static asn_TYPE_member_t asn_MBR_NamedSetOfChoice_1[] = {
+ { ATF_POINTER, 0, 0,
+ .tag = -1 /* Ambiguous tag (CHOICE?) */,
+ .tag_mode = 0,
+ .type = &asn_DEF_SimpleChoice,
+ .memb_constraints = 0, /* Defer constraints checking to the member type */
+ .name = "whatever"
+ },
+};
+static ber_tlv_tag_t asn_DEF_NamedSetOfChoice_1_tags[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
+};
+static asn_SET_OF_specifics_t asn_SPC_NamedSetOfChoice_1_specs = {
+ sizeof(struct NamedSetOfChoice),
+ offsetof(struct NamedSetOfChoice, _asn_ctx),
+ 0, /* XER encoding is XMLDelimitedItemList */
+};
+asn_TYPE_descriptor_t asn_DEF_NamedSetOfChoice = {
+ "NamedSetOfChoice",
+ "NamedSetOfChoice",
+ SET_OF_free,
+ SET_OF_print,
+ SET_OF_constraint,
+ SET_OF_decode_ber,
+ SET_OF_encode_der,
+ SET_OF_decode_xer,
+ SET_OF_encode_xer,
+ 0, /* Use generic outmost tag fetcher */
+ asn_DEF_NamedSetOfChoice_1_tags,
+ sizeof(asn_DEF_NamedSetOfChoice_1_tags)
+ /sizeof(asn_DEF_NamedSetOfChoice_1_tags[0]), /* 1 */
+ asn_DEF_NamedSetOfChoice_1_tags, /* Same as above */
+ sizeof(asn_DEF_NamedSetOfChoice_1_tags)
+ /sizeof(asn_DEF_NamedSetOfChoice_1_tags[0]), /* 1 */
+ asn_MBR_NamedSetOfChoice_1,
+ 1, /* Single element */
+ &asn_SPC_NamedSetOfChoice_1_specs /* Additional specs */
+};
+
+
+/*** <<< INCLUDES [SimpleChoice] >>> ***/
+
+#include <NULL.h>
+#include <INTEGER.h>
+#include <constr_CHOICE.h>
+
+/*** <<< DEPS [SimpleChoice] >>> ***/
+
+typedef enum SimpleChoice_PR {
+ SimpleChoice_PR_NOTHING, /* No components present */
+ SimpleChoice_PR_a,
+ SimpleChoice_PR_b,
+} SimpleChoice_PR;
+
+/*** <<< TYPE-DECLS [SimpleChoice] >>> ***/
+
+typedef struct SimpleChoice {
+ SimpleChoice_PR present;
+ union SimpleChoice_u {
+ NULL_t a;
+ INTEGER_t b;
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SimpleChoice_t;
+
+/*** <<< FUNC-DECLS [SimpleChoice] >>> ***/
+
+extern asn_TYPE_descriptor_t asn_DEF_SimpleChoice;
+
+/*** <<< STAT-DEFS [SimpleChoice] >>> ***/
+
+static asn_TYPE_member_t asn_MBR_SimpleChoice_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct SimpleChoice, choice.a),
+ .tag = (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+ .tag_mode = -1, /* IMPLICIT tag at current level */
+ .type = &asn_DEF_NULL,
+ .memb_constraints = 0, /* Defer constraints checking to the member type */
+ .name = "a"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct SimpleChoice, choice.b),
+ .tag = (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+ .tag_mode = -1, /* IMPLICIT tag at current level */
+ .type = &asn_DEF_INTEGER,
+ .memb_constraints = 0, /* Defer constraints checking to the member type */
+ .name = "b"
+ },
+};
+static asn_TYPE_tag2member_t asn_MAP_SimpleChoice_1_tag2el[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* a at 79 */
+ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* b at 79 */
+};
+static asn_CHOICE_specifics_t asn_SPC_SimpleChoice_1_specs = {
+ sizeof(struct SimpleChoice),
+ offsetof(struct SimpleChoice, _asn_ctx),
+ offsetof(struct SimpleChoice, present),
+ sizeof(((struct SimpleChoice *)0)->present),
+ asn_MAP_SimpleChoice_1_tag2el,
+ 2, /* Count of tags in the map */
+ 0 /* Whether extensible */
+};
+asn_TYPE_descriptor_t asn_DEF_SimpleChoice = {
+ "SimpleChoice",
+ "SimpleChoice",
+ CHOICE_free,
+ CHOICE_print,
+ CHOICE_constraint,
+ CHOICE_decode_ber,
+ CHOICE_encode_der,
+ CHOICE_decode_xer,
+ CHOICE_encode_xer,
+ CHOICE_outmost_tag,
+ 0, /* No effective tags (pointer) */
+ 0, /* No effective tags (count) */
+ 0, /* No tags (pointer) */
+ 0, /* No tags (count) */
+ asn_MBR_SimpleChoice_1,
+ 2, /* Elements count */
+ &asn_SPC_SimpleChoice_1_specs /* Additional specs */
+};
+