libcbor  0.5.0
libcbor is a C library for parsing and generating CBOR, the general-purpose schema-less binary data format.
Functions
arrays.c File Reference
#include <string.h>
#include "arrays.h"
#include "internal/memory_utils.h"

Go to the source code of this file.

Functions

size_t cbor_array_size (const cbor_item_t *item)
 Get the number of members. More...
 
size_t cbor_array_allocated (const cbor_item_t *item)
 Get the size of the allocated storage. More...
 
cbor_item_tcbor_array_get (const cbor_item_t *item, size_t index)
 Get item by index. More...
 
bool cbor_array_set (cbor_item_t *item, size_t index, cbor_item_t *value)
 Set item by index. More...
 
bool cbor_array_replace (cbor_item_t *item, size_t index, cbor_item_t *value)
 Replace item at an index. More...
 
bool cbor_array_push (cbor_item_t *array, cbor_item_t *pushee)
 Append to the end. More...
 
bool cbor_array_is_definite (const cbor_item_t *item)
 Is the array definite? More...
 
bool cbor_array_is_indefinite (const cbor_item_t *item)
 Is the array indefinite? More...
 
cbor_item_t ** cbor_array_handle (const cbor_item_t *item)
 Get the array contents. More...
 
cbor_item_tcbor_new_definite_array (size_t size)
 Create new definite array. More...
 
cbor_item_tcbor_new_indefinite_array ()
 Create new indefinite array. More...
 

Function Documentation

§ cbor_array_allocated()

size_t cbor_array_allocated ( const cbor_item_t item)

Get the size of the allocated storage.

Parameters
item[borrow]An array
Returns
The size of the allocated storage (number of items)

Definition at line 18 of file arrays.c.

§ cbor_array_get()

cbor_item_t* cbor_array_get ( const cbor_item_t item,
size_t  index 
)

Get item by index.

Parameters
item[borrow]An array
indexThe index
Returns
incref The item, or NULL in case of boundary violation

Definition at line 25 of file arrays.c.

§ cbor_array_handle()

cbor_item_t** cbor_array_handle ( const cbor_item_t item)

Get the array contents.

The items may be reordered and modified as long as references remain consistent.

Parameters
item[borrow]An array
Returns
cbor_array_size items

Definition at line 100 of file arrays.c.

§ cbor_array_is_definite()

bool cbor_array_is_definite ( const cbor_item_t item)

Is the array definite?

Parameters
item[borrow]An array
Returns
Is the array definite?

Definition at line 88 of file arrays.c.

§ cbor_array_is_indefinite()

bool cbor_array_is_indefinite ( const cbor_item_t item)

Is the array indefinite?

Parameters
item[borrow]An array
Returns
Is the array indefinite?

Definition at line 94 of file arrays.c.

§ cbor_array_push()

bool cbor_array_push ( cbor_item_t array,
cbor_item_t pushee 
)

Append to the end.

For indefinite items, storage may be realloacted. For definite items, only the preallocated capacity is available.

Parameters
array[borrow]An array
pushee[incref]The item to push
Returns
true on success, false on failure

Definition at line 52 of file arrays.c.

§ cbor_array_replace()

bool cbor_array_replace ( cbor_item_t item,
size_t  index,
cbor_item_t value 
)

Replace item at an index.

The item being replace will be cbor_decref 'ed.

Parameters
item[borrow]An array
value[incref]The item to assign
indexThe index, first item is 0.
Returns
true on success, false on allocation failure.

Definition at line 42 of file arrays.c.

§ cbor_array_set()

bool cbor_array_set ( cbor_item_t item,
size_t  index,
cbor_item_t value 
)

Set item by index.

Creating arrays with holes is not possible

Parameters
item[borrow]An array
value[incref]The item to assign
indexThe index, first item is 0.
Returns
true on success, false on allocation failure.

Definition at line 30 of file arrays.c.

§ cbor_array_size()

size_t cbor_array_size ( const cbor_item_t item)

Get the number of members.

Parameters
item[borrow]An array
Returns
The number of members

Definition at line 12 of file arrays.c.

§ cbor_new_definite_array()

cbor_item_t* cbor_new_definite_array ( size_t  size)

Create new definite array.

Parameters
sizeNumber of slots to preallocate
Returns
new array or NULL upon malloc failure

Definition at line 106 of file arrays.c.

§ cbor_new_indefinite_array()

cbor_item_t* cbor_new_indefinite_array ( )

Create new indefinite array.

Returns
new array or NULL upon malloc failure

Definition at line 138 of file arrays.c.