src
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
*/
6
#include <
etsi_its_spatem_ts_coding/asn_internal.h
>
7
#include <
etsi_its_spatem_ts_coding/BOOLEAN.h
>
8
9
asn_dec_rval_t
10
BOOLEAN_decode_aper
(
const
asn_codec_ctx_t
*opt_codec_ctx,
const
asn_TYPE_descriptor_t
*td,
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
:
36
ASN__DECODE_STARVED
;
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
46
asn_enc_rval_t
47
BOOLEAN_encode_aper
(
const
asn_TYPE_descriptor_t
*td,
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))
58
ASN__ENCODE_FAILED
;
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