All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Data Fields | Private Attributes | Related Functions
as_operations Struct Reference

Detailed Description

The aerospike_key_operate() function provides the ability to execute multiple operations on a record in the database as a single atomic transaction.

The as_operations object is used to define the operations to be performed on the record.

Initialization

Before using as_operations, you must first initialize it via either:

as_operations_inita() is a macro that initializes a stack allocated as_operations and allocates an internal array of operations. The macro accepts a pointer to the stack allocated as_operations and the number of operations to be added.

as_operations_init() is a function that initializes a stack allocated as_operations. It differes from as_operations_inita() in that it allocates the internal array of operations on the heap. It accepts a pointer to the stack allocated as_operations and the number of operations to be added.

as_operations_new() is a function that will allocate a new as_operations on the heap. It will also allocate the internal array of operation on the heap.

When you no longer needthe as_operations, you can release the resources allocated to it via as_operations_destroy().

Destruction

When you no longer require an as_operations, you should call as_operations_destroy() to release it and associated resources.

Usage

as_operations is a sequence of operations to be applied to a record.

Each of the following operations is added to the end of the sequence of operations.

When you have compiled the sequence of operations you want to execute, then you will send it to aerospike_key_operate().

Modifying a String

Aerospike allows you to append a string to a bin containing a string.

The following appends a "abc" to bin "bin1".

as_operations_add_append_str(ops, "bin1", "abc");

There is also a prepend operation, which will add the string to the beginning of the bin's current value.

as_operations_add_prepend_str(ops, "bin1", "abc");

Modifying a Byte Array

Aerospike allows you to append a byte array to a bin containing a byte array.

The following appends a 4 byte sequence to bin "bin1".

uint8_t raw[4] = { 1, 2, 3, 4 };
as_operations_add_append_raw(ops, "bin1", raw, 4);

There is also a prepend operation, which will add the bytes to the beginning of the bin's current value.

uint8_t raw[4] = { 1, 2, 3, 4 };
as_operations_add_prepend_raw(ops, "bin1", raw, 4);

Increment an Integer

Aerospike allows you to increment the value of a bin

The following increments the value in bin "bin1" by 4.

as_operations_add_incr(ops, "bin1", 4);

Write a Value

Write a value into a bin. Overwriting previous value.

The following writes a string "xyz" to "bin1".

as_operations_add_write_str(ops, "bin1", "xyz");

Read a Value

Read a value from a bin. This is ideal, if you performed an operation on a bin, and want to read the new value.

The following reads the value of "bin1"

as_operations_add_read(ops, "bin1", "xyz");

Touch a Record

Touching a record will refresh its ttl and increment the generation of the record.

The following touches a record.

Definition at line 277 of file as_operations.h.

#include "as_operations.h"

+ Collaboration diagram for as_operations:

Data Fields

as_binops binops
 
uint16_t gen
 
uint32_t ttl
 

Private Attributes

bool _free
 

Related Functions

(Note that these are not member functions.)

static bool as_operations_add_append_raw (as_operations *ops, const as_bin_name name, const uint8_t *value, uint32_t size)
 
bool as_operations_add_append_rawp (as_operations *ops, const as_bin_name name, const uint8_t *value, uint32_t size, bool free)
 
static bool as_operations_add_append_str (as_operations *ops, const as_bin_name name, const char *value)
 
bool as_operations_add_append_strp (as_operations *ops, const as_bin_name name, const char *value, bool free)
 
bool as_operations_add_incr (as_operations *ops, const as_bin_name name, int64_t value)
 
static bool as_operations_add_prepend_raw (as_operations *ops, const as_bin_name name, const uint8_t *value, uint32_t size)
 
bool as_operations_add_prepend_rawp (as_operations *ops, const as_bin_name name, const uint8_t *value, uint32_t size, bool free)
 
static bool as_operations_add_prepend_str (as_operations *ops, const as_bin_name name, const char *value)
 
bool as_operations_add_prepend_strp (as_operations *ops, const as_bin_name name, const char *value, bool free)
 
bool as_operations_add_read (as_operations *ops, const as_bin_name name)
 
bool as_operations_add_touch (as_operations *ops)
 
bool as_operations_add_write (as_operations *ops, const as_bin_name name, as_bin_value *value)
 
bool as_operations_add_write_int64 (as_operations *ops, const as_bin_name name, int64_t value)
 
static bool as_operations_add_write_raw (as_operations *ops, const as_bin_name name, const uint8_t *value, uint32_t size)
 
bool as_operations_add_write_rawp (as_operations *ops, const as_bin_name name, const uint8_t *value, uint32_t size, bool free)
 
static bool as_operations_add_write_str (as_operations *ops, const as_bin_name name, const char *value)
 
bool as_operations_add_write_strp (as_operations *ops, const as_bin_name name, const char *value, bool free)
 
void as_operations_destroy (as_operations *ops)
 
as_operationsas_operations_init (as_operations *ops, uint16_t nops)
 
#define as_operations_inita(__ops, __nops)
 
as_operationsas_operations_new (uint16_t nops)
 

Friends And Related Function Documentation

static bool as_operations_add_append_raw ( as_operations ops,
const as_bin_name  name,
const uint8_t *  value,
uint32_t  size 
)
related

Add a AS_OPERATOR_APPEND bin operation with a raw bytes value.

Parameters
opsThe as_operations to append the operation to.
nameThe name of the bin to perform the operation on.
valueThe value to be used in the operation. Must last for the lifetime of the operations.
sizeThe size of the value.
Returns
true on success. Otherwise an error occurred.

Definition at line 643 of file as_operations.h.

References as_operations_add_append_rawp().

bool as_operations_add_append_rawp ( as_operations ops,
const as_bin_name  name,
const uint8_t *  value,
uint32_t  size,
bool  free 
)
related

Add a AS_OPERATOR_APPEND bin operation with a raw bytes value.

Parameters
opsThe as_operations to append the operation to.
nameThe name of the bin to perform the operation on.
valueThe value to be used in the operation.
sizeThe size of the value.
freeIf true, then the value will be freed when the operations is destroyed.
Returns
true on success. Otherwise an error occurred.
static bool as_operations_add_append_str ( as_operations ops,
const as_bin_name  name,
const char *  value 
)
related

Add a AS_OPERATOR_APPEND bin operation with a NULL-terminated string value.

Parameters
opsThe as_operations to append the operation to.
nameThe name of the bin to perform the operation on.
valueThe value to be used in the operation. Must last for the lifetime of the operations.
Returns
true on success. Otherwise an error occurred.

Definition at line 609 of file as_operations.h.

References as_operations_add_append_strp().

bool as_operations_add_append_strp ( as_operations ops,
const as_bin_name  name,
const char *  value,
bool  free 
)
related

Add a AS_OPERATOR_APPEND bin operation with a NULL-terminated string value.

Parameters
opsThe as_operations to append the operation to.
nameThe name of the bin to perform the operation on.
valueThe value to be used in the operation.
freeIf true, then the value will be freed when the operations is destroyed.
Returns
true on success. Otherwise an error occurred.
bool as_operations_add_incr ( as_operations ops,
const as_bin_name  name,
int64_t  value 
)
related

Add a AS_OPERATOR_INCR bin operation with (required) int64_t value.

Parameters
opsThe as_operations to append the operation to.
nameThe name of the bin to perform the operation on.
valueThe value to be used in the operation.
Returns
true on success. Otherwise an error occurred.
static bool as_operations_add_prepend_raw ( as_operations ops,
const as_bin_name  name,
const uint8_t *  value,
uint32_t  size 
)
related

Add a AS_OPERATOR_PREPEND bin operation with a raw bytes value.

Parameters
opsThe as_operations to append the operation to.
nameThe name of the bin to perform the operation on.
valueThe value to be used in the operation. Must last for the lifetime of the operations.
sizeThe size of the value.
Returns
true on success. Otherwise an error occurred.

Definition at line 577 of file as_operations.h.

References as_operations_add_prepend_rawp().

bool as_operations_add_prepend_rawp ( as_operations ops,
const as_bin_name  name,
const uint8_t *  value,
uint32_t  size,
bool  free 
)
related

Add a AS_OPERATOR_PREPEND bin operation with a raw bytes value.

Parameters
opsThe as_operations to append the operation to.
nameThe name of the bin to perform the operation on.
valueThe value to be used in the operation.
sizeThe size of the value.
freeIf true, then the value will be freed when the operations is destroyed.
Returns
true on success. Otherwise an error occurred.
static bool as_operations_add_prepend_str ( as_operations ops,
const as_bin_name  name,
const char *  value 
)
related

Add a AS_OPERATOR_PREPEND bin operation with a NULL-terminated string value.

Parameters
opsThe as_operations to append the operation to.
nameThe name of the bin to perform the operation on.
valueThe value to be used in the operation. Must last for the lifetime of the operations.
Returns
true on success. Otherwise an error occurred.

Definition at line 543 of file as_operations.h.

References as_operations_add_prepend_strp().

bool as_operations_add_prepend_strp ( as_operations ops,
const as_bin_name  name,
const char *  value,
bool  free 
)
related

Add a AS_OPERATOR_PREPEND bin operation with a NULL-terminated string value.

Parameters
opsThe as_operations to append the operation to.
nameThe name of the bin to perform the operation on.
valueThe value to be used in the operation.
freeIf true, then the value will be freed when the operations is destroyed.
Returns
true on success. Otherwise an error occurred.
bool as_operations_add_read ( as_operations ops,
const as_bin_name  name 
)
related

Add a AS_OPERATOR_READ bin operation.

Parameters
opsThe as_operations to append the operation to.
nameThe name of the bin to perform the operation on.
Returns
true on success. Otherwise an error occurred.
bool as_operations_add_touch ( as_operations ops)
related

Add a AS_OPERATOR_TOUCH record operation.

Parameters
opsThe as_operations to append the operation to.
Returns
true on success. Otherwise an error occurred.
bool as_operations_add_write ( as_operations ops,
const as_bin_name  name,
as_bin_value value 
)
related

Add a AS_OPERATOR_WRITE bin operation.

Parameters
opsThe as_operations to append the operation to.
nameThe name of the bin to perform the operation on.
valueThe value to be used in the operation.
Returns
true on success. Otherwise an error occurred.
bool as_operations_add_write_int64 ( as_operations ops,
const as_bin_name  name,
int64_t  value 
)
related

Add a AS_OPERATOR_WRITE bin operation with an int64_t value.

Parameters
opsThe as_operations to append the operation to.
nameThe name of the bin to perform the operation on.
valueThe value to be used in the operation.
Returns
true on success. Otherwise an error occurred.
static bool as_operations_add_write_raw ( as_operations ops,
const as_bin_name  name,
const uint8_t *  value,
uint32_t  size 
)
related

Add a AS_OPERATOR_WRITE bin operation with a raw bytes value.

Parameters
opsThe as_operations to append the operation to.
nameThe name of the bin to perform the operation on.
valueThe value to be used in the operation.
sizeThe size of the value. Must last for the lifetime of the operations.
Returns
true on success. Otherwise an error occurred.

Definition at line 484 of file as_operations.h.

References as_operations_add_write_rawp().

bool as_operations_add_write_rawp ( as_operations ops,
const as_bin_name  name,
const uint8_t *  value,
uint32_t  size,
bool  free 
)
related

Add a AS_OPERATOR_WRITE bin operation with a raw bytes value.

Parameters
opsThe as_operations to append the operation to.
nameThe name of the bin to perform the operation on.
valueThe value to be used in the operation.
sizeThe size of the value.
freeIf true, then the value will be freed when the operations is destroyed.
Returns
true on success. Otherwise an error occurred.
static bool as_operations_add_write_str ( as_operations ops,
const as_bin_name  name,
const char *  value 
)
related

Add a AS_OPERATOR_WRITE bin operation with a NULL-terminated string value.

Parameters
opsThe as_operations to append the operation to.
nameThe name of the bin to perform the operation on.
valueThe value to be used in the operation. Must last for the lifetime of the operations.
Returns
true on success. Otherwise an error occurred.

Definition at line 450 of file as_operations.h.

References as_operations_add_write_strp().

bool as_operations_add_write_strp ( as_operations ops,
const as_bin_name  name,
const char *  value,
bool  free 
)
related

Add a AS_OPERATOR_WRITE bin operation with a NULL-terminated string value.

Parameters
opsThe as_operations to append the operation to.
nameThe name of the bin to perform the operation on.
valueThe value to be used in the operation.
freeIf true, then the value will be freed when the operations is destroyed.
Returns
true on success. Otherwise an error occurred.
void as_operations_destroy ( as_operations ops)
related

Destroy an as_operations and release associated resources.

Parameters
opsThe as_operations to destroy.
as_operations * as_operations_init ( as_operations ops,
uint16_t  nops 
)
related

Intializes a stack allocated as_operations.

as_operations_add_incr(&ops, "bin1", 123);
as_operations_add_append_str(&ops, "bin2", "abc");

Use as_operations_destroy() to free the resources allocated to the as_operations.

Parameters
opsThe as_operations to initialize.
nopsThe number of as_operations.binops.entries to allocate on the heap.
Returns
The initialized as_operations on success. Otherwise NULL.
#define as_operations_inita (   __ops,
  __nops 
)
related
Value:
(__ops)->_free = false;\
(__ops)->gen = 0;\
(__ops)->ttl = 0;\
(__ops)->binops._free = false;\
(__ops)->binops.capacity = __nops;\
(__ops)->binops.size = 0;\
(__ops)->binops.entries = (as_binop *) alloca(sizeof(as_binop) * __nops);

Initializes a stack allocated as_operations (as_operations) and allocates __nops number of entries on the stack.

as_operations_add_incr(&ops, "bin1", 123);
as_operations_add_append_str(&ops, "bin2", "abc");
Parameters
__opsThe as_operations * to initialize.
__nopsThe number of as_binops.entries to allocate on the stack.

Definition at line 324 of file as_operations.h.

as_operations * as_operations_new ( uint16_t  nops)
related

Create and initialize a heap allocated as_operations.

as_operations_add_incr(ops, "bin1", 123);
as_operations_add_append_str(ops, "bin2", "abc");

Use as_operations_destroy() to free the resources allocated to the as_operations.

Parameters
nopsThe number of as_operations.binops.entries to allocate on the heap.
Returns
The new as_operations on success. Otherwise NULL.

Field Documentation

bool as_operations::_free
private

If true, then as_operations_destroy() will free this instance.

Definition at line 283 of file as_operations.h.

as_binops as_operations::binops

Operations to be performed on the bins of a record.

Definition at line 298 of file as_operations.h.

uint16_t as_operations::gen

The generation of the record.

Definition at line 288 of file as_operations.h.

uint32_t as_operations::ttl

The time-to-live (expiration) of the record in seconds.

Definition at line 293 of file as_operations.h.


The documentation for this struct was generated from the following file: