aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorLev Walkin <vlm@lionet.info>2004-10-23 13:26:56 +0000
committerLev Walkin <vlm@lionet.info>2004-10-23 13:26:56 +0000
commit0ebe8b3dc2ea5c3f585ea1a9c992ce0e1b744b11 (patch)
treebe2bd4eb44f10b90f74ae54f07eeebd48edfd871 /tests
parentc17c7fa19b4065c6c50b82ea5e00969dc8990211 (diff)
XER decoders
Diffstat (limited to 'tests')
-rw-r--r--tests/46-redefine-OK.asn1.-PR10
-rw-r--r--tests/50-constraint-OK.asn1.-P200
-rw-r--r--tests/65-multi-tag-OK.asn1.-P60
-rw-r--r--tests/65-multi-tag-OK.asn1.-Pfnative-types60
-rw-r--r--tests/66-ref-simple-OK.asn1.-P10
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,