Go to the source code of this file.
Data Structures | |
struct | as_bytes |
Macros | |
#define | as_bytes_inita(__bytes, __capacity) |
Enumerations | |
enum | as_bytes_type { AS_BYTES_UNDEF = 0 , AS_BYTES_INTEGER = 1 , AS_BYTES_DOUBLE = 2 , AS_BYTES_STRING = 3 , AS_BYTES_BLOB = 4 , AS_BYTES_JAVA = 7 , AS_BYTES_CSHARP = 8 , AS_BYTES_PYTHON = 9 , AS_BYTES_RUBY = 10 , AS_BYTES_PHP = 11 , AS_BYTES_ERLANG = 12 , AS_BYTES_VECTOR = 16 , AS_BYTES_BOOL = 17 , AS_BYTES_HLL = 18 , AS_BYTES_MAP = 19 , AS_BYTES_LIST = 20 , AS_BYTES_GEOJSON = 23 , AS_BYTES_TYPE_MAX = 24 } |
Functions | |
AS_EXTERN bool | as_bytes_append (as_bytes *bytes, const uint8_t *value, uint32_t size) |
static bool | as_bytes_append_byte (as_bytes *bytes, uint8_t value) |
static bool | as_bytes_append_double (as_bytes *bytes, double value) |
static bool | as_bytes_append_int16 (as_bytes *bytes, int16_t value) |
static bool | as_bytes_append_int32 (as_bytes *bytes, int32_t value) |
static bool | as_bytes_append_int64 (as_bytes *bytes, int64_t value) |
static uint32_t | as_bytes_capacity (const as_bytes *bytes) |
AS_EXTERN uint32_t | as_bytes_copy (const as_bytes *bytes, uint32_t index, uint8_t *value, uint32_t size) |
static void | as_bytes_destroy (as_bytes *bytes) |
AS_EXTERN bool | as_bytes_ensure (as_bytes *bytes, uint32_t capacity, bool resize) |
AS_EXTERN int | as_bytes_from_string (uint8_t *bytes, uint32_t bytes_size, const char *str) |
static as_bytes * | as_bytes_fromval (const as_val *v) |
static uint8_t * | as_bytes_get (const as_bytes *bytes) |
static uint32_t | as_bytes_get_byte (const as_bytes *bytes, uint32_t index, uint8_t *value) |
static uint32_t | as_bytes_get_double (const as_bytes *bytes, uint32_t index, double *value) |
static uint32_t | as_bytes_get_int16 (const as_bytes *bytes, uint32_t index, int16_t *value) |
static uint32_t | as_bytes_get_int32 (const as_bytes *bytes, uint32_t index, int32_t *value) |
static uint32_t | as_bytes_get_int64 (const as_bytes *bytes, uint32_t index, int64_t *value) |
static as_bytes_type | as_bytes_get_type (const as_bytes *bytes) |
AS_EXTERN uint32_t | as_bytes_get_var_int (const as_bytes *bytes, uint32_t index, uint32_t *value) |
static uint8_t * | as_bytes_getorelse (const as_bytes *bytes, uint8_t *fallback) |
AS_EXTERN as_bytes * | as_bytes_init (as_bytes *bytes, uint32_t capacity) |
AS_EXTERN as_bytes * | as_bytes_init_wrap (as_bytes *bytes, uint8_t *value, uint32_t size, bool free) |
AS_EXTERN as_bytes * | as_bytes_new (uint32_t capacity) |
AS_EXTERN as_bytes * | as_bytes_new_wrap (uint8_t *value, uint32_t size, bool free) |
AS_EXTERN bool | as_bytes_set (as_bytes *bytes, uint32_t index, const uint8_t *value, uint32_t size) |
static bool | as_bytes_set_byte (as_bytes *bytes, uint32_t index, uint8_t value) |
static bool | as_bytes_set_double (as_bytes *bytes, uint32_t index, double value) |
static bool | as_bytes_set_int16 (as_bytes *bytes, uint32_t index, int16_t value) |
static bool | as_bytes_set_int32 (as_bytes *bytes, uint32_t index, int32_t value) |
static bool | as_bytes_set_int64 (as_bytes *bytes, uint32_t index, int64_t value) |
static void | as_bytes_set_type (as_bytes *bytes, as_bytes_type type) |
AS_EXTERN uint32_t | as_bytes_set_var_int (const as_bytes *bytes, uint32_t index, uint32_t value) |
static uint32_t | as_bytes_size (const as_bytes *bytes) |
AS_EXTERN bool | as_bytes_to_string (const uint8_t *bytes, uint32_t bytes_size, char *str, uint32_t str_size) |
AS_EXTERN bool | as_bytes_to_string_with_prefix (const uint8_t *bytes, uint32_t bytes_size, char *str, uint32_t str_size) |
static uint8_t * | as_bytes_tobytes (const as_bytes *bytes, uint32_t *size) |
static as_val * | as_bytes_toval (const as_bytes *b) |
AS_EXTERN bool | as_bytes_truncate (as_bytes *bytes, uint32_t n) |
AS_EXTERN void | as_bytes_val_destroy (as_val *v) |
AS_EXTERN uint32_t | as_bytes_val_hashcode (const as_val *v) |
AS_EXTERN char * | as_bytes_val_tostring (const as_val *v) |
#define as_bytes_inita | ( | __bytes, | |
__capacity ) |
Initializes a stack allocated as_bytes
. Allocates an internal buffer on the stack of specified capacity using alloca()
.
__bytes | The bytes to initialize. |
__capacity | The number of bytes to allocate on the heap. |
Definition at line 303 of file as_bytes.h.
enum as_bytes_type |
Types for as_bytes.type
Definition at line 35 of file as_bytes.h.
Append raw bytes of given size.
bytes | The bytes to append to. |
value | The buffer to read from. |
size | The number of bytes to read from the value. |
|
inlinestatic |
Append a uint8_t (byte).
Definition at line 817 of file as_bytes.h.
|
inlinestatic |
Append a double value.
Definition at line 881 of file as_bytes.h.
|
inlinestatic |
Append an int16_t value.
Definition at line 833 of file as_bytes.h.
|
inlinestatic |
Append an int32_t value.
Definition at line 849 of file as_bytes.h.
|
inlinestatic |
Append an int64_t value.
Definition at line 865 of file as_bytes.h.
|
inlinestatic |
Get the number of bytes allocated.
bytes | The bytes to get the capacity of. |
Definition at line 434 of file as_bytes.h.
AS_EXTERN uint32_t as_bytes_copy | ( | const as_bytes * | bytes, |
uint32_t | index, | ||
uint8_t * | value, | ||
uint32_t | size ) |
Copy into value up to size bytes from the given as_bytes
, returning the number of bytes copied.
bytes | The bytes to read from. |
index | The positing in bytes to read from. |
value | The byte buffer to copy into. |
size | The number of bytes to copy into the buffer. |
|
inlinestatic |
Destroy the as_bytes
and release associated resources.
bytes | The bytes to destroy. |
Definition at line 401 of file as_bytes.h.
Ensure the bytes buffer can handle capacity
bytes.
If resize
is true and capacity
exceeds the capacity of the bytes's buffer, then resize the capacity of the buffer to capacity
bytes. If the buffer was heap allocated, then cf_realloc()
will be used to resize. If the buffer was stack allocated, it will be converted to a heap allocated buffer using cf_malloc() and then its contents will be copied into the new heap allocated buffer.
If resize
is false, and if the capacity is not sufficient, then return false.
bytes | The bytes to ensure the capacity of. |
capacity | The total number of bytes to ensure bytes can handle. |
resize | If true and capacity is not sufficient, then resize the buffer. |
AS_EXTERN int as_bytes_from_string | ( | uint8_t * | bytes, |
uint32_t | bytes_size, | ||
const char * | str ) |
Convert hexidecimal string to byte array.
bytes | Target byte array. |
bytes_size | Size of byte array. |
str | Source hex string in format [0x][0-9]|[a-f]|[A-F]. 0x prefix is optional. |
Convert from an as_val.
Definition at line 977 of file as_bytes.h.
|
inlinestatic |
Get the raw value of this instance.
bytes | The bytes to get the raw value from. |
Definition at line 503 of file as_bytes.h.
|
inlinestatic |
Read a single byte from the given bytes.
Definition at line 555 of file as_bytes.h.
|
inlinestatic |
Read a double from the given bytes.
Definition at line 639 of file as_bytes.h.
|
inlinestatic |
Read an int16_t from the given bytes.
Definition at line 576 of file as_bytes.h.
|
inlinestatic |
Read an int32_t from the given bytes.
Definition at line 597 of file as_bytes.h.
|
inlinestatic |
Read an int64_t from the given bytes.
Definition at line 618 of file as_bytes.h.
|
inlinestatic |
Get the type of bytes.
bytes | The bytes to get the type of. |
Definition at line 449 of file as_bytes.h.
AS_EXTERN uint32_t as_bytes_get_var_int | ( | const as_bytes * | bytes, |
uint32_t | index, | ||
uint32_t * | value ) |
Decode an integer in variable 7-bit format. The high bit indicates if more bytes are used.
|
inlinestatic |
Get the raw value of this instance. If the instance is NULL, then return the fallback value.
bytes | The bytes to get the raw value from. |
fallback | The value to return if bytes is NULL. |
Definition at line 485 of file as_bytes.h.
Initializes a stack allocated as_bytes
. Allocates an internal buffer on the heap of specified capacity using cf_malloc()
.
bytes | The bytes to initialize. |
capacity | The number of bytes to allocate on the heap. |
AS_EXTERN as_bytes * as_bytes_init_wrap | ( | as_bytes * | bytes, |
uint8_t * | value, | ||
uint32_t | size, | ||
bool | free ) |
Initializes a stack allocated as_bytes
, wrapping the given buffer.
bytes | The bytes to initialize. |
value | The initial value. |
size | The number of bytes of the initial value. |
free | If true, then as_bytes_destroy() will free the value. |
Create and initialize a new heap allocated as_bytes
. Allocates an internal buffer on the heap of specified capacity using cf_malloc()
.
capacity | The number of bytes to allocate. |
Creates a new heap allocated as_bytes
, wrapping the given buffer.
value | The initial value. |
size | The number of bytes of the initial value. |
free | If true, then as_bytes_destroy() will free the value. |
AS_EXTERN bool as_bytes_set | ( | as_bytes * | bytes, |
uint32_t | index, | ||
const uint8_t * | value, | ||
uint32_t | size ) |
Copy raw bytes of given size into the given as_bytes
starting at specified index.
bytes | The bytes to write to. |
index | The position to write to. |
value | The buffer to read from. |
size | The number of bytes to read from the value. |
|
inlinestatic |
Set a byte at given index.
Definition at line 696 of file as_bytes.h.
|
inlinestatic |
Set double at given index.
Definition at line 760 of file as_bytes.h.
|
inlinestatic |
Set 16 bit integer at given index.
Definition at line 712 of file as_bytes.h.
|
inlinestatic |
Set 32 bit integer at given index.
Definition at line 728 of file as_bytes.h.
|
inlinestatic |
Set 64 bit integer at given index.
Definition at line 744 of file as_bytes.h.
|
inlinestatic |
Set the type of bytes.
bytes | The bytes to set the type of. |
type | The type for the bytes. |
Definition at line 463 of file as_bytes.h.
Encode an integer in 7-bit format. The high bit indicates if more bytes are used.
The bytes
must be sufficiently sized for the data being written. To ensure the bytes
is allocated sufficiently, you will need to call as_bytes_ensure()
.
|
inlinestatic |
Get the number of bytes used.
bytes | The bytes to get the size of. |
Definition at line 419 of file as_bytes.h.
AS_EXTERN bool as_bytes_to_string | ( | const uint8_t * | bytes, |
uint32_t | bytes_size, | ||
char * | str, | ||
uint32_t | str_size ) |
Convert byte array to hexidecimal string.
bytes | Source byte array. |
bytes_size | Size of byte array. |
str | Target hex string. |
str_size | Size of hex string. |
AS_EXTERN bool as_bytes_to_string_with_prefix | ( | const uint8_t * | bytes, |
uint32_t | bytes_size, | ||
char * | str, | ||
uint32_t | str_size ) |
Convert byte array to hexidecimal string with 0x prefix.
bytes | Source byte array. |
bytes_size | Size of byte array. |
str | Target hex string. |
str_size | Size of hex string. |
|
inlinestatic |
Get the bytes value.
Definition at line 947 of file as_bytes.h.
Convert to an as_val.
Definition at line 967 of file as_bytes.h.
Truncate the bytes' buffer. The size specifies the number of bytes to remove from the end of the buffer.
This means, if the buffer has size of 100, and we truncate 10, then the remaining size is 90.
Truncation does not modify the capacity of the buffer.
bytes | The bytes to truncate. |
n | The number of bytes to remove from the end. |
Internal helper function for destroying an as_val.
Internal helper function for getting the hashcode of an as_val.