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.

mirror server hosted at Truenetwork, Russian Federation.