All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Data Structures | Macros | Enumerations | Functions
target/Linux-x86_64/include/aerospike/as_bytes.h File Reference
#include <aerospike/as_util.h>
#include <aerospike/as_val.h>
#include <stdbool.h>
#include <stdint.h>
#include <string.h>
+ Include dependency graph for target/Linux-x86_64/include/aerospike/as_bytes.h:
+ This graph shows which files directly or indirectly include this file:

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_FLOAT = 1, 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_MAP = 19,
  AS_BYTES_LIST = 20, AS_BYTES_LDT = 21, AS_BYTES_TYPE_MAX = 22, AS_BYTES_UNDEF = 0,
  AS_BYTES_INTEGER = 1, AS_BYTES_FLOAT = 1, 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_MAP = 19, AS_BYTES_LIST = 20,
  AS_BYTES_LDT = 21, AS_BYTES_TYPE_MAX = 22, AS_BYTES_UNDEF = 0, AS_BYTES_INTEGER = 1,
  AS_BYTES_FLOAT = 1, 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_MAP = 19, AS_BYTES_LIST = 20, AS_BYTES_LDT = 21,
  AS_BYTES_TYPE_MAX = 22
}
 

Functions

bool as_bytes_append (as_bytes *bytes, const uint8_t *value, uint32_t size)
 
bool as_bytes_append_byte (as_bytes *bytes, uint8_t value)
 
bool as_bytes_append_int16 (as_bytes *bytes, int16_t value)
 
bool as_bytes_append_int32 (as_bytes *bytes, int32_t value)
 
bool as_bytes_append_int64 (as_bytes *bytes, int64_t value)
 
uint32_t as_bytes_capacity (const as_bytes *bytes)
 
uint32_t as_bytes_copy (const as_bytes *bytes, uint32_t index, uint8_t *value, uint32_t size)
 
void as_bytes_destroy (as_bytes *bytes)
 
bool as_bytes_ensure (as_bytes *bytes, uint32_t n, bool resize)
 
as_bytesas_bytes_fromval (const as_val *v)
 
uint8_t * as_bytes_get (const as_bytes *bytes)
 
uint32_t as_bytes_get_byte (const as_bytes *bytes, uint32_t index, uint8_t *value)
 
uint32_t as_bytes_get_int16 (const as_bytes *bytes, uint32_t index, int16_t *value)
 
uint32_t as_bytes_get_int32 (const as_bytes *bytes, uint32_t index, int32_t *value)
 
uint32_t as_bytes_get_int64 (const as_bytes *bytes, uint32_t index, int64_t *value)
 
as_bytes_type as_bytes_get_type (const as_bytes *bytes)
 
uint8_t * as_bytes_getorelse (const as_bytes *bytes, uint8_t *fallback)
 
as_bytesas_bytes_init (as_bytes *bytes, uint32_t capacity)
 
as_bytesas_bytes_init_wrap (as_bytes *bytes, uint8_t *value, uint32_t size, bool free)
 
as_bytesas_bytes_new (uint32_t capacity)
 
as_bytesas_bytes_new_wrap (uint8_t *value, uint32_t size, bool free)
 
bool as_bytes_set (as_bytes *bytes, uint32_t index, const uint8_t *value, uint32_t size)
 
bool as_bytes_set_byte (as_bytes *bytes, uint32_t index, uint8_t value)
 
bool as_bytes_set_int16 (as_bytes *bytes, uint32_t index, int16_t value)
 
bool as_bytes_set_int32 (as_bytes *bytes, uint32_t index, int32_t value)
 
bool as_bytes_set_int64 (as_bytes *bytes, uint32_t index, int64_t value)
 
void as_bytes_set_type (as_bytes *bytes, as_bytes_type type)
 
uint32_t as_bytes_size (const as_bytes *bytes)
 
uint8_t * as_bytes_tobytes (const as_bytes *bytes, uint32_t *size)
 
as_valas_bytes_toval (const as_bytes *b)
 
bool as_bytes_truncate (as_bytes *bytes, uint32_t n)
 
void as_bytes_val_destroy (as_val *v)
 
uint32_t as_bytes_val_hashcode (const as_val *v)
 
char * as_bytes_val_tostring (const as_val *v)
 

Macro Definition Documentation

#define as_bytes_inita (   __bytes,
  __capacity 
)
Value:
as_bytes_init(__bytes, 0);\
(__bytes)->type = AS_BYTES_BLOB;\
(__bytes)->free = false;\
(__bytes)->capacity = __capacity;\
(__bytes)->size = 0;\
(__bytes)->value = (uint8_t *) alloca(__capacity * sizeof(uint8_t));

Initializes a stack allocated as_bytes. Allocates an internal buffer on the stack of specified capacity using alloca().

as_bytes bytes;
as_bytes_inita(&bytes, 10);
Parameters
__bytesThe bytes to initialize.
__capacityThe number of bytes to allocate on the heap.

Definition at line 292 of file target/Linux-x86_64/include/aerospike/as_bytes.h.

Enumeration Type Documentation

Types for as_bytes.type

Enumerator
AS_BYTES_UNDEF 

Type is Undefined

AS_BYTES_INTEGER 

String

AS_BYTES_FLOAT 

Float

AS_BYTES_STRING 

String

AS_BYTES_BLOB 

Generic BLOB

AS_BYTES_JAVA 

Serialized Java Object

AS_BYTES_CSHARP 

Serialized C# Object

AS_BYTES_PYTHON 

Pickled Python Object

AS_BYTES_RUBY 

Marshalled Ruby Object

AS_BYTES_PHP 

Serialized PHP Object

AS_BYTES_ERLANG 

Serialized Erlang Data

AS_BYTES_MAP 

Map

AS_BYTES_LIST 

List

AS_BYTES_LDT 

Large Date Type

AS_BYTES_TYPE_MAX 

Upper bounds for the enum

AS_BYTES_UNDEF 

Type is Undefined

AS_BYTES_INTEGER 

String

AS_BYTES_FLOAT 

Float

AS_BYTES_STRING 

String

AS_BYTES_BLOB 

Generic BLOB

AS_BYTES_JAVA 

Serialized Java Object

AS_BYTES_CSHARP 

Serialized C# Object

AS_BYTES_PYTHON 

Pickled Python Object

AS_BYTES_RUBY 

Marshalled Ruby Object

AS_BYTES_PHP 

Serialized PHP Object

AS_BYTES_ERLANG 

Serialized Erlang Data

AS_BYTES_MAP 

Map

AS_BYTES_LIST 

List

AS_BYTES_LDT 

Large Date Type

AS_BYTES_TYPE_MAX 

Upper bounds for the enum

AS_BYTES_UNDEF 

Type is Undefined

AS_BYTES_INTEGER 

String

AS_BYTES_FLOAT 

Float

AS_BYTES_STRING 

String

AS_BYTES_BLOB 

Generic BLOB

AS_BYTES_JAVA 

Serialized Java Object

AS_BYTES_CSHARP 

Serialized C# Object

AS_BYTES_PYTHON 

Pickled Python Object

AS_BYTES_RUBY 

Marshalled Ruby Object

AS_BYTES_PHP 

Serialized PHP Object

AS_BYTES_ERLANG 

Serialized Erlang Data

AS_BYTES_MAP 

Map

AS_BYTES_LIST 

List

AS_BYTES_LDT 

Large Date Type

AS_BYTES_TYPE_MAX 

Upper bounds for the enum

Definition at line 39 of file target/Linux-x86_64/include/aerospike/as_bytes.h.

Function Documentation

bool as_bytes_append ( as_bytes bytes,
const uint8_t *  value,
uint32_t  size 
)

Append raw bytes of given size.

uint8_t value[3] = {'a','b','c'};
as_bytes_append(&bytes, value, 3);
Parameters
bytesThe bytes to append to.
valueThe buffer to read from.
sizeThe number of bytes to read from the value.
Returns
On success, true. Otherwise an error occurred.
bool as_bytes_append_byte ( as_bytes bytes,
uint8_t  value 
)
inline

Append a uint8_t (byte).

as_bytes_append_byte(&bytes, 'a');
Returns
On success, true. Otherwise an error occurred.

Definition at line 734 of file target/Linux-x86_64/include/aerospike/as_bytes.h.

References as_bytes::as_bytes_append().

bool as_bytes_append_int16 ( as_bytes bytes,
int16_t  value 
)
inline

Append an int16_t value.

as_bytes_append_int16(&bytes, 123);
Returns
On success, true. Otherwise an error occurred.

Definition at line 750 of file target/Linux-x86_64/include/aerospike/as_bytes.h.

References as_bytes::as_bytes_append().

bool as_bytes_append_int32 ( as_bytes bytes,
int32_t  value 
)
inline

Append an int32_t value.

as_bytes_append_int32(&bytes, 123);
Returns
On success, true. Otherwise an error occurred.

Definition at line 766 of file target/Linux-x86_64/include/aerospike/as_bytes.h.

References as_bytes::as_bytes_append().

bool as_bytes_append_int64 ( as_bytes bytes,
int64_t  value 
)
inline

Append an int64_t value.

Returns
On success, true. Otherwise an error occurred.

Definition at line 782 of file target/Linux-x86_64/include/aerospike/as_bytes.h.

References as_bytes::as_bytes_append().

uint32_t as_bytes_capacity ( const as_bytes bytes)
inline

Get the number of bytes allocated.

Parameters
bytesThe bytes to get the capacity of.
Returns
The number of bytes allocated.

Definition at line 423 of file target/Linux-x86_64/include/aerospike/as_bytes.h.

References as_bytes::capacity.

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.

uint8_t value[3] = {0};
uint32_t sz = as_bytes_copy(&bytes, 0, value, 3);
if ( sz == 0 ) {
// sz == 0, means that an error occurred
}
Parameters
bytesThe bytes to read from.
indexThe positing in bytes to read from.
valueThe byte buffer to copy into.
sizeThe number of bytes to copy into the buffer.
Returns
The number of bytes read and stored into value. 0 (zero) indicates an error has occurred.
void as_bytes_destroy ( as_bytes bytes)
inline

Destroy the as_bytes and release associated resources.

Parameters
bytesThe bytes to destroy.

Definition at line 390 of file target/Linux-x86_64/include/aerospike/as_bytes.h.

References as_val_destroy.

bool as_bytes_ensure ( as_bytes bytes,
uint32_t  n,
bool  resize 
)

Ensure the bytes buffer can handle n additional bytes.

Using the current size, we see if size + n is within the capacity of the bytes' buffer. If so, then return true.

If resize is true and size + n exceeds the capacity of the bytes's buffer, then resize the capacity of the buffer by n 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.

as_bytes_ensure(&bytes, 100, true);
Parameters
bytesThe bytes to ensure the capacity of.
nThe number of additional bytes to ensure bytes can handle.
resizeIf true and capacity is not sufficient, then resize the buffer.
Returns
On success, true. Otherwise an error occurred.
as_bytes* as_bytes_fromval ( const as_val v)
inline

Convert from an as_val.

Definition at line 881 of file target/Linux-x86_64/include/aerospike/as_bytes.h.

References AS_BYTES, and as_util_fromval.

uint8_t* as_bytes_get ( const as_bytes bytes)
inline

Get the raw value of this instance.

uint8_t * raw = as_bytes_get(&bytes);
Parameters
bytesThe bytes to get the raw value from.
Returns
The pointer to the raw value.

Definition at line 492 of file target/Linux-x86_64/include/aerospike/as_bytes.h.

References as_bytes::as_bytes_getorelse().

uint32_t as_bytes_get_byte ( const as_bytes bytes,
uint32_t  index,
uint8_t *  value 
)
inline

Read a single byte from the given bytes.

uint8_t value = 0;
uint32_t sz = as_bytes_get_byte(&bytes, 0, &value);
if ( sz == 0 ) {
// sz == 0, means that an error occurred
}
Returns
The number of bytes read and stored into value. 0 (zero) indicates an error has occurred.

Definition at line 544 of file target/Linux-x86_64/include/aerospike/as_bytes.h.

References as_bytes::as_bytes_copy().

uint32_t as_bytes_get_int16 ( const as_bytes bytes,
uint32_t  index,
int16_t *  value 
)
inline

Read an int16_t from the given bytes.

int16_t value = 0;
uint32_t sz = as_bytes_get_int16(&bytes, 0, &value);
if ( sz == 0 ) {
// sz == 0, means that an error occurred
}
Returns
The number of bytes read and stored into value. 0 (zero) indicates an error has occurred.

Definition at line 565 of file target/Linux-x86_64/include/aerospike/as_bytes.h.

References as_bytes::as_bytes_copy().

uint32_t as_bytes_get_int32 ( const as_bytes bytes,
uint32_t  index,
int32_t *  value 
)
inline

Read an int32_t from the given bytes.

int32_t value = 0;
uint32_t sz = as_bytes_get_int32(&bytes, 0, &value);
if ( sz == 0 ) {
// sz == 0, means that an error occurred
}
Returns
The number of bytes read and stored into value. 0 (zero) indicates an error has occurred.

Definition at line 586 of file target/Linux-x86_64/include/aerospike/as_bytes.h.

References as_bytes::as_bytes_copy().

uint32_t as_bytes_get_int64 ( const as_bytes bytes,
uint32_t  index,
int64_t *  value 
)
inline

Read an int64_t from the given bytes.

int64_t value = 0;
uint32_t sz = as_bytes_get_int64(&bytes, 0, &value);
if ( sz == 0 ) {
// sz == 0, means that an error occurred
}
Returns
The number of bytes read and stored into value. 0 (zero) indicates an error has occurred.

Definition at line 607 of file target/Linux-x86_64/include/aerospike/as_bytes.h.

References as_bytes::as_bytes_copy().

as_bytes_type as_bytes_get_type ( const as_bytes bytes)
inline

Get the type of bytes.

Parameters
bytesThe bytes to get the type of.
Returns
The type of bytes.

Definition at line 438 of file target/Linux-x86_64/include/aerospike/as_bytes.h.

References AS_BYTES_UNDEF, and as_bytes::type.

uint8_t* as_bytes_getorelse ( const as_bytes bytes,
uint8_t *  fallback 
)
inline

Get the raw value of this instance. If the instance is NULL, then return the fallback value.

uint8_t * raw = as_bytes_getorelse(&bytes, NULL);
Parameters
bytesThe bytes to get the raw value from.
fallbackThe value to return if bytes is NULL.
Returns
The pointer to the raw value if bytes is not NULL. Otherwise return the fallback.

Definition at line 474 of file target/Linux-x86_64/include/aerospike/as_bytes.h.

References as_bytes::value.

as_bytes* as_bytes_init ( as_bytes bytes,
uint32_t  capacity 
)

Initializes a stack allocated as_bytes. Allocates an internal buffer on the heap of specified capacity using cf_malloc().

as_bytes bytes;
as_bytes_init_empty(&bytes, 10);
Parameters
bytesThe bytes to initialize.
capacityThe number of bytes to allocate on the heap.
Returns
On success, the initializes bytes. Otherwise NULL.
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.

uint8_t raw[10] = {0};
as_bytes bytes;
as_bytes_init_wrap(&bytes, raw, 10, false);
Parameters
bytesThe bytes to initialize.
valueThe initial value.
sizeThe number of bytes of the initial value.
freeIf true, then as_bytes_destroy() will free the value.
Returns
On success, the initializes bytes. Otherwise NULL.
as_bytes* as_bytes_new ( uint32_t  capacity)

Create and initialize a new heap allocated as_bytes. Allocates an internal buffer on the heap of specified capacity using cf_malloc().

as_bytes * bytes = as_bytes_new(10);
Parameters
capacityThe number of bytes to allocate.
Returns
On success, the initializes bytes. Otherwise NULL.
as_bytes* as_bytes_new_wrap ( uint8_t *  value,
uint32_t  size,
bool  free 
)

Creates a new heap allocated as_bytes, wrapping the given buffer.

uint8_t raw[10] = {0};
as_bytes * bytes = as_bytes_new_wrap(raw, 10, false);
Parameters
valueThe initial value.
sizeThe number of bytes of the initial value.
freeIf true, then as_bytes_destroy() will free the value.
Returns
On success, the initializes bytes. Otherwise NULL.
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.

as_bytes_set(&bytes, 0, (uint8_t[]){'a','b','c'}, 3);
Parameters
bytesThe bytes to write to.
indexThe position to write to.
valueThe buffer to read from.
sizeThe number of bytes to read from the value.
Returns
On success, true. Otherwise an error occurred.
bool as_bytes_set_byte ( as_bytes bytes,
uint32_t  index,
uint8_t  value 
)
inline

Set a byte at given index.

as_bytes_append_byte(&bytes, 'a');
Returns
On success, true. Otherwise an error occurred.

Definition at line 646 of file target/Linux-x86_64/include/aerospike/as_bytes.h.

References as_bytes::as_bytes_set().

bool as_bytes_set_int16 ( as_bytes bytes,
uint32_t  index,
int16_t  value 
)
inline

Set a byte at given index.

as_bytes_append_byte(&bytes, 'a');
Returns
On success, true. Otherwise an error occurred.

Definition at line 662 of file target/Linux-x86_64/include/aerospike/as_bytes.h.

References as_bytes::as_bytes_set().

bool as_bytes_set_int32 ( as_bytes bytes,
uint32_t  index,
int32_t  value 
)
inline

Set a byte at given index.

as_bytes_append_byte(&bytes, 'a');
Returns
On success, true. Otherwise an error occurred.

Definition at line 678 of file target/Linux-x86_64/include/aerospike/as_bytes.h.

References as_bytes::as_bytes_set().

bool as_bytes_set_int64 ( as_bytes bytes,
uint32_t  index,
int64_t  value 
)
inline

Set a byte at given index.

as_bytes_append_byte(&bytes, 'a');
Returns
On success, true. Otherwise an error occurred.

Definition at line 694 of file target/Linux-x86_64/include/aerospike/as_bytes.h.

References as_bytes::as_bytes_set().

void as_bytes_set_type ( as_bytes bytes,
as_bytes_type  type 
)
inline

Set the type of bytes.

Parameters
bytesThe bytes to set the type of.
typeThe type for the bytes.

Definition at line 452 of file target/Linux-x86_64/include/aerospike/as_bytes.h.

References type, and as_bytes::type.

uint32_t as_bytes_size ( const as_bytes bytes)
inline

Get the number of bytes used.

Parameters
bytesThe bytes to get the size of.
Returns
The number of bytes used.

Definition at line 408 of file target/Linux-x86_64/include/aerospike/as_bytes.h.

References as_bytes::size.

uint8_t* as_bytes_tobytes ( const as_bytes bytes,
uint32_t *  size 
)
inline

Get the bytes value.

Definition at line 851 of file target/Linux-x86_64/include/aerospike/as_bytes.h.

References as_bytes::size, and as_bytes::value.

as_val* as_bytes_toval ( const as_bytes b)
inline

Convert to an as_val.

Definition at line 871 of file target/Linux-x86_64/include/aerospike/as_bytes.h.

bool as_bytes_truncate ( as_bytes bytes,
uint32_t  n 
)

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.

as_bytes_truncate(&bytes, 10);
Parameters
bytesThe bytes to truncate.
nThe number of bytes to remove from the end.
Returns
On success, true. Otherwise an error occurred.
void as_bytes_val_destroy ( as_val v)
private

Internal helper function for destroying an as_val.

uint32_t as_bytes_val_hashcode ( const as_val v)
private

Internal helper function for getting the hashcode of an as_val.

char* as_bytes_val_tostring ( const as_val v)
private

Internal helper function for getting the string representation of an as_val.