SIM-115: update simulator to use latest E2SM KPM version 3
[sim/e2-interface.git] / e2sim / asn1c / NULL_xer.c
1 /*
2  * Copyright (c) 2017 Lev Walkin <vlm@lionet.info>.
3  * All rights reserved.
4  * Redistribution and modifications are permitted subject to BSD license.
5  */
6 #include <asn_internal.h>
7 #include <asn_codecs_prim.h>
8 #include <NULL.h>
9
10 asn_enc_rval_t
11 NULL_encode_xer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
12                 enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb,
13                 void *app_key) {
14     asn_enc_rval_t er = {0,0,0};
15
16     (void)td;
17     (void)sptr;
18     (void)ilevel;
19     (void)flags;
20     (void)cb;
21     (void)app_key;
22
23     /* XMLNullValue is empty */
24     er.encoded = 0;
25     ASN__ENCODED_OK(er);
26 }
27
28
29 static enum xer_pbd_rval
30 NULL__xer_body_decode(const asn_TYPE_descriptor_t *td, void *sptr,
31                       const void *chunk_buf, size_t chunk_size) {
32     (void)td;
33     (void)sptr;
34     (void)chunk_buf;  /* Going to be empty according to the rules below. */
35
36     /*
37      * There must be no content in self-terminating <NULL/> tag.
38      */
39     if(chunk_size)
40         return XPBD_BROKEN_ENCODING;
41     else
42         return XPBD_BODY_CONSUMED;
43 }
44
45 asn_dec_rval_t
46 NULL_decode_xer(const asn_codec_ctx_t *opt_codec_ctx,
47                 const asn_TYPE_descriptor_t *td, void **sptr,
48                 const char *opt_mname, const void *buf_ptr, size_t size) {
49     return xer_decode_primitive(opt_codec_ctx, td,
50         sptr, sizeof(NULL_t), opt_mname, buf_ptr, size,
51         NULL__xer_body_decode);
52 }