21 #ifndef INCLUDE_DATA_H_ 22 #define INCLUDE_DATA_H_ 26 #if defined(_MSC_VER) && !defined(__clang__) 34 #define RTL_433_NO_VLAs 38 #define restrict __restrict 185 #endif // INCLUDE_DATA_H_ data_t * data_make(const char *key, const char *pretty_key,...)
Constructs a structured data object.
Definition: data.c:273
data_t * data_prepend(data_t *first, const char *key, const char *pretty_key,...)
Adds to a structured data object, by prepending data.
Definition: data.c:291
unsigned retain
incremented on data_retain, data_free only frees if this is zero
Definition: data.h:64
size_t data_print_jsons(data_t *data, char *dst, size_t len)
Definition: data.c:959
void data_array_free(data_array_t *array)
Releases a data array.
Definition: data.c:309
void print_value(data_output_t *output, data_type_t type, void *value, char *format)
Definition: data.c:382
char * pretty_key
the name used for displaying data to user in with a nicer name
Definition: data.h:60
struct data_array data_array_t
struct data_output * data_output_syslog_create(const char *host, const char *port)
Definition: data.c:1101
void(* output_start)(struct data_output *output, const char **fields, int num_fields)
Definition: data.h:140
data_t * data_append(data_t *first, const char *key, const char *pretty_key,...)
Adds to a structured data object, by appending data.
Definition: data.c:282
data_t * data_retain(data_t *data)
Retain a structure object, returns the structure object passed in.
Definition: data.c:321
data_type_t
Definition: data.h:42
void data_output_poll(struct data_output *output)
Allows to polls an event loop, if necessary.
Definition: data.c:366
data_array_t * data_array(int num_values, data_type_t type, void *ptr)
Constructs an array from given data of the given uniform type.
Definition: data.c:163
pointer to data is stored
Definition: data.h:43
void print_array_value(data_output_t *output, data_array_t *array, char *format, int idx)
Definition: data.c:407
void * value
Definition: data.h:63
struct data_output data_output_t
struct data_output * data_output_csv_create(FILE *file)
Construct data output for CSV printer.
Definition: data.c:846
void(* print_int)(struct data_output *output, int data, char *format)
Definition: data.h:139
void data_free(data_t *data)
Releases a structure object if retain is zero, decrement retain otherwise.
Definition: data.c:328
FILE * file
Definition: data.h:143
struct data_output * data_output_kv_create(FILE *file)
Definition: data.c:669
pointer to integer is stored
Definition: data.h:44
pointer to an array of values is stored
Definition: data.h:47
void data_output_start(struct data_output *output, const char **fields, int num_fields)
Setup known field keys and start output, used by CSV only.
Definition: data.c:359
void(* output_poll)(struct data_output *output)
Definition: data.h:141
char * key
Definition: data.h:59
struct data * next
chaining to the next element in the linked list; NULL indicates end-of-list
Definition: data.h:65
indicates the following value is formatted
Definition: data.h:49
pointer to a string is stored
Definition: data.h:46
invalid
Definition: data.h:48
void(* print_array)(struct data_output *output, data_array_t *data, char *format)
Definition: data.h:136
struct data_output * data_output_json_create(FILE *file)
Definition: data.c:483
void data_output_print(struct data_output *output, data_t *data)
Prints a structured data object.
Definition: data.c:348
void(* output_free)(struct data_output *output)
Definition: data.h:142
void * values
Definition: data.h:55
void(* print_string)(struct data_output *output, const char *data, char *format)
Definition: data.h:137
void(* print_double)(struct data_output *output, double data, char *format)
Definition: data.h:138
void data_output_free(struct data_output *output)
Definition: data.c:373
char * format
if not null, contains special formatting string
Definition: data.h:62
data_type_t type
Definition: data.h:61
pointer to a double is stored
Definition: data.h:45
int num_values
Definition: data.h:53
data_type_t type
Definition: data.h:54