Classes | Macros | Functions
jer_decoder.c File Reference
#include <etsi_its_cam_ts_coding/asn_application.h>
#include <etsi_its_cam_ts_coding/asn_internal.h>
#include <etsi_its_cam_ts_coding/jer_support.h>
Include dependency graph for jer_decoder.c:

Go to the source code of this file.

Classes

struct  jer__cb_arg
 

Macros

#define ADVANCE(num_bytes)
 
#define CCOMMA   0x2c /* ',' */
 
#define CQUOTE   0x22 /* '"' */
 
#define JER_GOT_BODY(chunk_buf, chunk_size, size)
 
#define JER_GOT_EMPTY()
 
#define LCBRAC   0x7b /* '{' */
 
#define LSBRAC   0x5b /* '[' */
 
#define RCBRAC   0x7d /* '}' */
 
#define RETURN(_code)
 
#define RSBRAC   0x5d /* ']' */
 

Functions

static int jer__token_cb (pjson_chunk_type_e type, const void *_chunk_data, size_t _chunk_size, void *key)
 
jer_check_sym_e jer_check_sym (const void *buf_ptr, int size, const char *need_key)
 
asn_dec_rval_t jer_decode (const asn_codec_ctx_t *opt_codec_ctx, const asn_TYPE_descriptor_t *td, void **struct_ptr, const void *buffer, size_t size)
 
asn_dec_rval_t jer_decode_general (const asn_codec_ctx_t *opt_codec_ctx, asn_struct_ctx_t *ctx, void *struct_key, const void *buf_ptr, size_t size, int(*opt_unexpected_key_decoder)(void *struct_key, const void *chunk_buf, size_t chunk_size), ssize_t(*body_receiver)(void *struct_key, const void *chunk_buf, size_t chunk_size, int have_more))
 
ssize_t jer_next_token (int *stateContext, const void *buffer, size_t size, pjer_chunk_type_e *ch_type)
 
int jer_skip_unknown (jer_check_sym_e scv, ber_tlv_len_t *depth)
 
size_t jer_whitespace_span (const void *chunk_buf, size_t chunk_size)
 

Macro Definition Documentation

◆ ADVANCE

#define ADVANCE (   num_bytes)
Value:
do { \
size_t num = (num_bytes); \
buf_ptr = ((const char *)buf_ptr) + num; \
size -= num; \
consumed_myself += num; \
} while(0)

Definition at line 175 of file jer_decoder.c.

◆ CCOMMA

#define CCOMMA   0x2c /* ',' */

Definition at line 111 of file jer_decoder.c.

◆ CQUOTE

#define CQUOTE   0x22 /* '"' */

Definition at line 110 of file jer_decoder.c.

◆ JER_GOT_BODY

#define JER_GOT_BODY (   chunk_buf,
  chunk_size,
  size 
)
Value:
do { \
ssize_t converted_size = body_receiver \
(struct_key, chunk_buf, chunk_size, \
(size_t)chunk_size <= size); \
if(converted_size == -1) RETURN(RC_FAIL); \
if(converted_size == 0 \
&& size == (size_t)chunk_size) \
chunk_size = converted_size; \
} while(0)

Definition at line 191 of file jer_decoder.c.

◆ JER_GOT_EMPTY

#define JER_GOT_EMPTY ( )
Value:
do { \
if(body_receiver(struct_key, 0, 0, size > 0) == -1) \
RETURN(RC_FAIL); \
} while(0)

Definition at line 201 of file jer_decoder.c.

◆ LCBRAC

#define LCBRAC   0x7b /* '{' */

Definition at line 108 of file jer_decoder.c.

◆ LSBRAC

#define LSBRAC   0x5b /* '[' */

Definition at line 112 of file jer_decoder.c.

◆ RCBRAC

#define RCBRAC   0x7d /* '}' */

Definition at line 109 of file jer_decoder.c.

◆ RETURN

#define RETURN (   _code)
Value:
do { \
rval.code = _code; \
rval.consumed = consumed_myself; \
if(rval.code != RC_OK) \
ASN_DEBUG("Failed with %d", rval.code); \
return rval; \
} while(0)

Definition at line 183 of file jer_decoder.c.

◆ RSBRAC

#define RSBRAC   0x5d /* ']' */

Definition at line 113 of file jer_decoder.c.

Function Documentation

◆ jer__token_cb()

static int jer__token_cb ( pjson_chunk_type_e  type,
const void *  _chunk_data,
size_t  _chunk_size,
void *  key 
)
static

Definition at line 51 of file jer_decoder.c.

◆ jer_check_sym()

jer_check_sym_e jer_check_sym ( const void *  buf_ptr,
int  size,
const char *  need_key 
)

Definition at line 116 of file jer_decoder.c.

◆ jer_decode()

asn_dec_rval_t jer_decode ( const asn_codec_ctx_t opt_codec_ctx,
const asn_TYPE_descriptor_t td,
void **  struct_ptr,
const void *  buffer,
size_t  size 
)

Definition at line 14 of file jer_decoder.c.

◆ jer_decode_general()

asn_dec_rval_t jer_decode_general ( const asn_codec_ctx_t opt_codec_ctx,
asn_struct_ctx_t ctx,
void *  struct_key,
const void *  buf_ptr,
size_t  size,
int(*)(void *struct_key, const void *chunk_buf, size_t chunk_size)  opt_unexpected_key_decoder,
ssize_t(*)(void *struct_key, const void *chunk_buf, size_t chunk_size, int have_more)  body_receiver 
)

Definition at line 210 of file jer_decoder.c.

◆ jer_next_token()

ssize_t jer_next_token ( int *  stateContext,
const void *  buffer,
size_t  size,
pjer_chunk_type_e ch_type 
)

Definition at line 64 of file jer_decoder.c.

◆ jer_skip_unknown()

int jer_skip_unknown ( jer_check_sym_e  scv,
ber_tlv_len_t depth 
)

Definition at line 299 of file jer_decoder.c.

◆ jer_whitespace_span()

size_t jer_whitespace_span ( const void *  chunk_buf,
size_t  chunk_size 
)

Definition at line 273 of file jer_decoder.c.

RC_WMORE
@ RC_WMORE
Definition: asn_codecs.h:83
RETURN
#define RETURN(_code)
Definition: jer_decoder.c:183
RC_OK
@ RC_OK
Definition: asn_codecs.h:82
size_t
static void ssize_t size_t
Definition: asn_internal.h:96
RC_FAIL
@ RC_FAIL
Definition: asn_codecs.h:84


etsi_its_cam_ts_coding
Author(s): Jean-Pierre Busch , Guido Küppers , Lennart Reiher
autogenerated on Sun May 18 2025 02:21:24