ITS
asn_codecs_prim.h
Go to the documentation of this file.
1 /*-
2  * Copyright (c) 2004 Lev Walkin <vlm@lionet.info>. All rights reserved.
3  * Redistribution and modifications are permitted subject to BSD license.
4  */
5 #ifndef ASN_CODECS_PRIM_H
6 #define ASN_CODECS_PRIM_H
7 
8 #include <asn_application.h>
9 
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13 
14 typedef struct ASN__PRIMITIVE_TYPE_s {
15  uint8_t *buf; /* Buffer with consecutive primitive encoding bytes */
16  int size; /* Size of the buffer */
17 } ASN__PRIMITIVE_TYPE_t; /* Do not use this type directly! */
18 
22 
23 /*
24  * A callback specification for the xer_decode_primitive() function below.
25  */
27  XPBD_SYSTEM_FAILURE, /* System failure (memory shortage, etc) */
28  XPBD_DECODER_LIMIT, /* Hit some decoder limitation or deficiency */
29  XPBD_BROKEN_ENCODING, /* Encoding of a primitive body is broken */
30  XPBD_NOT_BODY_IGNORE, /* Not a body format, but safe to ignore */
31  XPBD_BODY_CONSUMED /* Body is recognized and consumed */
32 };
34  (asn_TYPE_descriptor_t *td, void *struct_ptr,
35  const void *chunk_buf, size_t chunk_size);
36 
37 /*
38  * Specific function to decode simple primitive types.
39  * Also see xer_decode_general() in xer_decoder.h
40  */
42  asn_TYPE_descriptor_t *type_descriptor,
43  void **struct_ptr, size_t struct_size,
44  const char *opt_mname,
45  const void *buf_ptr, size_t size,
46  xer_primitive_body_decoder_f *prim_body_decoder
47 );
48 
49 #ifdef __cplusplus
50 }
51 #endif
52 
53 #endif /* ASN_CODECS_PRIM_H */
asn_dec_rval_t xer_decode_primitive(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr, size_t struct_size, const char *opt_mname, const void *buf_ptr, size_t size, xer_primitive_body_decoder_f *prim_body_decoder)
asn_dec_rval_t() ber_type_decoder_f(struct asn_codec_ctx_s *opt_codec_ctx, struct asn_TYPE_descriptor_s *type_descriptor, void **struct_ptr, const void *buf_ptr, size_t size, int tag_mode)
Definition: ber_decoder.h:32
struct ASN__PRIMITIVE_TYPE_s ASN__PRIMITIVE_TYPE_t
void() asn_struct_free_f(struct asn_TYPE_descriptor_s *type_descriptor, void *struct_ptr, int free_contents_only)
Definition: constr_TYPE.h:53
asn_enc_rval_t() der_type_encoder_f(struct asn_TYPE_descriptor_s *type_descriptor, void *struct_ptr, int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *consume_bytes_cb, void *app_key)
Definition: der_encoder.h:37
der_type_encoder_f der_encode_primitive
xer_pbd_rval
enum xer_pbd_rval() xer_primitive_body_decoder_f(asn_TYPE_descriptor_t *td, void *struct_ptr, const void *chunk_buf, size_t chunk_size)
ber_type_decoder_f ber_decode_primitive
asn_struct_free_f ASN__PRIMITIVE_TYPE_free