diff options
author | Lev Walkin <vlm@lionet.info> | 2004-10-23 13:26:56 +0000 |
---|---|---|
committer | Lev Walkin <vlm@lionet.info> | 2004-10-23 13:26:56 +0000 |
commit | 0ebe8b3dc2ea5c3f585ea1a9c992ce0e1b744b11 (patch) | |
tree | be2bd4eb44f10b90f74ae54f07eeebd48edfd871 /tests | |
parent | c17c7fa19b4065c6c50b82ea5e00969dc8990211 (diff) |
XER decoders
Diffstat (limited to 'tests')
-rw-r--r-- | tests/46-redefine-OK.asn1.-PR | 10 | ||||
-rw-r--r-- | tests/50-constraint-OK.asn1.-P | 200 | ||||
-rw-r--r-- | tests/65-multi-tag-OK.asn1.-P | 60 | ||||
-rw-r--r-- | tests/65-multi-tag-OK.asn1.-Pfnative-types | 60 | ||||
-rw-r--r-- | tests/66-ref-simple-OK.asn1.-P | 10 |
5 files changed, 306 insertions, 34 deletions
diff --git a/tests/46-redefine-OK.asn1.-PR b/tests/46-redefine-OK.asn1.-PR index 4650b513..5ba6bccf 100644 --- a/tests/46-redefine-OK.asn1.-PR +++ b/tests/46-redefine-OK.asn1.-PR @@ -102,6 +102,7 @@ asn_struct_print_f T_print; asn_constr_check_f T_constraint; ber_type_decoder_f T_decode_ber; der_type_encoder_f T_encode_der; +xer_type_decoder_f T_decode_xer; xer_type_encoder_f T_encode_xer; /*** <<< CODE [T] >>> ***/ @@ -160,6 +161,13 @@ T_encode_der(asn_TYPE_descriptor_t *td, return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); } +asn_dec_rval_t +T_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, void *bufptr, size_t size) { + T_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + asn_enc_rval_t T_encode_xer(asn_TYPE_descriptor_t *td, void *structure, int ilevel, enum xer_encoder_flags_e flags, @@ -183,7 +191,7 @@ asn_TYPE_descriptor_t asn_DEF_T = { T_constraint, T_decode_ber, T_encode_der, - 0, /* Not implemented yet */ + T_decode_xer, T_encode_xer, 0, /* Use generic outmost tag fetcher */ asn_DEF_T_tags, diff --git a/tests/50-constraint-OK.asn1.-P b/tests/50-constraint-OK.asn1.-P index 6f4dac10..2700676b 100644 --- a/tests/50-constraint-OK.asn1.-P +++ b/tests/50-constraint-OK.asn1.-P @@ -35,6 +35,7 @@ asn_struct_print_f Int2_print; asn_constr_check_f Int2_constraint; ber_type_decoder_f Int2_decode_ber; der_type_encoder_f Int2_encode_der; +xer_type_decoder_f Int2_decode_xer; xer_type_encoder_f Int2_encode_xer; /*** <<< CODE [Int2] >>> ***/ @@ -112,6 +113,13 @@ Int2_encode_der(asn_TYPE_descriptor_t *td, return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); } +asn_dec_rval_t +Int2_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, void *bufptr, size_t size) { + Int2_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + asn_enc_rval_t Int2_encode_xer(asn_TYPE_descriptor_t *td, void *structure, int ilevel, enum xer_encoder_flags_e flags, @@ -134,7 +142,7 @@ asn_TYPE_descriptor_t asn_DEF_Int2 = { Int2_constraint, Int2_decode_ber, Int2_encode_der, - 0, /* Not implemented yet */ + Int2_decode_xer, Int2_encode_xer, 0, /* Use generic outmost tag fetcher */ asn_DEF_Int2_tags, @@ -165,6 +173,7 @@ asn_struct_print_f Int3_print; asn_constr_check_f Int3_constraint; ber_type_decoder_f Int3_decode_ber; der_type_encoder_f Int3_encode_der; +xer_type_decoder_f Int3_decode_xer; xer_type_encoder_f Int3_encode_xer; /*** <<< CODE [Int3] >>> ***/ @@ -246,6 +255,13 @@ Int3_encode_der(asn_TYPE_descriptor_t *td, return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); } +asn_dec_rval_t +Int3_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, void *bufptr, size_t size) { + Int3_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + asn_enc_rval_t Int3_encode_xer(asn_TYPE_descriptor_t *td, void *structure, int ilevel, enum xer_encoder_flags_e flags, @@ -268,7 +284,7 @@ asn_TYPE_descriptor_t asn_DEF_Int3 = { Int3_constraint, Int3_decode_ber, Int3_encode_der, - 0, /* Not implemented yet */ + Int3_decode_xer, Int3_encode_xer, 0, /* Use generic outmost tag fetcher */ asn_DEF_Int3_tags, @@ -299,6 +315,7 @@ asn_struct_print_f Int4_print; asn_constr_check_f Int4_constraint; ber_type_decoder_f Int4_decode_ber; der_type_encoder_f Int4_encode_der; +xer_type_decoder_f Int4_decode_xer; xer_type_encoder_f Int4_encode_xer; /*** <<< CODE [Int4] >>> ***/ @@ -380,6 +397,13 @@ Int4_encode_der(asn_TYPE_descriptor_t *td, return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); } +asn_dec_rval_t +Int4_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, void *bufptr, size_t size) { + Int4_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + asn_enc_rval_t Int4_encode_xer(asn_TYPE_descriptor_t *td, void *structure, int ilevel, enum xer_encoder_flags_e flags, @@ -402,7 +426,7 @@ asn_TYPE_descriptor_t asn_DEF_Int4 = { Int4_constraint, Int4_decode_ber, Int4_encode_der, - 0, /* Not implemented yet */ + Int4_decode_xer, Int4_encode_xer, 0, /* Use generic outmost tag fetcher */ asn_DEF_Int4_tags, @@ -433,6 +457,7 @@ asn_struct_print_f Int5_print; asn_constr_check_f Int5_constraint; ber_type_decoder_f Int5_decode_ber; der_type_encoder_f Int5_encode_der; +xer_type_decoder_f Int5_decode_xer; xer_type_encoder_f Int5_encode_xer; /*** <<< CODE [Int5] >>> ***/ @@ -514,6 +539,13 @@ Int5_encode_der(asn_TYPE_descriptor_t *td, return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); } +asn_dec_rval_t +Int5_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, void *bufptr, size_t size) { + Int5_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + asn_enc_rval_t Int5_encode_xer(asn_TYPE_descriptor_t *td, void *structure, int ilevel, enum xer_encoder_flags_e flags, @@ -536,7 +568,7 @@ asn_TYPE_descriptor_t asn_DEF_Int5 = { Int5_constraint, Int5_decode_ber, Int5_encode_der, - 0, /* Not implemented yet */ + Int5_decode_xer, Int5_encode_xer, 0, /* Use generic outmost tag fetcher */ asn_DEF_Int5_tags, @@ -567,6 +599,7 @@ asn_struct_print_f ExtensibleExtensions_print; asn_constr_check_f ExtensibleExtensions_constraint; ber_type_decoder_f ExtensibleExtensions_decode_ber; der_type_encoder_f ExtensibleExtensions_encode_der; +xer_type_decoder_f ExtensibleExtensions_decode_xer; xer_type_encoder_f ExtensibleExtensions_encode_xer; /*** <<< CODE [ExtensibleExtensions] >>> ***/ @@ -648,6 +681,13 @@ ExtensibleExtensions_encode_der(asn_TYPE_descriptor_t *td, return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); } +asn_dec_rval_t +ExtensibleExtensions_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, void *bufptr, size_t size) { + ExtensibleExtensions_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + asn_enc_rval_t ExtensibleExtensions_encode_xer(asn_TYPE_descriptor_t *td, void *structure, int ilevel, enum xer_encoder_flags_e flags, @@ -670,7 +710,7 @@ asn_TYPE_descriptor_t asn_DEF_ExtensibleExtensions = { ExtensibleExtensions_constraint, ExtensibleExtensions_decode_ber, ExtensibleExtensions_encode_der, - 0, /* Not implemented yet */ + ExtensibleExtensions_decode_xer, ExtensibleExtensions_encode_xer, 0, /* Use generic outmost tag fetcher */ asn_DEF_ExtensibleExtensions_tags, @@ -720,6 +760,7 @@ asn_struct_print_f Str2_print; asn_constr_check_f Str2_constraint; ber_type_decoder_f Str2_decode_ber; der_type_encoder_f Str2_encode_der; +xer_type_decoder_f Str2_decode_xer; xer_type_encoder_f Str2_encode_xer; /*** <<< CTABLES [Str2] >>> ***/ @@ -813,6 +854,13 @@ Str2_encode_der(asn_TYPE_descriptor_t *td, return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); } +asn_dec_rval_t +Str2_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, void *bufptr, size_t size) { + Str2_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + asn_enc_rval_t Str2_encode_xer(asn_TYPE_descriptor_t *td, void *structure, int ilevel, enum xer_encoder_flags_e flags, @@ -835,7 +883,7 @@ asn_TYPE_descriptor_t asn_DEF_Str2 = { Str2_constraint, Str2_decode_ber, Str2_encode_der, - 0, /* Not implemented yet */ + Str2_decode_xer, Str2_encode_xer, 0, /* Use generic outmost tag fetcher */ asn_DEF_Str2_tags, @@ -866,6 +914,7 @@ asn_struct_print_f Str3_print; asn_constr_check_f Str3_constraint; ber_type_decoder_f Str3_decode_ber; der_type_encoder_f Str3_encode_der; +xer_type_decoder_f Str3_decode_xer; xer_type_encoder_f Str3_encode_xer; /*** <<< CTABLES [Str3] >>> ***/ @@ -970,6 +1019,13 @@ Str3_encode_der(asn_TYPE_descriptor_t *td, return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); } +asn_dec_rval_t +Str3_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, void *bufptr, size_t size) { + Str3_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + asn_enc_rval_t Str3_encode_xer(asn_TYPE_descriptor_t *td, void *structure, int ilevel, enum xer_encoder_flags_e flags, @@ -992,7 +1048,7 @@ asn_TYPE_descriptor_t asn_DEF_Str3 = { Str3_constraint, Str3_decode_ber, Str3_encode_der, - 0, /* Not implemented yet */ + Str3_decode_xer, Str3_encode_xer, 0, /* Use generic outmost tag fetcher */ asn_DEF_Str3_tags, @@ -1023,6 +1079,7 @@ asn_struct_print_f Str4_print; asn_constr_check_f Str4_constraint; ber_type_decoder_f Str4_decode_ber; der_type_encoder_f Str4_encode_der; +xer_type_decoder_f Str4_decode_xer; xer_type_encoder_f Str4_encode_xer; /*** <<< CTABLES [Str4] >>> ***/ @@ -1113,6 +1170,13 @@ Str4_encode_der(asn_TYPE_descriptor_t *td, return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); } +asn_dec_rval_t +Str4_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, void *bufptr, size_t size) { + Str4_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + asn_enc_rval_t Str4_encode_xer(asn_TYPE_descriptor_t *td, void *structure, int ilevel, enum xer_encoder_flags_e flags, @@ -1135,7 +1199,7 @@ asn_TYPE_descriptor_t asn_DEF_Str4 = { Str4_constraint, Str4_decode_ber, Str4_encode_der, - 0, /* Not implemented yet */ + Str4_decode_xer, Str4_encode_xer, 0, /* Use generic outmost tag fetcher */ asn_DEF_Str4_tags, @@ -1166,6 +1230,7 @@ asn_struct_print_f PER_Visible_print; asn_constr_check_f PER_Visible_constraint; ber_type_decoder_f PER_Visible_decode_ber; der_type_encoder_f PER_Visible_encode_der; +xer_type_decoder_f PER_Visible_decode_xer; xer_type_encoder_f PER_Visible_encode_xer; /*** <<< CTABLES [PER-Visible] >>> ***/ @@ -1256,6 +1321,13 @@ PER_Visible_encode_der(asn_TYPE_descriptor_t *td, return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); } +asn_dec_rval_t +PER_Visible_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, void *bufptr, size_t size) { + PER_Visible_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + asn_enc_rval_t PER_Visible_encode_xer(asn_TYPE_descriptor_t *td, void *structure, int ilevel, enum xer_encoder_flags_e flags, @@ -1278,7 +1350,7 @@ asn_TYPE_descriptor_t asn_DEF_PER_Visible = { PER_Visible_constraint, PER_Visible_decode_ber, PER_Visible_encode_der, - 0, /* Not implemented yet */ + PER_Visible_decode_xer, PER_Visible_encode_xer, 0, /* Use generic outmost tag fetcher */ asn_DEF_PER_Visible_tags, @@ -1309,6 +1381,7 @@ asn_struct_print_f PER_Visible_2_print; asn_constr_check_f PER_Visible_2_constraint; ber_type_decoder_f PER_Visible_2_decode_ber; der_type_encoder_f PER_Visible_2_encode_der; +xer_type_decoder_f PER_Visible_2_decode_xer; xer_type_encoder_f PER_Visible_2_encode_xer; /*** <<< CTABLES [PER-Visible-2] >>> ***/ @@ -1399,6 +1472,13 @@ PER_Visible_2_encode_der(asn_TYPE_descriptor_t *td, return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); } +asn_dec_rval_t +PER_Visible_2_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, void *bufptr, size_t size) { + PER_Visible_2_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + asn_enc_rval_t PER_Visible_2_encode_xer(asn_TYPE_descriptor_t *td, void *structure, int ilevel, enum xer_encoder_flags_e flags, @@ -1421,7 +1501,7 @@ asn_TYPE_descriptor_t asn_DEF_PER_Visible_2 = { PER_Visible_2_constraint, PER_Visible_2_decode_ber, PER_Visible_2_encode_der, - 0, /* Not implemented yet */ + PER_Visible_2_decode_xer, PER_Visible_2_encode_xer, 0, /* Use generic outmost tag fetcher */ asn_DEF_PER_Visible_2_tags, @@ -1452,6 +1532,7 @@ asn_struct_print_f Not_PER_Visible_1_print; asn_constr_check_f Not_PER_Visible_1_constraint; ber_type_decoder_f Not_PER_Visible_1_decode_ber; der_type_encoder_f Not_PER_Visible_1_encode_der; +xer_type_decoder_f Not_PER_Visible_1_decode_xer; xer_type_encoder_f Not_PER_Visible_1_encode_xer; /*** <<< CTABLES [Not-PER-Visible-1] >>> ***/ @@ -1542,6 +1623,13 @@ Not_PER_Visible_1_encode_der(asn_TYPE_descriptor_t *td, return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); } +asn_dec_rval_t +Not_PER_Visible_1_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, void *bufptr, size_t size) { + Not_PER_Visible_1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + asn_enc_rval_t Not_PER_Visible_1_encode_xer(asn_TYPE_descriptor_t *td, void *structure, int ilevel, enum xer_encoder_flags_e flags, @@ -1564,7 +1652,7 @@ asn_TYPE_descriptor_t asn_DEF_Not_PER_Visible_1 = { Not_PER_Visible_1_constraint, Not_PER_Visible_1_decode_ber, Not_PER_Visible_1_encode_der, - 0, /* Not implemented yet */ + Not_PER_Visible_1_decode_xer, Not_PER_Visible_1_encode_xer, 0, /* Use generic outmost tag fetcher */ asn_DEF_Not_PER_Visible_1_tags, @@ -1595,6 +1683,7 @@ asn_struct_print_f Not_PER_Visible_2_print; asn_constr_check_f Not_PER_Visible_2_constraint; ber_type_decoder_f Not_PER_Visible_2_decode_ber; der_type_encoder_f Not_PER_Visible_2_encode_der; +xer_type_decoder_f Not_PER_Visible_2_decode_xer; xer_type_encoder_f Not_PER_Visible_2_encode_xer; /*** <<< CTABLES [Not-PER-Visible-2] >>> ***/ @@ -1685,6 +1774,13 @@ Not_PER_Visible_2_encode_der(asn_TYPE_descriptor_t *td, return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); } +asn_dec_rval_t +Not_PER_Visible_2_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, void *bufptr, size_t size) { + Not_PER_Visible_2_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + asn_enc_rval_t Not_PER_Visible_2_encode_xer(asn_TYPE_descriptor_t *td, void *structure, int ilevel, enum xer_encoder_flags_e flags, @@ -1707,7 +1803,7 @@ asn_TYPE_descriptor_t asn_DEF_Not_PER_Visible_2 = { Not_PER_Visible_2_constraint, Not_PER_Visible_2_decode_ber, Not_PER_Visible_2_encode_der, - 0, /* Not implemented yet */ + Not_PER_Visible_2_decode_xer, Not_PER_Visible_2_encode_xer, 0, /* Use generic outmost tag fetcher */ asn_DEF_Not_PER_Visible_2_tags, @@ -1738,6 +1834,7 @@ asn_struct_print_f Not_PER_Visible_3_print; asn_constr_check_f Not_PER_Visible_3_constraint; ber_type_decoder_f Not_PER_Visible_3_decode_ber; der_type_encoder_f Not_PER_Visible_3_encode_der; +xer_type_decoder_f Not_PER_Visible_3_decode_xer; xer_type_encoder_f Not_PER_Visible_3_encode_xer; /*** <<< CTABLES [Not-PER-Visible-3] >>> ***/ @@ -1828,6 +1925,13 @@ Not_PER_Visible_3_encode_der(asn_TYPE_descriptor_t *td, return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); } +asn_dec_rval_t +Not_PER_Visible_3_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, void *bufptr, size_t size) { + Not_PER_Visible_3_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + asn_enc_rval_t Not_PER_Visible_3_encode_xer(asn_TYPE_descriptor_t *td, void *structure, int ilevel, enum xer_encoder_flags_e flags, @@ -1850,7 +1954,7 @@ asn_TYPE_descriptor_t asn_DEF_Not_PER_Visible_3 = { Not_PER_Visible_3_constraint, Not_PER_Visible_3_decode_ber, Not_PER_Visible_3_encode_der, - 0, /* Not implemented yet */ + Not_PER_Visible_3_decode_xer, Not_PER_Visible_3_encode_xer, 0, /* Use generic outmost tag fetcher */ asn_DEF_Not_PER_Visible_3_tags, @@ -1881,6 +1985,7 @@ asn_struct_print_f SIZE_but_not_FROM_print; asn_constr_check_f SIZE_but_not_FROM_constraint; ber_type_decoder_f SIZE_but_not_FROM_decode_ber; der_type_encoder_f SIZE_but_not_FROM_encode_der; +xer_type_decoder_f SIZE_but_not_FROM_decode_xer; xer_type_encoder_f SIZE_but_not_FROM_encode_xer; /*** <<< CTABLES [SIZE-but-not-FROM] >>> ***/ @@ -1974,6 +2079,13 @@ SIZE_but_not_FROM_encode_der(asn_TYPE_descriptor_t *td, return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); } +asn_dec_rval_t +SIZE_but_not_FROM_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, void *bufptr, size_t size) { + SIZE_but_not_FROM_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + asn_enc_rval_t SIZE_but_not_FROM_encode_xer(asn_TYPE_descriptor_t *td, void *structure, int ilevel, enum xer_encoder_flags_e flags, @@ -1996,7 +2108,7 @@ asn_TYPE_descriptor_t asn_DEF_SIZE_but_not_FROM = { SIZE_but_not_FROM_constraint, SIZE_but_not_FROM_decode_ber, SIZE_but_not_FROM_encode_der, - 0, /* Not implemented yet */ + SIZE_but_not_FROM_decode_xer, SIZE_but_not_FROM_encode_xer, 0, /* Use generic outmost tag fetcher */ asn_DEF_SIZE_but_not_FROM_tags, @@ -2027,6 +2139,7 @@ asn_struct_print_f SIZE_and_FROM_print; asn_constr_check_f SIZE_and_FROM_constraint; ber_type_decoder_f SIZE_and_FROM_decode_ber; der_type_encoder_f SIZE_and_FROM_encode_der; +xer_type_decoder_f SIZE_and_FROM_decode_xer; xer_type_encoder_f SIZE_and_FROM_encode_xer; /*** <<< CTABLES [SIZE-and-FROM] >>> ***/ @@ -2120,6 +2233,13 @@ SIZE_and_FROM_encode_der(asn_TYPE_descriptor_t *td, return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); } +asn_dec_rval_t +SIZE_and_FROM_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, void *bufptr, size_t size) { + SIZE_and_FROM_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + asn_enc_rval_t SIZE_and_FROM_encode_xer(asn_TYPE_descriptor_t *td, void *structure, int ilevel, enum xer_encoder_flags_e flags, @@ -2142,7 +2262,7 @@ asn_TYPE_descriptor_t asn_DEF_SIZE_and_FROM = { SIZE_and_FROM_constraint, SIZE_and_FROM_decode_ber, SIZE_and_FROM_encode_der, - 0, /* Not implemented yet */ + SIZE_and_FROM_decode_xer, SIZE_and_FROM_encode_xer, 0, /* Use generic outmost tag fetcher */ asn_DEF_SIZE_and_FROM_tags, @@ -2173,6 +2293,7 @@ asn_struct_print_f Neither_SIZE_nor_FROM_print; asn_constr_check_f Neither_SIZE_nor_FROM_constraint; ber_type_decoder_f Neither_SIZE_nor_FROM_decode_ber; der_type_encoder_f Neither_SIZE_nor_FROM_encode_der; +xer_type_decoder_f Neither_SIZE_nor_FROM_decode_xer; xer_type_encoder_f Neither_SIZE_nor_FROM_encode_xer; /*** <<< CTABLES [Neither-SIZE-nor-FROM] >>> ***/ @@ -2263,6 +2384,13 @@ Neither_SIZE_nor_FROM_encode_der(asn_TYPE_descriptor_t *td, return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); } +asn_dec_rval_t +Neither_SIZE_nor_FROM_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, void *bufptr, size_t size) { + Neither_SIZE_nor_FROM_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + asn_enc_rval_t Neither_SIZE_nor_FROM_encode_xer(asn_TYPE_descriptor_t *td, void *structure, int ilevel, enum xer_encoder_flags_e flags, @@ -2285,7 +2413,7 @@ asn_TYPE_descriptor_t asn_DEF_Neither_SIZE_nor_FROM = { Neither_SIZE_nor_FROM_constraint, Neither_SIZE_nor_FROM_decode_ber, Neither_SIZE_nor_FROM_encode_der, - 0, /* Not implemented yet */ + Neither_SIZE_nor_FROM_decode_xer, Neither_SIZE_nor_FROM_encode_xer, 0, /* Use generic outmost tag fetcher */ asn_DEF_Neither_SIZE_nor_FROM_tags, @@ -2316,6 +2444,7 @@ asn_struct_print_f Utf8_4_print; asn_constr_check_f Utf8_4_constraint; ber_type_decoder_f Utf8_4_decode_ber; der_type_encoder_f Utf8_4_encode_der; +xer_type_decoder_f Utf8_4_decode_xer; xer_type_encoder_f Utf8_4_encode_xer; /*** <<< CTABLES [Utf8-4] >>> ***/ @@ -2400,6 +2529,13 @@ Utf8_4_encode_der(asn_TYPE_descriptor_t *td, return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); } +asn_dec_rval_t +Utf8_4_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, void *bufptr, size_t size) { + Utf8_4_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + asn_enc_rval_t Utf8_4_encode_xer(asn_TYPE_descriptor_t *td, void *structure, int ilevel, enum xer_encoder_flags_e flags, @@ -2422,7 +2558,7 @@ asn_TYPE_descriptor_t asn_DEF_Utf8_4 = { Utf8_4_constraint, Utf8_4_decode_ber, Utf8_4_encode_der, - 0, /* Not implemented yet */ + Utf8_4_decode_xer, Utf8_4_encode_xer, 0, /* Use generic outmost tag fetcher */ asn_DEF_Utf8_4_tags, @@ -2453,6 +2589,7 @@ asn_struct_print_f Utf8_3_print; asn_constr_check_f Utf8_3_constraint; ber_type_decoder_f Utf8_3_decode_ber; der_type_encoder_f Utf8_3_encode_der; +xer_type_decoder_f Utf8_3_decode_xer; xer_type_encoder_f Utf8_3_encode_xer; /*** <<< CTABLES [Utf8-3] >>> ***/ @@ -2565,6 +2702,13 @@ Utf8_3_encode_der(asn_TYPE_descriptor_t *td, return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); } +asn_dec_rval_t +Utf8_3_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, void *bufptr, size_t size) { + Utf8_3_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + asn_enc_rval_t Utf8_3_encode_xer(asn_TYPE_descriptor_t *td, void *structure, int ilevel, enum xer_encoder_flags_e flags, @@ -2587,7 +2731,7 @@ asn_TYPE_descriptor_t asn_DEF_Utf8_3 = { Utf8_3_constraint, Utf8_3_decode_ber, Utf8_3_encode_der, - 0, /* Not implemented yet */ + Utf8_3_decode_xer, Utf8_3_encode_xer, 0, /* Use generic outmost tag fetcher */ asn_DEF_Utf8_3_tags, @@ -2618,6 +2762,7 @@ asn_struct_print_f Utf8_2_print; asn_constr_check_f Utf8_2_constraint; ber_type_decoder_f Utf8_2_decode_ber; der_type_encoder_f Utf8_2_encode_der; +xer_type_decoder_f Utf8_2_decode_xer; xer_type_encoder_f Utf8_2_encode_xer; /*** <<< CODE [Utf8-2] >>> ***/ @@ -2700,6 +2845,13 @@ Utf8_2_encode_der(asn_TYPE_descriptor_t *td, return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); } +asn_dec_rval_t +Utf8_2_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, void *bufptr, size_t size) { + Utf8_2_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + asn_enc_rval_t Utf8_2_encode_xer(asn_TYPE_descriptor_t *td, void *structure, int ilevel, enum xer_encoder_flags_e flags, @@ -2722,7 +2874,7 @@ asn_TYPE_descriptor_t asn_DEF_Utf8_2 = { Utf8_2_constraint, Utf8_2_decode_ber, Utf8_2_encode_der, - 0, /* Not implemented yet */ + Utf8_2_decode_xer, Utf8_2_encode_xer, 0, /* Use generic outmost tag fetcher */ asn_DEF_Utf8_2_tags, @@ -2791,6 +2943,7 @@ asn_struct_print_f Identifier_print; asn_constr_check_f Identifier_constraint; ber_type_decoder_f Identifier_decode_ber; der_type_encoder_f Identifier_encode_der; +xer_type_decoder_f Identifier_decode_xer; xer_type_encoder_f Identifier_encode_xer; /*** <<< CTABLES [Identifier] >>> ***/ @@ -2896,6 +3049,13 @@ Identifier_encode_der(asn_TYPE_descriptor_t *td, return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); } +asn_dec_rval_t +Identifier_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, void *bufptr, size_t size) { + Identifier_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + asn_enc_rval_t Identifier_encode_xer(asn_TYPE_descriptor_t *td, void *structure, int ilevel, enum xer_encoder_flags_e flags, @@ -2918,7 +3078,7 @@ asn_TYPE_descriptor_t asn_DEF_Identifier = { Identifier_constraint, Identifier_decode_ber, Identifier_encode_der, - 0, /* Not implemented yet */ + Identifier_decode_xer, Identifier_encode_xer, 0, /* Use generic outmost tag fetcher */ asn_DEF_Identifier_tags, diff --git a/tests/65-multi-tag-OK.asn1.-P b/tests/65-multi-tag-OK.asn1.-P index 4ffc4b20..5319d50e 100644 --- a/tests/65-multi-tag-OK.asn1.-P +++ b/tests/65-multi-tag-OK.asn1.-P @@ -16,6 +16,7 @@ asn_struct_print_f T1_print; asn_constr_check_f T1_constraint; ber_type_decoder_f T1_decode_ber; der_type_encoder_f T1_encode_der; +xer_type_decoder_f T1_decode_xer; xer_type_encoder_f T1_encode_xer; /*** <<< CODE [T1] >>> ***/ @@ -74,6 +75,13 @@ T1_encode_der(asn_TYPE_descriptor_t *td, return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); } +asn_dec_rval_t +T1_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, void *bufptr, size_t size) { + T1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + asn_enc_rval_t T1_encode_xer(asn_TYPE_descriptor_t *td, void *structure, int ilevel, enum xer_encoder_flags_e flags, @@ -107,7 +115,7 @@ asn_TYPE_descriptor_t asn_DEF_T1 = { T1_constraint, T1_decode_ber, T1_encode_der, - 0, /* Not implemented yet */ + T1_decode_xer, T1_encode_xer, 0, /* Use generic outmost tag fetcher */ asn_DEF_T1_tags, @@ -138,6 +146,7 @@ asn_struct_print_f T2_print; asn_constr_check_f T2_constraint; ber_type_decoder_f T2_decode_ber; der_type_encoder_f T2_encode_der; +xer_type_decoder_f T2_decode_xer; xer_type_encoder_f T2_encode_xer; /*** <<< CODE [T2] >>> ***/ @@ -196,6 +205,13 @@ T2_encode_der(asn_TYPE_descriptor_t *td, return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); } +asn_dec_rval_t +T2_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, void *bufptr, size_t size) { + T2_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + asn_enc_rval_t T2_encode_xer(asn_TYPE_descriptor_t *td, void *structure, int ilevel, enum xer_encoder_flags_e flags, @@ -227,7 +243,7 @@ asn_TYPE_descriptor_t asn_DEF_T2 = { T2_constraint, T2_decode_ber, T2_encode_der, - 0, /* Not implemented yet */ + T2_decode_xer, T2_encode_xer, 0, /* Use generic outmost tag fetcher */ asn_DEF_T2_tags, @@ -258,6 +274,7 @@ asn_struct_print_f T3_print; asn_constr_check_f T3_constraint; ber_type_decoder_f T3_decode_ber; der_type_encoder_f T3_encode_der; +xer_type_decoder_f T3_decode_xer; xer_type_encoder_f T3_encode_xer; /*** <<< CODE [T3] >>> ***/ @@ -316,6 +333,13 @@ T3_encode_der(asn_TYPE_descriptor_t *td, return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); } +asn_dec_rval_t +T3_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, void *bufptr, size_t size) { + T3_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + asn_enc_rval_t T3_encode_xer(asn_TYPE_descriptor_t *td, void *structure, int ilevel, enum xer_encoder_flags_e flags, @@ -345,7 +369,7 @@ asn_TYPE_descriptor_t asn_DEF_T3 = { T3_constraint, T3_decode_ber, T3_encode_der, - 0, /* Not implemented yet */ + T3_decode_xer, T3_encode_xer, 0, /* Use generic outmost tag fetcher */ asn_DEF_T3_tags, @@ -376,6 +400,7 @@ asn_struct_print_f T4_print; asn_constr_check_f T4_constraint; ber_type_decoder_f T4_decode_ber; der_type_encoder_f T4_encode_der; +xer_type_decoder_f T4_decode_xer; xer_type_encoder_f T4_encode_xer; /*** <<< CODE [T4] >>> ***/ @@ -434,6 +459,13 @@ T4_encode_der(asn_TYPE_descriptor_t *td, return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); } +asn_dec_rval_t +T4_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, void *bufptr, size_t size) { + T4_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + asn_enc_rval_t T4_encode_xer(asn_TYPE_descriptor_t *td, void *structure, int ilevel, enum xer_encoder_flags_e flags, @@ -458,7 +490,7 @@ asn_TYPE_descriptor_t asn_DEF_T4 = { T4_constraint, T4_decode_ber, T4_encode_der, - 0, /* Not implemented yet */ + T4_decode_xer, T4_encode_xer, 0, /* Use generic outmost tag fetcher */ asn_DEF_T4_tags, @@ -489,6 +521,7 @@ asn_struct_print_f T5_print; asn_constr_check_f T5_constraint; ber_type_decoder_f T5_decode_ber; der_type_encoder_f T5_encode_der; +xer_type_decoder_f T5_decode_xer; xer_type_encoder_f T5_encode_xer; /*** <<< CODE [T5] >>> ***/ @@ -547,6 +580,13 @@ T5_encode_der(asn_TYPE_descriptor_t *td, return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); } +asn_dec_rval_t +T5_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, void *bufptr, size_t size) { + T5_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + asn_enc_rval_t T5_encode_xer(asn_TYPE_descriptor_t *td, void *structure, int ilevel, enum xer_encoder_flags_e flags, @@ -570,7 +610,7 @@ asn_TYPE_descriptor_t asn_DEF_T5 = { T5_constraint, T5_decode_ber, T5_encode_der, - 0, /* Not implemented yet */ + T5_decode_xer, T5_encode_xer, 0, /* Use generic outmost tag fetcher */ asn_DEF_T5_tags, @@ -620,6 +660,7 @@ asn_struct_print_f T_print; asn_constr_check_f T_constraint; ber_type_decoder_f T_decode_ber; der_type_encoder_f T_encode_der; +xer_type_decoder_f T_decode_xer; xer_type_encoder_f T_encode_xer; /*** <<< CODE [T] >>> ***/ @@ -678,6 +719,13 @@ T_encode_der(asn_TYPE_descriptor_t *td, return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); } +asn_dec_rval_t +T_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, void *bufptr, size_t size) { + T_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + asn_enc_rval_t T_encode_xer(asn_TYPE_descriptor_t *td, void *structure, int ilevel, enum xer_encoder_flags_e flags, @@ -702,7 +750,7 @@ asn_TYPE_descriptor_t asn_DEF_T = { T_constraint, T_decode_ber, T_encode_der, - 0, /* Not implemented yet */ + T_decode_xer, T_encode_xer, 0, /* Use generic outmost tag fetcher */ asn_DEF_T_tags, diff --git a/tests/65-multi-tag-OK.asn1.-Pfnative-types b/tests/65-multi-tag-OK.asn1.-Pfnative-types index 796962ae..eb2f1c41 100644 --- a/tests/65-multi-tag-OK.asn1.-Pfnative-types +++ b/tests/65-multi-tag-OK.asn1.-Pfnative-types @@ -16,6 +16,7 @@ asn_struct_print_f T1_print; asn_constr_check_f T1_constraint; ber_type_decoder_f T1_decode_ber; der_type_encoder_f T1_encode_der; +xer_type_decoder_f T1_decode_xer; xer_type_encoder_f T1_encode_xer; /*** <<< CODE [T1] >>> ***/ @@ -74,6 +75,13 @@ T1_encode_der(asn_TYPE_descriptor_t *td, return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); } +asn_dec_rval_t +T1_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, void *bufptr, size_t size) { + T1_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + asn_enc_rval_t T1_encode_xer(asn_TYPE_descriptor_t *td, void *structure, int ilevel, enum xer_encoder_flags_e flags, @@ -107,7 +115,7 @@ asn_TYPE_descriptor_t asn_DEF_T1 = { T1_constraint, T1_decode_ber, T1_encode_der, - 0, /* Not implemented yet */ + T1_decode_xer, T1_encode_xer, 0, /* Use generic outmost tag fetcher */ asn_DEF_T1_tags, @@ -138,6 +146,7 @@ asn_struct_print_f T2_print; asn_constr_check_f T2_constraint; ber_type_decoder_f T2_decode_ber; der_type_encoder_f T2_encode_der; +xer_type_decoder_f T2_decode_xer; xer_type_encoder_f T2_encode_xer; /*** <<< CODE [T2] >>> ***/ @@ -196,6 +205,13 @@ T2_encode_der(asn_TYPE_descriptor_t *td, return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); } +asn_dec_rval_t +T2_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, void *bufptr, size_t size) { + T2_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + asn_enc_rval_t T2_encode_xer(asn_TYPE_descriptor_t *td, void *structure, int ilevel, enum xer_encoder_flags_e flags, @@ -227,7 +243,7 @@ asn_TYPE_descriptor_t asn_DEF_T2 = { T2_constraint, T2_decode_ber, T2_encode_der, - 0, /* Not implemented yet */ + T2_decode_xer, T2_encode_xer, 0, /* Use generic outmost tag fetcher */ asn_DEF_T2_tags, @@ -258,6 +274,7 @@ asn_struct_print_f T3_print; asn_constr_check_f T3_constraint; ber_type_decoder_f T3_decode_ber; der_type_encoder_f T3_encode_der; +xer_type_decoder_f T3_decode_xer; xer_type_encoder_f T3_encode_xer; /*** <<< CODE [T3] >>> ***/ @@ -316,6 +333,13 @@ T3_encode_der(asn_TYPE_descriptor_t *td, return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); } +asn_dec_rval_t +T3_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, void *bufptr, size_t size) { + T3_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + asn_enc_rval_t T3_encode_xer(asn_TYPE_descriptor_t *td, void *structure, int ilevel, enum xer_encoder_flags_e flags, @@ -345,7 +369,7 @@ asn_TYPE_descriptor_t asn_DEF_T3 = { T3_constraint, T3_decode_ber, T3_encode_der, - 0, /* Not implemented yet */ + T3_decode_xer, T3_encode_xer, 0, /* Use generic outmost tag fetcher */ asn_DEF_T3_tags, @@ -376,6 +400,7 @@ asn_struct_print_f T4_print; asn_constr_check_f T4_constraint; ber_type_decoder_f T4_decode_ber; der_type_encoder_f T4_encode_der; +xer_type_decoder_f T4_decode_xer; xer_type_encoder_f T4_encode_xer; /*** <<< CODE [T4] >>> ***/ @@ -434,6 +459,13 @@ T4_encode_der(asn_TYPE_descriptor_t *td, return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); } +asn_dec_rval_t +T4_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, void *bufptr, size_t size) { + T4_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + asn_enc_rval_t T4_encode_xer(asn_TYPE_descriptor_t *td, void *structure, int ilevel, enum xer_encoder_flags_e flags, @@ -458,7 +490,7 @@ asn_TYPE_descriptor_t asn_DEF_T4 = { T4_constraint, T4_decode_ber, T4_encode_der, - 0, /* Not implemented yet */ + T4_decode_xer, T4_encode_xer, 0, /* Use generic outmost tag fetcher */ asn_DEF_T4_tags, @@ -489,6 +521,7 @@ asn_struct_print_f T5_print; asn_constr_check_f T5_constraint; ber_type_decoder_f T5_decode_ber; der_type_encoder_f T5_encode_der; +xer_type_decoder_f T5_decode_xer; xer_type_encoder_f T5_encode_xer; /*** <<< CODE [T5] >>> ***/ @@ -547,6 +580,13 @@ T5_encode_der(asn_TYPE_descriptor_t *td, return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); } +asn_dec_rval_t +T5_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, void *bufptr, size_t size) { + T5_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + asn_enc_rval_t T5_encode_xer(asn_TYPE_descriptor_t *td, void *structure, int ilevel, enum xer_encoder_flags_e flags, @@ -570,7 +610,7 @@ asn_TYPE_descriptor_t asn_DEF_T5 = { T5_constraint, T5_decode_ber, T5_encode_der, - 0, /* Not implemented yet */ + T5_decode_xer, T5_encode_xer, 0, /* Use generic outmost tag fetcher */ asn_DEF_T5_tags, @@ -620,6 +660,7 @@ asn_struct_print_f T_print; asn_constr_check_f T_constraint; ber_type_decoder_f T_decode_ber; der_type_encoder_f T_encode_der; +xer_type_decoder_f T_decode_xer; xer_type_encoder_f T_encode_xer; /*** <<< CODE [T] >>> ***/ @@ -678,6 +719,13 @@ T_encode_der(asn_TYPE_descriptor_t *td, return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); } +asn_dec_rval_t +T_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, void *bufptr, size_t size) { + T_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + asn_enc_rval_t T_encode_xer(asn_TYPE_descriptor_t *td, void *structure, int ilevel, enum xer_encoder_flags_e flags, @@ -702,7 +750,7 @@ asn_TYPE_descriptor_t asn_DEF_T = { T_constraint, T_decode_ber, T_encode_der, - 0, /* Not implemented yet */ + T_decode_xer, T_encode_xer, 0, /* Use generic outmost tag fetcher */ asn_DEF_T_tags, diff --git a/tests/66-ref-simple-OK.asn1.-P b/tests/66-ref-simple-OK.asn1.-P index 0131c919..a2b3357e 100644 --- a/tests/66-ref-simple-OK.asn1.-P +++ b/tests/66-ref-simple-OK.asn1.-P @@ -86,6 +86,7 @@ asn_struct_print_f SimpleType_print; asn_constr_check_f SimpleType_constraint; ber_type_decoder_f SimpleType_decode_ber; der_type_encoder_f SimpleType_encode_der; +xer_type_decoder_f SimpleType_decode_xer; xer_type_encoder_f SimpleType_encode_xer; /*** <<< CODE [SimpleType] >>> ***/ @@ -144,6 +145,13 @@ SimpleType_encode_der(asn_TYPE_descriptor_t *td, return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); } +asn_dec_rval_t +SimpleType_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, + void **structure, const char *opt_mname, void *bufptr, size_t size) { + SimpleType_inherit_TYPE_descriptor(td); + return td->xer_decoder(opt_codec_ctx, td, structure, opt_mname, bufptr, size); +} + asn_enc_rval_t SimpleType_encode_xer(asn_TYPE_descriptor_t *td, void *structure, int ilevel, enum xer_encoder_flags_e flags, @@ -166,7 +174,7 @@ asn_TYPE_descriptor_t asn_DEF_SimpleType = { SimpleType_constraint, SimpleType_decode_ber, SimpleType_encode_der, - 0, /* Not implemented yet */ + SimpleType_decode_xer, SimpleType_encode_xer, 0, /* Use generic outmost tag fetcher */ asn_DEF_SimpleType_tags, |