src
per_encoder.c
Go to the documentation of this file.
1
#include <
etsi_its_denm_coding/asn_internal.h
>
2
#include <
etsi_its_denm_coding/per_encoder.h
>
3
4
int
5
ignore_output
(
const
void
*data,
size_t
size,
void
*app_key) {
6
(void)data;
7
(void)size;
8
(void)app_key;
9
return
0;
10
}
11
12
int
13
encode_dyn_cb
(
const
void
*buffer,
size_t
size,
void
*
key
) {
14
enc_dyn_arg
*arg =
key
;
15
if
(arg->
length
+ size >= arg->
allocated
) {
16
size_t
new_size = arg->
allocated
? arg->
allocated
: 8;
17
void
*p;
18
19
do
{
20
new_size <<= 2;
21
}
while
(arg->
length
+ size >= new_size);
22
23
p =
REALLOC
(arg->
buffer
, new_size);
24
if
(!p) {
25
FREEMEM
(arg->
buffer
);
26
memset(arg, 0,
sizeof
(*arg));
27
return
-1;
28
}
29
arg->
buffer
= p;
30
arg->
allocated
= new_size;
31
}
32
memcpy(((
char
*)arg->
buffer
) + arg->
length
, buffer, size);
33
arg->
length
+= size;
34
return
0;
35
}
per_encoder.h
encode_dyn_cb
int encode_dyn_cb(const void *buffer, size_t size, void *key)
Definition:
per_encoder.c:13
enc_dyn_arg::allocated
size_t allocated
Definition:
per_encoder.h:30
REALLOC
#define REALLOC(oldptr, size)
Definition:
asn_internal.h:39
FREEMEM
#define FREEMEM(ptr)
Definition:
asn_internal.h:40
enc_dyn_arg::length
size_t length
Definition:
per_encoder.h:29
enc_dyn_arg
Definition:
per_encoder.h:27
enc_dyn_arg::buffer
void * buffer
Definition:
per_encoder.h:28
ignore_output
int ignore_output(const void *data, size_t size, void *app_key)
Definition:
per_encoder.c:5
key
static void ssize_t void * key
Definition:
asn_internal.h:96
asn_internal.h
etsi_its_denm_coding
Author(s): Jean-Pierre Busch
, Guido Küppers
, Lennart Reiher
autogenerated on Sun May 18 2025 02:23:48