luasandbox
1.4.0
Generic Lua sandbox for dynamic data analysis
|
Heka message representation. More...
#include <stdbool.h>
#include <stddef.h>
#include "input_buffer.h"
#include "output_buffer.h"
#include "string.h"
#include "util.h"
Go to the source code of this file.
Classes | |
struct | lsb_heka_field |
struct | lsb_heka_message |
struct | lsb_read_value |
Macros | |
#define | LSB_UUID_SIZE 16 |
#define | LSB_UUID_STR_SIZE 36 |
#define | LSB_HDR_FRAME_SIZE 3 |
#define | LSB_MIN_HDR_SIZE 14 |
#define | LSB_MAX_HDR_SIZE (255 + LSB_HDR_FRAME_SIZE) |
#define | LSB_UUID "Uuid" |
#define | LSB_TIMESTAMP "Timestamp" |
#define | LSB_TYPE "Type" |
#define | LSB_LOGGER "Logger" |
#define | LSB_SEVERITY "Severity" |
#define | LSB_PAYLOAD "Payload" |
#define | LSB_ENV_VERSION "EnvVersion" |
#define | LSB_PID "Pid" |
#define | LSB_HOSTNAME "Hostname" |
#define | LSB_FIELDS "Fields" |
#define | LSB_RAW "raw" |
#define | LSB_FRAMED "framed" |
#define | LSB_SIZE "size" |
Typedefs | |
typedef struct lsb_heka_field | lsb_heka_field |
typedef struct lsb_heka_message | lsb_heka_message |
Enumerations | |
enum | lsb_pb_message { LSB_PB_UUID = 1, LSB_PB_TIMESTAMP = 2, LSB_PB_TYPE = 3, LSB_PB_LOGGER = 4, LSB_PB_SEVERITY = 5, LSB_PB_PAYLOAD = 6, LSB_PB_ENV_VERSION = 7, LSB_PB_PID = 8, LSB_PB_HOSTNAME = 9, LSB_PB_FIELDS = 10 } |
enum | lsb_pb_field { LSB_PB_NAME = 1, LSB_PB_VALUE_TYPE = 2, LSB_PB_REPRESENTATION = 3, LSB_PB_VALUE_STRING = 4, LSB_PB_VALUE_BYTES = 5, LSB_PB_VALUE_INTEGER = 6, LSB_PB_VALUE_DOUBLE = 7, LSB_PB_VALUE_BOOL = 8 } |
enum | lsb_pb_value_types { LSB_PB_STRING = 0, LSB_PB_BYTES = 1, LSB_PB_INTEGER = 2, LSB_PB_DOUBLE = 3, LSB_PB_BOOL = 4 } |
enum | lsb_read_type { LSB_READ_NIL, LSB_READ_NUMERIC, LSB_READ_STRING, LSB_READ_BOOL } |
Functions | |
LSB_UTIL_EXPORT lsb_err_value | lsb_init_heka_message (lsb_heka_message *m, int num_fields) |
Zero the structure and allocate memory for at least 'size' fields. More... | |
LSB_UTIL_EXPORT void | lsb_free_heka_message (lsb_heka_message *m) |
Frees the memory allocated for the message fields. More... | |
LSB_UTIL_EXPORT void | lsb_clear_heka_message (lsb_heka_message *m) |
Resets the message headers and fields zeroing the allocated memory. More... | |
LSB_UTIL_EXPORT bool | lsb_find_heka_message (lsb_heka_message *m, lsb_input_buffer *ib, bool decode, size_t *discarded_bytes, lsb_logger *logger) |
Locates a framed Heka message in an input buffer. More... | |
LSB_UTIL_EXPORT bool | lsb_decode_heka_message (lsb_heka_message *m, const char *buf, size_t len, lsb_logger *logger) |
Decodes an array of bytes into a Heka message. More... | |
LSB_UTIL_EXPORT bool | lsb_read_heka_field (const lsb_heka_message *m, lsb_const_string *name, int fi, int ai, lsb_read_value *val) |
Reads a dynamic field from the Heka message. More... | |
LSB_UTIL_EXPORT lsb_err_value | lsb_write_heka_uuid (lsb_output_buffer *ob, const char *uuid, size_t len) |
Writes a binary UUID to the output buffer. More... | |
LSB_UTIL_EXPORT size_t | lsb_write_heka_header (char *buf, size_t len) |
Writes the Heka framing header to the specified buffer. More... | |
Heka message representation.
Definition in file heka_message.h.
#define LSB_ENV_VERSION "EnvVersion" |
Definition at line 32 of file heka_message.h.
#define LSB_FIELDS "Fields" |
Definition at line 35 of file heka_message.h.
#define LSB_FRAMED "framed" |
Definition at line 37 of file heka_message.h.
#define LSB_HDR_FRAME_SIZE 3 |
Definition at line 22 of file heka_message.h.
#define LSB_HOSTNAME "Hostname" |
Definition at line 34 of file heka_message.h.
#define LSB_LOGGER "Logger" |
Definition at line 29 of file heka_message.h.
#define LSB_MAX_HDR_SIZE (255 + LSB_HDR_FRAME_SIZE) |
Definition at line 24 of file heka_message.h.
#define LSB_MIN_HDR_SIZE 14 |
Definition at line 23 of file heka_message.h.
#define LSB_PAYLOAD "Payload" |
Definition at line 31 of file heka_message.h.
#define LSB_PID "Pid" |
Definition at line 33 of file heka_message.h.
#define LSB_RAW "raw" |
Definition at line 36 of file heka_message.h.
#define LSB_SEVERITY "Severity" |
Definition at line 30 of file heka_message.h.
#define LSB_SIZE "size" |
Definition at line 38 of file heka_message.h.
#define LSB_TIMESTAMP "Timestamp" |
Definition at line 27 of file heka_message.h.
#define LSB_TYPE "Type" |
Definition at line 28 of file heka_message.h.
#define LSB_UUID "Uuid" |
Definition at line 26 of file heka_message.h.
#define LSB_UUID_SIZE 16 |
Definition at line 20 of file heka_message.h.
#define LSB_UUID_STR_SIZE 36 |
Definition at line 21 of file heka_message.h.
typedef struct lsb_heka_field lsb_heka_field |
typedef struct lsb_heka_message lsb_heka_message |
enum lsb_pb_field |
Enumerator | |
---|---|
LSB_PB_NAME | |
LSB_PB_VALUE_TYPE | |
LSB_PB_REPRESENTATION | |
LSB_PB_VALUE_STRING | |
LSB_PB_VALUE_BYTES | |
LSB_PB_VALUE_INTEGER | |
LSB_PB_VALUE_DOUBLE | |
LSB_PB_VALUE_BOOL |
Definition at line 53 of file heka_message.h.
enum lsb_pb_message |
Enumerator | |
---|---|
LSB_PB_UUID | |
LSB_PB_TIMESTAMP | |
LSB_PB_TYPE | |
LSB_PB_LOGGER | |
LSB_PB_SEVERITY | |
LSB_PB_PAYLOAD | |
LSB_PB_ENV_VERSION | |
LSB_PB_PID | |
LSB_PB_HOSTNAME | |
LSB_PB_FIELDS |
Definition at line 40 of file heka_message.h.
enum lsb_pb_value_types |
Enumerator | |
---|---|
LSB_PB_STRING | |
LSB_PB_BYTES | |
LSB_PB_INTEGER | |
LSB_PB_DOUBLE | |
LSB_PB_BOOL |
Definition at line 64 of file heka_message.h.
enum lsb_read_type |
Enumerator | |
---|---|
LSB_READ_NIL | |
LSB_READ_NUMERIC | |
LSB_READ_STRING | |
LSB_READ_BOOL |
Definition at line 99 of file heka_message.h.
LSB_UTIL_EXPORT void lsb_clear_heka_message | ( | lsb_heka_message * | m | ) |
Resets the message headers and fields zeroing the allocated memory.
m | Heka message structure |
LSB_UTIL_EXPORT bool lsb_decode_heka_message | ( | lsb_heka_message * | m, |
const char * | buf, | ||
size_t | len, | ||
lsb_logger * | logger | ||
) |
Decodes an array of bytes into a Heka message.
The message structure is cleared before decoding.
m | Heka message structure |
buf | Protobuf array |
len | Length of the protobuf array |
logger | Logger structure (can be set to NULL to disable logging) |
LSB_UTIL_EXPORT bool lsb_find_heka_message | ( | lsb_heka_message * | m, |
lsb_input_buffer * | ib, | ||
bool | decode, | ||
size_t * | discarded_bytes, | ||
lsb_logger * | logger | ||
) |
Locates a framed Heka message in an input buffer.
m | Heka message structure |
ib | Input buffer |
decode | True if the framed message should be protobuf decoded |
discarded_bytes | Used to track stream corruption |
logger | Logger structure (can be set to NULL to disable logging) |
LSB_UTIL_EXPORT void lsb_free_heka_message | ( | lsb_heka_message * | m | ) |
Frees the memory allocated for the message fields.
m | Heka message structure |
LSB_UTIL_EXPORT lsb_err_value lsb_init_heka_message | ( | lsb_heka_message * | m, |
int | num_fields | ||
) |
Zero the structure and allocate memory for at least 'size' fields.
m | Heka message structure |
num_fields | Preallocated number of fields (must be >0) |
LSB_UTIL_EXPORT bool lsb_read_heka_field | ( | const lsb_heka_message * | m, |
lsb_const_string * | name, | ||
int | fi, | ||
int | ai, | ||
lsb_read_value * | val | ||
) |
Reads a dynamic field from the Heka message.
m | Heka meassage structure |
name | Field name |
fi | Field index |
ai | Array index into the field |
val | Value structure to be populated by the read |
LSB_UTIL_EXPORT size_t lsb_write_heka_header | ( | char * | buf, |
size_t | len | ||
) |
Writes the Heka framing header to the specified buffer.
buf | Buffer to write the header to must be at least LSB_MIN_HDR_SIZE size. |
len | Length of the message to encode into the header |
LSB_UTIL_EXPORT lsb_err_value lsb_write_heka_uuid | ( | lsb_output_buffer * | ob, |
const char * | uuid, | ||
size_t | len | ||
) |
Writes a binary UUID to the output buffer.
ob | Pointer to the output data buffer. |
uuid | Uuid string to output (can be NULL, binary, human readable UUID) |
len | Length of UUID (16 or 36 anything else will cause a new UUID to be created). |