📄 72-same-names-ok.asn1.-p
字号:
/*** <<< INCLUDES [Type] >>> ***/#include <asn_SET_OF.h>#include <Type1.h>#include <Type2.h>#include <constr_SEQUENCE.h>#include <constr_SET_OF.h>/*** <<< TYPE-DECLS [Type] >>> ***/typedef struct Type { A_SET_OF(struct Member { Type1_t t1; Type2_t t2; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; } ) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx;} Type_t;/*** <<< FUNC-DECLS [Type] >>> ***/extern asn_TYPE_descriptor_t asn_DEF_Type;/*** <<< STAT-DEFS [Type] >>> ***/static asn_TYPE_member_t asn_MBR_Member_2[] = { { ATF_NOFLAGS, 0, offsetof(struct Member, t1), .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), .tag_mode = 0, .type = (void *)&asn_DEF_Type1, .memb_constraints = 0, /* Defer constraints checking to the member type */ .name = "t1" }, { ATF_NOFLAGS, 0, offsetof(struct Member, t2), .tag = -1 /* Ambiguous tag (CHOICE?) */, .tag_mode = 0, .type = (void *)&asn_DEF_Type2, .memb_constraints = 0, /* Defer constraints checking to the member type */ .name = "t2" },};static ber_tlv_tag_t asn_DEF_Member_2_tags[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))};static asn_TYPE_tag2member_t asn_MAP_Member_2_tag2el[] = { { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* t1 at 21 */ { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 }, /* one-name at 37 */ { (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)), 1, 0, 0 } /* two-name at 43 */};static asn_SEQUENCE_specifics_t asn_SPC_Member_2_specs = { sizeof(struct Member), offsetof(struct Member, _asn_ctx), asn_MAP_Member_2_tag2el, 3, /* Count of tags in the map */ -1, /* Start extensions */ -1 /* Stop extensions */};static /* Use -fall-defs-global to expose */asn_TYPE_descriptor_t asn_DEF_Member_2 = { "", "", SEQUENCE_free, SEQUENCE_print, SEQUENCE_constraint, SEQUENCE_decode_ber, SEQUENCE_encode_der, SEQUENCE_decode_xer, SEQUENCE_encode_xer, 0, /* Use generic outmost tag fetcher */ asn_DEF_Member_2_tags, sizeof(asn_DEF_Member_2_tags) /sizeof(asn_DEF_Member_2_tags[0]), /* 1 */ asn_DEF_Member_2_tags, /* Same as above */ sizeof(asn_DEF_Member_2_tags) /sizeof(asn_DEF_Member_2_tags[0]), /* 1 */ asn_MBR_Member_2, 2, /* Elements count */ &asn_SPC_Member_2_specs /* Additional specs */};static asn_TYPE_member_t asn_MBR_Type_1[] = { { ATF_NOFLAGS, 0, 0, .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), .tag_mode = 0, .type = (void *)&asn_DEF_Member_2, .memb_constraints = 0, /* Defer constraints checking to the member type */ .name = "" },};static ber_tlv_tag_t asn_DEF_Type_1_tags[] = { (ASN_TAG_CLASS_UNIVERSAL | (17 << 2))};static asn_SET_OF_specifics_t asn_SPC_Type_1_specs = { sizeof(struct Type), offsetof(struct Type, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */};asn_TYPE_descriptor_t asn_DEF_Type = { "Type", "Type", 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_Type_1_tags, sizeof(asn_DEF_Type_1_tags) /sizeof(asn_DEF_Type_1_tags[0]), /* 1 */ asn_DEF_Type_1_tags, /* Same as above */ sizeof(asn_DEF_Type_1_tags) /sizeof(asn_DEF_Type_1_tags[0]), /* 1 */ asn_MBR_Type_1, 1, /* Single element */ &asn_SPC_Type_1_specs /* Additional specs */};/*** <<< INCLUDES [Type1] >>> ***/#include <INTEGER.h>#include <constr_SEQUENCE.h>#include <constr_CHOICE.h>/*** <<< DEPS [Type1] >>> ***/typedef enum one_name_PR { one_name_PR_NOTHING, /* No components present */ one_name_PR_another_name,} one_name_PR;/*** <<< TYPE-DECLS [Type1] >>> ***/typedef struct Type1 { struct one_name { one_name_PR present; union { struct another_name { INTEGER_t a; INTEGER_t b; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; } another_name; } choice; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; } one_name; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx;} Type1_t;/*** <<< FUNC-DECLS [Type1] >>> ***/extern asn_TYPE_descriptor_t asn_DEF_Type1;/*** <<< STAT-DEFS [Type1] >>> ***/static asn_TYPE_member_t asn_MBR_another_name_3[] = { { ATF_NOFLAGS, 0, offsetof(struct another_name, a), .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), .tag_mode = 0, .type = (void *)&asn_DEF_INTEGER, .memb_constraints = 0, /* Defer constraints checking to the member type */ .name = "a" }, { ATF_NOFLAGS, 0, offsetof(struct another_name, b), .tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), .tag_mode = 0, .type = (void *)&asn_DEF_INTEGER, .memb_constraints = 0, /* Defer constraints checking to the member type */ .name = "b" },};static ber_tlv_tag_t asn_DEF_another_name_3_tags[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))};static asn_TYPE_tag2member_t asn_MAP_another_name_3_tag2el[] = { { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* a at 27 */ { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 } /* b at 27 */};static asn_SEQUENCE_specifics_t asn_SPC_another_name_3_specs = { sizeof(struct another_name), offsetof(struct another_name, _asn_ctx), asn_MAP_another_name_3_tag2el, 2, /* Count of tags in the map */ -1, /* Start extensions */ -1 /* Stop extensions */};static /* Use -fall-defs-global to expose */asn_TYPE_descriptor_t asn_DEF_another_name_3 = { "another-name", "another-name", SEQUENCE_free, SEQUENCE_print, SEQUENCE_constraint, SEQUENCE_decode_ber, SEQUENCE_encode_der, SEQUENCE_decode_xer, SEQUENCE_encode_xer, 0, /* Use generic outmost tag fetcher */ asn_DEF_another_name_3_tags, sizeof(asn_DEF_another_name_3_tags) /sizeof(asn_DEF_another_name_3_tags[0]), /* 1 */ asn_DEF_another_name_3_tags, /* Same as above */ sizeof(asn_DEF_another_name_3_tags) /sizeof(asn_DEF_another_name_3_tags[0]), /* 1 */ asn_MBR_another_name_3, 2, /* Elements count */ &asn_SPC_another_name_3_specs /* Additional specs */};static asn_TYPE_member_t asn_MBR_one_name_2[] = { { ATF_NOFLAGS, 0, offsetof(struct one_name, choice.another_name), .tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), .tag_mode = 0, .type = (void *)&asn_DEF_another_name_3, .memb_constraints = 0, /* Defer constraints checking to the member type */ .name = "another-name" },};static asn_TYPE_tag2member_t asn_MAP_one_name_2_tag2el[] = { { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* another-name at 27 */};static asn_CHOICE_specifics_t asn_SPC_one_name_2_specs = { sizeof(struct one_name), offsetof(struct one_name, _asn_ctx), offsetof(struct one_name, present), sizeof(((struct one_name *)0)->present), asn_MAP_one_name_2_tag2el, 1, /* Count of tags in the map */ 0 /* Whether extensible */};static /* Use -fall-defs-global to expose */asn_TYPE_descriptor_t asn_DEF_one_name_2 = { "one-name", "one-name", 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_one_name_2, 1, /* Elements count */ &asn_SPC_one_name_2_specs /* Additional specs */};static asn_TYPE_member_t asn_MBR_Type1_1[] = { { ATF_NOFLAGS, 0, offsetof(struct Type1, one_name), .tag = -1 /* Ambiguous tag (CHOICE?) */, .tag_mode = 0, .type = (void *)&asn_DEF_one_name_2, .memb_constraints = 0, /* Defer constraints checking to the member type */ .name = "one-name" },};static ber_tlv_tag_t asn_DEF_Type1_1_tags[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))};static asn_TYPE_tag2member_t asn_MAP_Type1_1_tag2el[] = { { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* another-name at 27 */};static asn_SEQUENCE_specifics_t asn_SPC_Type1_1_specs = { sizeof(struct Type1), offsetof(struct Type1, _asn_ctx), asn_MAP_Type1_1_tag2el, 1, /* Count of tags in the map */ -1, /* Start extensions */ -1 /* Stop extensions */};asn_TYPE_descriptor_t asn_DEF_Type1 = { "Type1", "Type1", SEQUENCE_free, SEQUENCE_print, SEQUENCE_constraint, SEQUENCE_decode_ber, SEQUENCE_encode_der, SEQUENCE_decode_xer, SEQUENCE_encode_xer, 0, /* Use generic outmost tag fetcher */ asn_DEF_Type1_1_tags, sizeof(asn_DEF_Type1_1_tags) /sizeof(asn_DEF_Type1_1_tags[0]), /* 1 */ asn_DEF_Type1_1_tags, /* Same as above */ sizeof(asn_DEF_Type1_1_tags) /sizeof(asn_DEF_Type1_1_tags[0]), /* 1 */ asn_MBR_Type1_1, 1, /* Elements count */ &asn_SPC_Type1_1_specs /* Additional specs */};/*** <<< INCLUDES [Type2] >>> ***/#include <BIT_STRING.h>#include <INTEGER.h>#include <constr_SEQUENCE.h>#include <constr_SET.h>#include <constr_CHOICE.h>/*** <<< DEPS [Type2] >>> ***/typedef enum Type2_PR { Type2_PR_NOTHING, /* No components present */ Type2_PR_one_name, Type2_PR_two_name,} Type2_PR;/* * Method of determining the components presence */typedef enum two_name_PR { two_name_PR_another_name, /* Member another_name is present */} two_name_PR;/*** <<< TYPE-DECLS [Type2] >>> ***/typedef struct Type2 { Type2_PR present; union { struct one_name { struct another_name { BIT_STRING_t a; INTEGER_t b; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; } another_name; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; } one_name;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -