BOOLEAN_aper.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  */
8 
11  const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) {
12  asn_dec_rval_t rv;
13  BOOLEAN_t *st = (BOOLEAN_t *)*sptr;
14 
15  (void)opt_codec_ctx;
16  (void)constraints;
17  (void)td;
18 
19  if(!st) {
20  st = (BOOLEAN_t *)(*sptr = MALLOC(sizeof(*st)));
21  if(!st) ASN__DECODE_FAILED;
22  }
23 
24  /*
25  * Extract a single bit
26  */
27  switch(per_get_few_bits(pd, 1)) {
28  case 1:
29  *st = 1;
30  break;
31  case 0:
32  *st = 0;
33  break;
34  case -1:
35  default:
37  }
38 
39  ASN_DEBUG("%s decoded as %s", td->name, *st ? "TRUE" : "FALSE");
40 
41  rv.code = RC_OK;
42  rv.consumed = 1;
43  return rv;
44 }
45 
48  const asn_per_constraints_t *constraints,
49  const void *sptr, asn_per_outp_t *po) {
50  const BOOLEAN_t *st = (const BOOLEAN_t *)sptr;
51  asn_enc_rval_t er = { 0, 0, 0 };
52 
53  (void)constraints;
54 
55  if(!st) ASN__ENCODE_FAILED;
56 
57  if(per_put_few_bits(po, *st ? 1 : 0, 1))
59 
60  ASN__ENCODED_OK(er);
61 }
asn_bit_outp_s
Definition: asn_bit_data.h:56
BOOLEAN_encode_aper
asn_enc_rval_t BOOLEAN_encode_aper(const asn_TYPE_descriptor_t *td, const asn_per_constraints_t *constraints, const void *sptr, asn_per_outp_t *po)
Definition: BOOLEAN_aper.c:47
BOOLEAN.h
ASN__ENCODED_OK
#define ASN__ENCODED_OK(rval)
Definition: asn_codecs.h:67
asn_TYPE_descriptor_s::name
const char * name
Definition: constr_TYPE.h:225
asn_enc_rval_s
Definition: asn_codecs.h:41
BOOLEAN_decode_aper
asn_dec_rval_t BOOLEAN_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, const asn_TYPE_descriptor_t *td, const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd)
Definition: BOOLEAN_aper.c:10
per_get_few_bits
#define per_get_few_bits(data, bits)
Definition: per_support.h:39
asn_bit_data_s
Definition: asn_bit_data.h:17
ASN__ENCODE_FAILED
#define ASN__ENCODE_FAILED
Definition: asn_codecs.h:59
asn_TYPE_descriptor_s
Definition: constr_TYPE.h:224
RC_OK
@ RC_OK
Definition: asn_codecs.h:82
asn_dec_rval_s::consumed
size_t consumed
Definition: asn_codecs.h:88
MALLOC
#define MALLOC(size)
Definition: asn_internal.h:38
ASN__DECODE_STARVED
#define ASN__DECODE_STARVED
Definition: asn_codecs.h:97
asn_internal.h
asn_codec_ctx_s
Definition: asn_codecs.h:23
asn_dec_rval_s
Definition: asn_codecs.h:86
ASN__DECODE_FAILED
#define ASN__DECODE_FAILED
Definition: asn_codecs.h:90
asn_per_constraints_s
Definition: per_support.h:30
BOOLEAN_t
unsigned BOOLEAN_t
Definition: BOOLEAN.h:19
per_put_few_bits
#define per_put_few_bits(out, bits, obits)
Definition: per_support.h:46
asn_dec_rval_s::code
enum asn_dec_rval_code_e code
Definition: asn_codecs.h:87


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