src
BOOLEAN_uper.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_denm_coding/asn_internal.h
>
7
#include <
etsi_its_denm_coding/BOOLEAN.h
>
8
9
asn_dec_rval_t
10
BOOLEAN_decode_uper
(
const
asn_codec_ctx_t
*opt_codec_ctx,
11
const
asn_TYPE_descriptor_t
*td,
12
const
asn_per_constraints_t
*constraints,
void
**sptr,
13
asn_per_data_t
*pd) {
14
asn_dec_rval_t
rv;
15
BOOLEAN_t
*st = (
BOOLEAN_t
*)*sptr;
16
17
(void)opt_codec_ctx;
18
(void)td;
19
(void)constraints;
20
21
if
(!st) {
22
st = (
BOOLEAN_t
*)(*sptr =
MALLOC
(
sizeof
(*st)));
23
if
(!st)
ASN__DECODE_FAILED
;
24
}
25
26
/*
27
* Extract a single bit
28
*/
29
switch
(
per_get_few_bits
(pd, 1)) {
30
case
1: *st = 1;
break
;
31
case
0: *st = 0;
break
;
32
case
-1:
default
:
ASN__DECODE_STARVED
;
33
}
34
35
ASN_DEBUG(
"%s decoded as %s"
, td->
name
, *st ?
"TRUE"
:
"FALSE"
);
36
37
rv.
code
=
RC_OK
;
38
rv.
consumed
= 1;
39
return
rv;
40
}
41
42
43
asn_enc_rval_t
44
BOOLEAN_encode_uper
(
const
asn_TYPE_descriptor_t
*td,
45
const
asn_per_constraints_t
*constraints,
const
void
*sptr,
46
asn_per_outp_t
*po) {
47
const
BOOLEAN_t
*st = (
const
BOOLEAN_t
*)sptr;
48
asn_enc_rval_t
er = { 0, 0, 0 };
49
50
(void)constraints;
51
52
if
(!st)
ASN__ENCODE_FAILED
;
53
54
if
(
per_put_few_bits
(po, *st ? 1 : 0, 1))
55
ASN__ENCODE_FAILED
;
56
57
ASN__ENCODED_OK
(er);
58
}
asn_bit_outp_s
Definition:
asn_bit_data.h:56
BOOLEAN_encode_uper
asn_enc_rval_t BOOLEAN_encode_uper(const asn_TYPE_descriptor_t *td, const asn_per_constraints_t *constraints, const void *sptr, asn_per_outp_t *po)
Definition:
BOOLEAN_uper.c:44
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
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
BOOLEAN_decode_uper
asn_dec_rval_t BOOLEAN_decode_uper(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_uper.c:10
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_denm_coding
Author(s): Jean-Pierre Busch
, Guido Küppers
, Lennart Reiher
autogenerated on Sun May 18 2025 02:23:47