| 
    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). | 
 1.8.11