src
constr_SEQUENCE_OF_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
*/
6
#include <
etsi_its_cam_ts_coding/asn_internal.h
>
7
#include <
etsi_its_cam_ts_coding/constr_SEQUENCE_OF.h
>
8
#include <
etsi_its_cam_ts_coding/asn_SEQUENCE_OF.h
>
9
10
asn_enc_rval_t
11
SEQUENCE_OF_encode_jer
(
const
asn_TYPE_descriptor_t
*td,
const
asn_jer_constraints_t
*constraints,
12
const
void
*sptr,
int
ilevel,
enum
jer_encoder_flags_e
flags,
13
asn_app_consume_bytes_f
*cb,
void
*app_key) {
14
asn_enc_rval_t
er = {0,0,0};
15
const
asn_SET_OF_specifics_t
*specs = (
const
asn_SET_OF_specifics_t
*)td->
specifics
;
16
const
asn_TYPE_member_t
*elm = td->
elements
;
17
const
asn_anonymous_sequence_ *list =
_A_CSEQUENCE_FROM_VOID
(sptr);
18
int
jmin = (flags &
JER_F_MINIFIED
);
19
int
i;
20
21
if
(!sptr)
ASN__ENCODE_FAILED
;
22
23
er.
encoded
= 0;
24
ASN__CALLBACK
(
"["
, 1);
25
26
for
(i = 0; i < list->count; i++) {
27
asn_enc_rval_t
tmper = {0,0,0};
28
void
*memb_ptr = list->array[i];
29
if
(!memb_ptr)
continue
;
30
31
if
(!jmin)
ASN__TEXT_INDENT
(1, ilevel + 1);
32
tmper = elm->type->op->jer_encoder(elm->type,
33
elm->encoding_constraints.jer_constraints,
34
memb_ptr, ilevel + 1,
35
flags, cb, app_key);
36
if
(tmper.
encoded
== -1)
return
tmper;
37
er.
encoded
+= tmper.
encoded
;
38
if
(tmper.
encoded
== 0 && specs->
as_XMLValueList
) {
39
const
char
*name = elm->type->xml_tag;
40
size_t
len = strlen(name);
41
if
(!jmin)
ASN__TEXT_INDENT
(1, ilevel + 1);
42
ASN__CALLBACK3
(
"\""
, 1, name, len,
"\""
, 1);
43
}
44
45
if
(i != list->count - 1) {
46
ASN__CALLBACK
(
","
, 1);
47
}
48
}
49
50
if
(!jmin)
ASN__TEXT_INDENT
(1, ilevel);
51
ASN__CALLBACK
(
"]"
, 1);
52
53
ASN__ENCODED_OK
(er);
54
cb_failed:
55
ASN__ENCODE_FAILED
;
56
}
_A_CSEQUENCE_FROM_VOID
#define _A_CSEQUENCE_FROM_VOID(ptr)
Definition:
asn_SEQUENCE_OF.h:46
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
JER_F_MINIFIED
@ JER_F_MINIFIED
Definition:
jer_encoder.h:23
ASN__CALLBACK
#define ASN__CALLBACK(buf, size)
Definition:
asn_internal.h:108
ASN__CALLBACK3
#define ASN__CALLBACK3(buf1, size1, buf2, size2, buf3, size3)
Definition:
asn_internal.h:112
ASN__ENCODE_FAILED
#define ASN__ENCODE_FAILED
Definition:
asn_codecs.h:59
asn_TYPE_descriptor_s
Definition:
constr_TYPE.h:224
ASN__TEXT_INDENT
#define ASN__TEXT_INDENT(nl, level)
Definition:
asn_internal.h:117
asn_TYPE_descriptor_s::specifics
const void * specifics
Definition:
constr_TYPE.h:259
asn_SET_OF_specifics_s::as_XMLValueList
int as_XMLValueList
Definition:
constr_SET_OF.h:23
constr_SEQUENCE_OF.h
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
SEQUENCE_OF_encode_jer
asn_enc_rval_t SEQUENCE_OF_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:
constr_SEQUENCE_OF_jer.c:11
asn_internal.h
asn_TYPE_descriptor_s::elements
struct asn_TYPE_member_s * elements
Definition:
constr_TYPE.h:252
asn_enc_rval_s::encoded
ssize_t encoded
Definition:
asn_codecs.h:47
asn_SEQUENCE_OF.h
asn_TYPE_member_s
Definition:
constr_TYPE.h:272
asn_SET_OF_specifics_s
Definition:
constr_SET_OF.h:15
etsi_its_cam_ts_coding
Author(s): Jean-Pierre Busch
, Guido Küppers
, Lennart Reiher
autogenerated on Sun May 18 2025 02:21:23