BOOLEAN_jer.c
Go to the documentation of this file.
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  */
9 #include <errno.h>
10 
11 /*
12  * Decode the chunk of JSON text encoding INTEGER.
13  */
14 static enum jer_pbd_rval
16  const void *chunk_buf, size_t chunk_size) {
17  BOOLEAN_t *st = (BOOLEAN_t *)sptr;
18  const char *p = (const char *)chunk_buf;
19 
20  (void)td;
21  (void)chunk_size;
22 
23  if(p[0] == 't' /* 'true' */) {
24  *st = 1;
25  return JPBD_BODY_CONSUMED;
26  } else if (p[0] == 'f' /* 'false' */) {
27  *st = 0;
28  return JPBD_BODY_CONSUMED;
29  } else {
30  return JPBD_BROKEN_ENCODING;
31  }
32 }
33 
34 
36 BOOLEAN_decode_jer(const asn_codec_ctx_t *opt_codec_ctx,
37  const asn_TYPE_descriptor_t *td,
38  const asn_jer_constraints_t* constraints,
39  void **sptr, const void *buf_ptr, size_t size) {
40  return jer_decode_primitive(opt_codec_ctx, td,
41  sptr, sizeof(BOOLEAN_t), buf_ptr, size,
43 }
44 
45 
48  const asn_jer_constraints_t *constraints,
49  const void *sptr, int ilevel, enum jer_encoder_flags_e flags,
50  asn_app_consume_bytes_f *cb, void *app_key) {
51  const BOOLEAN_t *st = (const BOOLEAN_t *)sptr;
52  asn_enc_rval_t er = {0, 0, 0};
53 
54  (void)ilevel;
55  (void)flags;
56 
57  if(!st) ASN__ENCODE_FAILED;
58 
59  if(*st) {
60  ASN__CALLBACK("true", 4);
61  } else {
62  ASN__CALLBACK("false", 5);
63  }
64 
65  ASN__ENCODED_OK(er);
66 cb_failed:
68 }
BOOLEAN_encode_jer
asn_enc_rval_t BOOLEAN_encode_jer(const asn_TYPE_descriptor_t *td, const asn_jer_constraints_t *constraints, const void *sptr, int ilevel, enum jer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, void *app_key)
Definition: BOOLEAN_jer.c:47
JPBD_BODY_CONSUMED
@ JPBD_BODY_CONSUMED
Definition: asn_codecs_prim.h:61
jer_pbd_rval
jer_pbd_rval
Definition: asn_codecs_prim.h:56
BOOLEAN.h
ASN__ENCODED_OK
#define ASN__ENCODED_OK(rval)
Definition: asn_codecs.h:67
asn_jer_constraints_s
Definition: jer_support.h:18
asn_enc_rval_s
Definition: asn_codecs.h:41
jer_encoder_flags_e
jer_encoder_flags_e
Definition: jer_encoder.h:20
ASN__CALLBACK
#define ASN__CALLBACK(buf, size)
Definition: asn_internal.h:108
asn_codecs_prim.h
ASN__ENCODE_FAILED
#define ASN__ENCODE_FAILED
Definition: asn_codecs.h:59
asn_TYPE_descriptor_s
Definition: constr_TYPE.h:224
BOOLEAN__jer_body_decode
static enum jer_pbd_rval BOOLEAN__jer_body_decode(const asn_TYPE_descriptor_t *td, void *sptr, const void *chunk_buf, size_t chunk_size)
Definition: BOOLEAN_jer.c:15
BOOLEAN_decode_jer
asn_dec_rval_t BOOLEAN_decode_jer(const asn_codec_ctx_t *opt_codec_ctx, const asn_TYPE_descriptor_t *td, const asn_jer_constraints_t *constraints, void **sptr, const void *buf_ptr, size_t size)
Definition: BOOLEAN_jer.c:36
jer_decode_primitive
asn_dec_rval_t jer_decode_primitive(const asn_codec_ctx_t *opt_codec_ctx, const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr, size_t struct_size, const void *buf_ptr, size_t size, jer_primitive_body_decoder_f *prim_body_decoder)
Definition: asn_codecs_prim_jer.c:118
JPBD_BROKEN_ENCODING
@ JPBD_BROKEN_ENCODING
Definition: asn_codecs_prim.h:59
asn_app_consume_bytes_f
int() asn_app_consume_bytes_f(const void *buffer, size_t size, void *application_specific_key)
Definition: asn_application.h:124
asn_internal.h
asn_codec_ctx_s
Definition: asn_codecs.h:23
asn_dec_rval_s
Definition: asn_codecs.h:86
BOOLEAN_t
unsigned BOOLEAN_t
Definition: BOOLEAN.h:19


etsi_its_spatem_ts_coding
Author(s): Jean-Pierre Busch , Guido Küppers , Lennart Reiher
autogenerated on Sun May 18 2025 02:29:28