29#ifndef LIBASTERIX_SUBFIELD_H
30#define LIBASTERIX_SUBFIELD_H
60#define AST_MAP_SUBFIELD_TYPE_EX(category_name, category_value, dataitem, subfield) \
61 I ## category_name ## _ ## dataitem ## _ ## S ## subfield = category_value ## dataitem ## 0 ## subfield,
66typedef enum _ast_subfield_type_t
71#define AST_MAP_SUBFIELD_TYPE(category, dataitem, subfield) AST_MAP_SUBFIELD_TYPE_EX(00 ## category, category, dataitem, subfield)
112#undef AST_MAP_SUBFIELD_TYPE
113#define AST_MAP_SUBFIELD_TYPE(category, dataitem, subfield) AST_MAP_SUBFIELD_TYPE_EX(0 ## category, category, dataitem, subfield)
365typedef struct _ast_subfield_t
378#define AST_MAX_SUBFIELD_SIZE 32
390#define AST_SUBFIELD_SUMMARY_PREFERED_CHARS summary_size
399#define AST_SUBFIELD_BIN_HTML_PREFERED_CHARS (AST_MAX_SUBFIELD_SIZE * 128 + 64)
440#define AST_MAX_SUBFIELDS 35
443typedef struct _ast_dataitem_subfields_t
ASTERIX Field Specification (FSPEC).
ast_dataitem_type_t
Definition of data item type in each category.
Definition dataitem.h:86
size_t ast_dataitem_subfields_get_size(const unsigned char *buffer, const size_t bufsize, const ast_dataitem_type_t dataitem)
Get size function.
void ast_dataitem_subfields_get_detail_html(char *detail, const size_t detail_size, const ast_dataitem_t di)
Get detail function.
void ast_dataitem_subfields_get_summary(char *summary, const size_t summary_size, const ast_dataitem_t di)
Get summary function.
size_t ast_dataitem_subfields_get_number(const ast_dataitem_type_t type)
Get number of subfields function.
ast_dataitem_subfields_t ast_dataitem_subfields_decode(const ast_dataitem_t di)
Decode function.
#define AST_MAX_SUBFIELDS
Maximum number of subfields in a data item.
Definition subfield.h:440
ast_subfield_type_t
Definition of subfield type in each data item.
Definition subfield.h:67
size_t ast_subfield_get_size(const unsigned char *buffer, const size_t bufsize, const ast_subfield_type_t type)
Get size of subfield.
void ast_subfield_get_bin_html(char *html, const size_t html_size, const ast_subfield_t sf)
Get binary HTML snippet of subfield.
const char * ast_subfield_get_id(const ast_subfield_type_t type)
Get ID string of subfield.
const char * ast_subfield_get_name(const ast_subfield_type_t type)
Get name of subfield.
void ast_subfield_get_summary(char *summary, const size_t summary_size, const ast_dataitem_t di, const ast_subfield_type_t type)
Get summary of subfield.
void ast_subfield_get_detail_html(char *detail, const size_t detail_size, const ast_dataitem_t di, const ast_subfield_type_t type)
Get detail of subfield, in html format.
@ INULLFIELD
Null subfield.
Definition subfield.h:68
Data Item - Subfields.
Definition subfield.h:444
ast_subfield_t subfields[35]
Subfields.
Definition subfield.h:448
size_t n_subfields
Number of subfields.
Definition subfield.h:449
bool valid
True, if data item is correctly decoded.
Definition subfield.h:445
ast_fspec_t fspec
Field specification.
Definition subfield.h:447
Dataitem.
Definition dataitem.h:515
Field Specification (FSPEC).
Definition fspec.h:56
Subfield struct.
Definition subfield.h:366
size_t size
Size of subfield.
Definition subfield.h:370
bool valid
True, if subfield is correctly decoded.
Definition subfield.h:374
ast_subfield_type_t type
Type of subfield.
Definition subfield.h:372
const unsigned char * data
Address of subfield.
Definition subfield.h:369
bool existing
True, if the subfield is present.
Definition subfield.h:367
#define AST_MAP_SUBFIELD_TYPE(category, dataitem, subfield)
Definition subfield.h:71