diff options
author | Lev Walkin <vlm@lionet.info> | 2004-09-22 16:06:28 +0000 |
---|---|---|
committer | Lev Walkin <vlm@lionet.info> | 2004-09-22 16:06:28 +0000 |
commit | a9cc46e3f3c30ddd3f2a8f712c9f0acdc793fda7 (patch) | |
tree | 3ca369d58e29a24dc08ec01d4a3e4cac2020fe26 /tests/46-redefine-OK.asn1.-PR | |
parent | e4d6ab83d7937337f1c19acfb4353fd0d43180dd (diff) |
XER support
Diffstat (limited to 'tests/46-redefine-OK.asn1.-PR')
-rw-r--r-- | tests/46-redefine-OK.asn1.-PR | 104 |
1 files changed, 66 insertions, 38 deletions
diff --git a/tests/46-redefine-OK.asn1.-PR b/tests/46-redefine-OK.asn1.-PR index 9104df85..f89085e1 100644 --- a/tests/46-redefine-OK.asn1.-PR +++ b/tests/46-redefine-OK.asn1.-PR @@ -11,11 +11,12 @@ typedef OCTET_STRING_t PrimitiveType_t; /*** <<< FUNC-DECLS [PrimitiveType] >>> ***/ extern asn1_TYPE_descriptor_t asn1_DEF_PrimitiveType; +asn_struct_free_f PrimitiveType_free; +asn_struct_print_f PrimitiveType_print; asn_constr_check_f PrimitiveType_constraint; ber_type_decoder_f PrimitiveType_decode_ber; der_type_encoder_f PrimitiveType_encode_der; -asn_struct_print_f PrimitiveType_print; -asn_struct_free_f PrimitiveType_free; +xer_type_encoder_f PrimitiveType_encode_xer; /*** <<< CODE [PrimitiveType] >>> ***/ @@ -35,16 +36,32 @@ PrimitiveType_constraint(asn1_TYPE_descriptor_t *td, const void *sptr, */ static void PrimitiveType_inherit_TYPE_descriptor(asn1_TYPE_descriptor_t *td) { - td->ber_decoder = asn1_DEF_OCTET_STRING.ber_decoder; - td->der_encoder = asn1_DEF_OCTET_STRING.der_encoder; td->free_struct = asn1_DEF_OCTET_STRING.free_struct; td->print_struct = asn1_DEF_OCTET_STRING.print_struct; + td->ber_decoder = asn1_DEF_OCTET_STRING.ber_decoder; + td->der_encoder = asn1_DEF_OCTET_STRING.der_encoder; + td->xer_decoder = asn1_DEF_OCTET_STRING.xer_decoder; + td->xer_encoder = asn1_DEF_OCTET_STRING.xer_encoder; td->last_tag_form = asn1_DEF_OCTET_STRING.last_tag_form; td->elements = asn1_DEF_OCTET_STRING.elements; td->elements_count = asn1_DEF_OCTET_STRING.elements_count; td->specifics = asn1_DEF_OCTET_STRING.specifics; } +void +PrimitiveType_free(asn1_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + PrimitiveType_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +PrimitiveType_print(asn1_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + PrimitiveType_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + ber_dec_rval_t PrimitiveType_decode_ber(asn1_TYPE_descriptor_t *td, void **structure, void *bufptr, size_t size, int tag_mode) { @@ -52,7 +69,7 @@ PrimitiveType_decode_ber(asn1_TYPE_descriptor_t *td, return td->ber_decoder(td, structure, bufptr, size, tag_mode); } -der_enc_rval_t +asn_enc_rval_t PrimitiveType_encode_der(asn1_TYPE_descriptor_t *td, void *structure, int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, void *app_key) { @@ -60,18 +77,12 @@ PrimitiveType_encode_der(asn1_TYPE_descriptor_t *td, return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); } -int -PrimitiveType_print(asn1_TYPE_descriptor_t *td, const void *struct_ptr, - int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { - PrimitiveType_inherit_TYPE_descriptor(td); - return td->print_struct(td, struct_ptr, ilevel, cb, app_key); -} - -void -PrimitiveType_free(asn1_TYPE_descriptor_t *td, - void *struct_ptr, int contents_only) { +asn_enc_rval_t +PrimitiveType_encode_xer(asn1_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { PrimitiveType_inherit_TYPE_descriptor(td); - td->free_struct(td, struct_ptr, contents_only); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); } @@ -82,11 +93,13 @@ static ber_tlv_tag_t asn1_DEF_PrimitiveType_tags[] = { }; asn1_TYPE_descriptor_t asn1_DEF_PrimitiveType = { "PrimitiveType", + PrimitiveType_free, + PrimitiveType_print, PrimitiveType_constraint, PrimitiveType_decode_ber, PrimitiveType_encode_der, - PrimitiveType_print, - PrimitiveType_free, + 0, /* Not implemented yet */ + PrimitiveType_encode_xer, 0, /* Use generic outmost tag fetcher */ asn1_DEF_PrimitiveType_tags, sizeof(asn1_DEF_PrimitiveType_tags) @@ -146,11 +159,13 @@ static asn1_SEQUENCE_specifics_t asn1_DEF_ConstructedType_specs = { }; asn1_TYPE_descriptor_t asn1_DEF_ConstructedType = { "ConstructedType", + SEQUENCE_free, + SEQUENCE_print, SEQUENCE_constraint, SEQUENCE_decode_ber, SEQUENCE_encode_der, - SEQUENCE_print, - SEQUENCE_free, + 0, /* Not implemented yet */ + SEQUENCE_encode_xer, 0, /* Use generic outmost tag fetcher */ asn1_DEF_ConstructedType_tags, sizeof(asn1_DEF_ConstructedType_tags) @@ -177,11 +192,12 @@ typedef ConstructedType_t T_t; /*** <<< FUNC-DECLS [T] >>> ***/ extern asn1_TYPE_descriptor_t asn1_DEF_T; +asn_struct_free_f T_free; +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; -asn_struct_print_f T_print; -asn_struct_free_f T_free; +xer_type_encoder_f T_encode_xer; /*** <<< CODE [T] >>> ***/ @@ -201,16 +217,32 @@ T_constraint(asn1_TYPE_descriptor_t *td, const void *sptr, */ static void T_inherit_TYPE_descriptor(asn1_TYPE_descriptor_t *td) { - td->ber_decoder = asn1_DEF_ConstructedType.ber_decoder; - td->der_encoder = asn1_DEF_ConstructedType.der_encoder; td->free_struct = asn1_DEF_ConstructedType.free_struct; td->print_struct = asn1_DEF_ConstructedType.print_struct; + td->ber_decoder = asn1_DEF_ConstructedType.ber_decoder; + td->der_encoder = asn1_DEF_ConstructedType.der_encoder; + td->xer_decoder = asn1_DEF_ConstructedType.xer_decoder; + td->xer_encoder = asn1_DEF_ConstructedType.xer_encoder; td->last_tag_form = asn1_DEF_ConstructedType.last_tag_form; td->elements = asn1_DEF_ConstructedType.elements; td->elements_count = asn1_DEF_ConstructedType.elements_count; td->specifics = asn1_DEF_ConstructedType.specifics; } +void +T_free(asn1_TYPE_descriptor_t *td, + void *struct_ptr, int contents_only) { + T_inherit_TYPE_descriptor(td); + td->free_struct(td, struct_ptr, contents_only); +} + +int +T_print(asn1_TYPE_descriptor_t *td, const void *struct_ptr, + int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { + T_inherit_TYPE_descriptor(td); + return td->print_struct(td, struct_ptr, ilevel, cb, app_key); +} + ber_dec_rval_t T_decode_ber(asn1_TYPE_descriptor_t *td, void **structure, void *bufptr, size_t size, int tag_mode) { @@ -218,7 +250,7 @@ T_decode_ber(asn1_TYPE_descriptor_t *td, return td->ber_decoder(td, structure, bufptr, size, tag_mode); } -der_enc_rval_t +asn_enc_rval_t T_encode_der(asn1_TYPE_descriptor_t *td, void *structure, int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, void *app_key) { @@ -226,18 +258,12 @@ T_encode_der(asn1_TYPE_descriptor_t *td, return td->der_encoder(td, structure, tag_mode, tag, cb, app_key); } -int -T_print(asn1_TYPE_descriptor_t *td, const void *struct_ptr, - int ilevel, asn_app_consume_bytes_f *cb, void *app_key) { - T_inherit_TYPE_descriptor(td); - return td->print_struct(td, struct_ptr, ilevel, cb, app_key); -} - -void -T_free(asn1_TYPE_descriptor_t *td, - void *struct_ptr, int contents_only) { +asn_enc_rval_t +T_encode_xer(asn1_TYPE_descriptor_t *td, void *structure, + int ilevel, enum xer_encoder_flags_e flags, + asn_app_consume_bytes_f *cb, void *app_key) { T_inherit_TYPE_descriptor(td); - td->free_struct(td, struct_ptr, contents_only); + return td->xer_encoder(td, structure, ilevel, flags, cb, app_key); } @@ -249,11 +275,13 @@ static ber_tlv_tag_t asn1_DEF_T_tags[] = { }; asn1_TYPE_descriptor_t asn1_DEF_T = { "T", + T_free, + T_print, T_constraint, T_decode_ber, T_encode_der, - T_print, - T_free, + 0, /* Not implemented yet */ + T_encode_xer, 0, /* Use generic outmost tag fetcher */ asn1_DEF_T_tags, sizeof(asn1_DEF_T_tags) |