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

Go to the source code of this file.

Functions

size_t cbor_map_size (const cbor_item_t *item)
 Get the number of pairs. More...
 
size_t cbor_map_allocated (const cbor_item_t *item)
 Get the size of the allocated storage. More...
 
cbor_item_tcbor_new_definite_map (size_t size)
 Create a new definite map. More...
 
cbor_item_tcbor_new_indefinite_map ()
 Create a new indefinite map. More...
 
bool _cbor_map_add_key (cbor_item_t *item, cbor_item_t *key)
 Add a key to the map. More...
 
bool _cbor_map_add_value (cbor_item_t *item, cbor_item_t *value)
 Add a value to the map. More...
 
bool cbor_map_add (cbor_item_t *item, struct cbor_pair pair)
 Add a pair to the map. More...
 
bool cbor_map_is_definite (const cbor_item_t *item)
 Is this map definite? More...
 
bool cbor_map_is_indefinite (const cbor_item_t *item)
 Is this map indefinite? More...
 
struct cbor_paircbor_map_handle (const cbor_item_t *item)
 Get the pairs storage. More...
 

Function Documentation

§ _cbor_map_add_key()

bool _cbor_map_add_key ( cbor_item_t item,
cbor_item_t key 
)

Add a key to the map.

Sets the value to NULL. Internal API.

Parameters
item[borrow]A map
key[incref]The key
Returns
true on success, false if either reallocation failed or the preallcoated storage is full

Definition at line 66 of file maps.c.

§ _cbor_map_add_value()

bool _cbor_map_add_value ( cbor_item_t item,
cbor_item_t value 
)

Add a value to the map.

Assumes that _cbor_map_add_key has been called. Internal API.

Parameters
item[borrow]A map
key[incref]The value
Returns
true on success, false if either reallocation failed or the preallcoated storage is full

Definition at line 106 of file maps.c.

§ cbor_map_add()

bool cbor_map_add ( cbor_item_t item,
struct cbor_pair  pair 
)

Add a pair to the map.

For definite maps, items can only be added to the preallocated space. For indefinite maps, the storage will be expanded as needed

Parameters
item[borrow]A map
pair[incref]The key-value pair to add (incref is member-wise)
Returns
true on success, false if either reallocation failed or the preallcoated storage is full

Definition at line 118 of file maps.c.

§ cbor_map_allocated()

size_t cbor_map_allocated ( const cbor_item_t item)

Get the size of the allocated storage.

Parameters
item[borrow]A map
Returns
Allocated storage size (as the number of cbor_pair items)

Definition at line 17 of file maps.c.

§ cbor_map_handle()

struct cbor_pair* cbor_map_handle ( const cbor_item_t item)

Get the pairs storage.

Parameters
item[borrow]A map
Returns
Array of cbor_map_size pairs. Manipulation is possible as long as references remain valid.

Definition at line 137 of file maps.c.

§ cbor_map_is_definite()

bool cbor_map_is_definite ( const cbor_item_t item)

Is this map definite?

Parameters
item[borrow]A map
Returns
Is this map definite?

Definition at line 126 of file maps.c.

§ cbor_map_is_indefinite()

bool cbor_map_is_indefinite ( const cbor_item_t item)

Is this map indefinite?

Parameters
item[borrow]A map
Returns
Is this map indefinite?

Definition at line 132 of file maps.c.

§ cbor_map_size()

size_t cbor_map_size ( const cbor_item_t item)

Get the number of pairs.

Parameters
item[borrow]A map
Returns
The number of pairs

Definition at line 11 of file maps.c.

§ cbor_new_definite_map()

cbor_item_t* cbor_new_definite_map ( size_t  size)

Create a new definite map.

Parameters
sizeThe number of slots to preallocate
Returns
new definite map. NULL on malloc failure.

Definition at line 23 of file maps.c.

§ cbor_new_indefinite_map()

cbor_item_t* cbor_new_indefinite_map ( )

Create a new indefinite map.

Parameters
sizeThe number of slots to preallocate
Returns
new definite map. NULL on malloc failure.

Definition at line 46 of file maps.c.