proton
0
|
Data Structures | |
struct | pn_atom_t |
A descriminated union that holds any scalar AMQP value. More... | |
Typedefs | |
typedef struct pn_data_t | pn_data_t |
An AMQP Data object. More... | |
Enumerations | |
enum | pn_type_t { PN_NULL = 1, PN_BOOL = 2, PN_UBYTE = 3, PN_BYTE = 4, PN_USHORT = 5, PN_SHORT = 6, PN_UINT = 7, PN_INT = 8, PN_CHAR = 9, PN_ULONG = 10, PN_LONG = 11, PN_TIMESTAMP = 12, PN_FLOAT = 13, PN_DOUBLE = 14, PN_DECIMAL32 = 15, PN_DECIMAL64 = 16, PN_DECIMAL128 = 17, PN_UUID = 18, PN_BINARY = 19, PN_STRING = 20, PN_SYMBOL = 21, PN_DESCRIBED = 22, PN_ARRAY = 23, PN_LIST = 24, PN_MAP = 25 } |
Identifies an AMQP type. More... | |
Functions | |
PN_EXTERN const char * | pn_type_name (pn_type_t type) |
Return a string name for an AMQP type. More... | |
PN_EXTERN pn_data_t * | pn_data (size_t capacity) |
Construct a pn_data_t object with the supplied initial capacity. More... | |
PN_EXTERN void | pn_data_free (pn_data_t *data) |
Free a pn_data_t object. More... | |
PN_EXTERN int | pn_data_errno (pn_data_t *data) |
Access the current error code for a given pn_data_t. More... | |
PN_EXTERN pn_error_t * | pn_data_error (pn_data_t *data) |
Access the current error for a givn pn_data_t. More... | |
PN_EXTERN int | pn_data_vfill (pn_data_t *data, const char *fmt, va_list ap) |
PN_EXTERN int | pn_data_fill (pn_data_t *data, const char *fmt,...) |
PN_EXTERN int | pn_data_vscan (pn_data_t *data, const char *fmt, va_list ap) |
PN_EXTERN int | pn_data_scan (pn_data_t *data, const char *fmt,...) |
PN_EXTERN void | pn_data_clear (pn_data_t *data) |
Clears a pn_data_t object. More... | |
PN_EXTERN size_t | pn_data_size (pn_data_t *data) |
Returns the total number of nodes contained in a pn_data_t object. More... | |
PN_EXTERN void | pn_data_rewind (pn_data_t *data) |
Clears current node pointer and sets the parent to the root node. More... | |
PN_EXTERN bool | pn_data_next (pn_data_t *data) |
Advances the current node to its next sibling and returns true. More... | |
PN_EXTERN bool | pn_data_prev (pn_data_t *data) |
Moves the current node to its previous sibling and returns true. More... | |
PN_EXTERN bool | pn_data_enter (pn_data_t *data) |
Sets the parent node to the current node and clears the current node. More... | |
PN_EXTERN bool | pn_data_exit (pn_data_t *data) |
Sets the current node to the parent node and the parent node to its own parent. More... | |
PN_EXTERN bool | pn_data_lookup (pn_data_t *data, const char *name) |
PN_EXTERN pn_type_t | pn_data_type (pn_data_t *data) |
Access the type of the current node. More... | |
PN_EXTERN int | pn_data_print (pn_data_t *data) |
Prints the contents of a pn_data_t object using pn_data_format() to stdout. More... | |
PN_EXTERN int | pn_data_format (pn_data_t *data, char *bytes, size_t *size) |
Formats the contents of a pn_data_t object in a human readable way and writes them to the indicated location. More... | |
PN_EXTERN ssize_t | pn_data_encode (pn_data_t *data, char *bytes, size_t size) |
Writes the contents of a data object to the given buffer as an AMQP data stream. More... | |
PN_EXTERN ssize_t | pn_data_encoded_size (pn_data_t *data) |
Returns the number of bytes needed to encode a data object. More... | |
PN_EXTERN ssize_t | pn_data_decode (pn_data_t *data, const char *bytes, size_t size) |
Decodes a single value from the contents of the AMQP data stream into the current data object. More... | |
PN_EXTERN int | pn_data_put_list (pn_data_t *data) |
Puts an empty list value into a pn_data_t. More... | |
PN_EXTERN int | pn_data_put_map (pn_data_t *data) |
Puts an empty map value into a pn_data_t. More... | |
PN_EXTERN int | pn_data_put_array (pn_data_t *data, bool described, pn_type_t type) |
Puts an empty array value into a pn_data_t. More... | |
PN_EXTERN int | pn_data_put_described (pn_data_t *data) |
Puts a described value into a pn_data_t object. More... | |
PN_EXTERN int | pn_data_put_null (pn_data_t *data) |
Puts a PN_NULL value. More... | |
PN_EXTERN int | pn_data_put_bool (pn_data_t *data, bool b) |
Puts a PN_BOOL value. More... | |
PN_EXTERN int | pn_data_put_ubyte (pn_data_t *data, uint8_t ub) |
Puts a PN_UBYTE value. More... | |
PN_EXTERN int | pn_data_put_byte (pn_data_t *data, int8_t b) |
Puts a PN_BYTE value. More... | |
PN_EXTERN int | pn_data_put_ushort (pn_data_t *data, uint16_t us) |
Puts a PN_USHORT value. More... | |
PN_EXTERN int | pn_data_put_short (pn_data_t *data, int16_t s) |
Puts a PN_SHORT value. More... | |
PN_EXTERN int | pn_data_put_uint (pn_data_t *data, uint32_t ui) |
Puts a PN_UINT value. More... | |
PN_EXTERN int | pn_data_put_int (pn_data_t *data, int32_t i) |
Puts a PN_INT value. More... | |
PN_EXTERN int | pn_data_put_char (pn_data_t *data, pn_char_t c) |
Puts a PN_CHAR value. More... | |
PN_EXTERN int | pn_data_put_ulong (pn_data_t *data, uint64_t ul) |
Puts a PN_ULONG value. More... | |
PN_EXTERN int | pn_data_put_long (pn_data_t *data, int64_t l) |
Puts a PN_LONG value. More... | |
PN_EXTERN int | pn_data_put_timestamp (pn_data_t *data, pn_timestamp_t t) |
Puts a PN_TIMESTAMP value. More... | |
PN_EXTERN int | pn_data_put_float (pn_data_t *data, float f) |
Puts a PN_FLOAT value. More... | |
PN_EXTERN int | pn_data_put_double (pn_data_t *data, double d) |
Puts a PN_DOUBLE value. More... | |
PN_EXTERN int | pn_data_put_decimal32 (pn_data_t *data, pn_decimal32_t d) |
Puts a PN_DECIMAL32 value. More... | |
PN_EXTERN int | pn_data_put_decimal64 (pn_data_t *data, pn_decimal64_t d) |
Puts a PN_DECIMAL64 value. More... | |
PN_EXTERN int | pn_data_put_decimal128 (pn_data_t *data, pn_decimal128_t d) |
Puts a PN_DECIMAL128 value. More... | |
PN_EXTERN int | pn_data_put_uuid (pn_data_t *data, pn_uuid_t u) |
Puts a PN_UUID value. More... | |
PN_EXTERN int | pn_data_put_binary (pn_data_t *data, pn_bytes_t bytes) |
Puts a PN_BINARY value. More... | |
PN_EXTERN int | pn_data_put_string (pn_data_t *data, pn_bytes_t string) |
Puts a PN_STRING value. More... | |
PN_EXTERN int | pn_data_put_symbol (pn_data_t *data, pn_bytes_t symbol) |
Puts a PN_SYMBOL value. More... | |
PN_EXTERN int | pn_data_put_atom (pn_data_t *data, pn_atom_t atom) |
Puts any scalar value value. More... | |
PN_EXTERN size_t | pn_data_get_list (pn_data_t *data) |
If the current node is a list, return the number of elements, otherwise return zero. More... | |
PN_EXTERN size_t | pn_data_get_map (pn_data_t *data) |
If the current node is a map, return the number of child elements, otherwise return zero. More... | |
PN_EXTERN size_t | pn_data_get_array (pn_data_t *data) |
PN_EXTERN bool | pn_data_is_array_described (pn_data_t *data) |
Returns true if the current node points to a described array. More... | |
PN_EXTERN pn_type_t | pn_data_get_array_type (pn_data_t *data) |
Return the array type if the current node points to an array, undefined otherwise. More... | |
PN_EXTERN bool | pn_data_is_described (pn_data_t *data) |
Checks if the current node is a described value. More... | |
PN_EXTERN bool | pn_data_is_null (pn_data_t *data) |
Checks if the current node is a PN_NULL. More... | |
PN_EXTERN bool | pn_data_get_bool (pn_data_t *data) |
If the current node is a PN_BOOL, returns its value. More... | |
PN_EXTERN uint8_t | pn_data_get_ubyte (pn_data_t *data) |
If the current node is a PN_UBYTE, return its value, otherwise return 0. More... | |
PN_EXTERN int8_t | pn_data_get_byte (pn_data_t *data) |
If the current node is a signed byte, returns its value, returns 0 otherwise. More... | |
PN_EXTERN uint16_t | pn_data_get_ushort (pn_data_t *data) |
If the current node is an unsigned short, returns its value, returns 0 otherwise. More... | |
PN_EXTERN int16_t | pn_data_get_short (pn_data_t *data) |
If the current node is a signed short, returns its value, returns 0 otherwise. More... | |
PN_EXTERN uint32_t | pn_data_get_uint (pn_data_t *data) |
If the current node is an unsigned int, returns its value, returns 0 otherwise. More... | |
PN_EXTERN int32_t | pn_data_get_int (pn_data_t *data) |
If the current node is a signed int, returns its value, returns 0 otherwise. More... | |
PN_EXTERN pn_char_t | pn_data_get_char (pn_data_t *data) |
If the current node is a char, returns its value, returns 0 otherwise. More... | |
PN_EXTERN uint64_t | pn_data_get_ulong (pn_data_t *data) |
If the current node is an unsigned long, returns its value, returns 0 otherwise. More... | |
PN_EXTERN int64_t | pn_data_get_long (pn_data_t *data) |
If the current node is an signed long, returns its value, returns 0 otherwise. More... | |
PN_EXTERN pn_timestamp_t | pn_data_get_timestamp (pn_data_t *data) |
If the current node is a timestamp, returns its value, returns 0 otherwise. More... | |
PN_EXTERN float | pn_data_get_float (pn_data_t *data) |
If the current node is a float, returns its value, raises 0 otherwise. More... | |
PN_EXTERN double | pn_data_get_double (pn_data_t *data) |
If the current node is a double, returns its value, returns 0 otherwise. More... | |
PN_EXTERN pn_decimal32_t | pn_data_get_decimal32 (pn_data_t *data) |
If the current node is a decimal32, returns its value, returns 0 otherwise. More... | |
PN_EXTERN pn_decimal64_t | pn_data_get_decimal64 (pn_data_t *data) |
If the current node is a decimal64, returns its value, returns 0 otherwise. More... | |
PN_EXTERN pn_decimal128_t | pn_data_get_decimal128 (pn_data_t *data) |
If the current node is a decimal128, returns its value, returns 0 otherwise. More... | |
PN_EXTERN pn_uuid_t | pn_data_get_uuid (pn_data_t *data) |
If the current node is a UUID, returns its value, returns None otherwise. More... | |
PN_EXTERN pn_bytes_t | pn_data_get_binary (pn_data_t *data) |
If the current node is binary, returns its value, returns "" otherwise. More... | |
PN_EXTERN pn_bytes_t | pn_data_get_string (pn_data_t *data) |
If the current node is a string, returns its value, returns "" otherwise. More... | |
PN_EXTERN pn_bytes_t | pn_data_get_symbol (pn_data_t *data) |
If the current node is a symbol, returns its value, returns "" otherwise. More... | |
PN_EXTERN pn_bytes_t | pn_data_get_bytes (pn_data_t *data) |
If the current node is a symbol, string, or binary, return the bytes representing its value. More... | |
PN_EXTERN pn_atom_t | pn_data_get_atom (pn_data_t *data) |
If the current node is a scalar value, return it as a pn_atom_t. More... | |
PN_EXTERN int | pn_data_copy (pn_data_t *data, pn_data_t *src) |
Copy the contents of another pn_data_t object. More... | |
PN_EXTERN int | pn_data_append (pn_data_t *data, pn_data_t *src) |
Append the contents of another pn_data_t object. More... | |
PN_EXTERN int | pn_data_appendn (pn_data_t *data, pn_data_t *src, int limit) |
Append up to n values from the contents of another pn_data_t object. More... | |
PN_EXTERN void | pn_data_narrow (pn_data_t *data) |
Modify a pn_data_t object to behave as if the current node is the root node of the tree. More... | |
PN_EXTERN void | pn_data_widen (pn_data_t *data) |
Reverse the effect of pn_data_narrow(). More... | |
PN_EXTERN pn_handle_t | pn_data_point (pn_data_t *data) |
Returns a handle for the current navigational state of a pn_data_t so that it can be later restored using pn_data_restore(). More... | |
PN_EXTERN bool | pn_data_restore (pn_data_t *data, pn_handle_t point) |
Restores a prior navigational state that was saved using pn_data_point(). More... | |
PN_EXTERN void | pn_data_dump (pn_data_t *data) |
Dumps a debug representation of the internal state of the pn_data_t object that includes its navigational state to stdout for debugging purposes. More... | |
An AMQP Data object.
A pn_data_t object provides an interface for decoding, extracting, creating, and encoding arbitrary AMQP data. A pn_data_t object contains a tree of AMQP values. Leaf nodes in this tree correspond to scalars in the AMQP type system such as ints or strings . Non-leaf nodes in this tree correspond to compound values in the AMQP type system such as lists , maps , arrays , or described values. The root node of the tree is the pn_data_t object itself and can have an arbitrary number of children.
A pn_data_t object maintains the notion of the current node and the current parent node. Siblings are ordered within their parent. Values are accessed and/or added by using the pn_data_next(), pn_data_prev(), pn_data_enter(), and pn_data_exit() operations to navigate to the desired location in the tree and using the supplied variety of pn_data_put_* / pn_data_get_* operations to access or add a value of the desired type.
The pn_data_put_* operations will always add a value after the current node in the tree. If the current node has a next sibling the pn_data_put_* operations will overwrite the value on this node. If there is no current node or the current node has no next sibling then one will be added. The pn_data_put_* operations always set the added/modified node to the current node. The pn_data_get_* operations read the value of the current node and do not change which node is current.
The following types of scalar values are supported:
The following types of compound values are supported:
enum pn_type_t |
Identifies an AMQP type.
Construct a pn_data_t object with the supplied initial capacity.
A pn_data_t will grow automatically as needed, so an initial capacity of 0 is permitted.
capacity | the initial capacity |
Append the contents of another pn_data_t object.
data | a pn_data_t object |
src | the sourc pn_data_t to append from |
Append up to n values from the contents of another pn_data_t object.
data | a pn_data_t object |
src | the sourc pn_data_t to append from |
limit | the maximum number of values to append |
Clears a pn_data_t object.
A cleared pn_data_t object is equivalent to a newly constructed one.
data | the pn_data_t object to clear |
Copy the contents of another pn_data_t object.
Any values in the data object will be lost.
data | a pn_data_t object |
src | the sourc pn_data_t to copy from |
Decodes a single value from the contents of the AMQP data stream into the current data object.
Note that if the pn_data_t object is pointing to a current node, the decoded value will overwrite the current one. If the pn_data_t object has no current node then a node will be appended to the current parent. If there is no current parent then a node will be appended to the pn_data_t itself.
Upon success, this operation returns the number of bytes consumed from the AMQP data stream. Upon failure, this operation returns an error code.
data | a pn_data_t object |
bytes | a pointer to an encoded AMQP data stream |
size | the size of the encoded AMQP data stream |
Dumps a debug representation of the internal state of the pn_data_t object that includes its navigational state to stdout for debugging purposes.
data | a pn_data_t object that is behaving in a confusing way |
Writes the contents of a data object to the given buffer as an AMQP data stream.
data | the data object to encode |
bytes | the buffer for encoded data |
size | the size of the buffer |
ssize_t | returns the size of the encoded data on success or an error code on failure |
Returns the number of bytes needed to encode a data object.
data | the data object |
ssize_t | returns the size of the encoded data or an error code if data is invalid. |
Sets the parent node to the current node and clears the current node.
Clearing the current node sets it before the first child, calling pn_data_next() advances to the first child. This operation will return false if there is no current node or if the current node is not a compound type.
data | a pn_data_object |
Access the current error code for a given pn_data_t.
data | a pn_data_t object |
PN_EXTERN pn_error_t* pn_data_error | ( | pn_data_t * | data | ) |
Access the current error for a givn pn_data_t.
Every pn_data_t has an error descriptor that is created with the pn_data_t and dies with the pn_data_t. The error descriptor is updated whenever an operation fails. The pn_data_error() function may be used to access a pn_data_t's error descriptor.
data | a pn_data_t object |
Sets the current node to the parent node and the parent node to its own parent.
This operation will return false if there is no current node or parent node.
data | a pn_data object |
Formats the contents of a pn_data_t object in a human readable way and writes them to the indicated location.
The size pointer must hold the amount of free space following the bytes pointer, and upon success will be updated to indicate how much space has been used.
data | a pn_data_t object |
bytes | a buffer to write the output to |
size | a pointer to the size of the buffer |
Free a pn_data_t object.
data | a pn_data_t object or NULL |
Return the array type if the current node points to an array, undefined otherwise.
data | a pn_data_t object |
PN_EXTERN pn_bytes_t pn_data_get_binary | ( | pn_data_t * | data | ) |
If the current node is binary, returns its value, returns "" otherwise.
The pn_bytes_t returned will point to memory held inside the pn_data_t. When the pn_data_t is cleared or freed, this memory will be reclaimed.
data | a pn_data_t object |
If the current node is a PN_BOOL, returns its value.
data | a pn_data_t object |
If the current node is a signed byte, returns its value, returns 0 otherwise.
data | a pn_data_t object |
PN_EXTERN pn_bytes_t pn_data_get_bytes | ( | pn_data_t * | data | ) |
If the current node is a symbol, string, or binary, return the bytes representing its value.
The pn_bytes_t returned will point to memory held inside the pn_data_t. When the pn_data_t is cleared or freed, this memory will be reclaimed.
data | a pn_data_t object |
If the current node is a char, returns its value, returns 0 otherwise.
data | a pn_data_t object |
PN_EXTERN pn_decimal128_t pn_data_get_decimal128 | ( | pn_data_t * | data | ) |
If the current node is a decimal128, returns its value, returns 0 otherwise.
data | a pn_data_t object |
PN_EXTERN pn_decimal32_t pn_data_get_decimal32 | ( | pn_data_t * | data | ) |
If the current node is a decimal32, returns its value, returns 0 otherwise.
data | a pn_data_t object |
PN_EXTERN pn_decimal64_t pn_data_get_decimal64 | ( | pn_data_t * | data | ) |
If the current node is a decimal64, returns its value, returns 0 otherwise.
data | a pn_data_t object |
If the current node is a double, returns its value, returns 0 otherwise.
data | a pn_data_t object |
If the current node is a float, returns its value, raises 0 otherwise.
data | a pn_data_t object |
If the current node is a signed int, returns its value, returns 0 otherwise.
data | a pn_data_t object |
If the current node is a list, return the number of elements, otherwise return zero.
List elements can be accessed by entering the list.
.*
data | a pn_data_t object |
If the current node is an signed long, returns its value, returns 0 otherwise.
data | a pn_data_t object |
If the current node is a map, return the number of child elements, otherwise return zero.
Key value pairs can be accessed by entering the map.
data | a pn_data_t object |
If the current node is a signed short, returns its value, returns 0 otherwise.
data | a pn_data_t object |
PN_EXTERN pn_bytes_t pn_data_get_string | ( | pn_data_t * | data | ) |
If the current node is a string, returns its value, returns "" otherwise.
The pn_bytes_t returned will point to memory held inside the pn_data_t. When the pn_data_t is cleared or freed, this memory will be reclaimed.
data | a pn_data_t object |
PN_EXTERN pn_bytes_t pn_data_get_symbol | ( | pn_data_t * | data | ) |
If the current node is a symbol, returns its value, returns "" otherwise.
The pn_bytes_t returned will point to memory held inside the pn_data_t. When the pn_data_t is cleared or freed, this memory will be reclaimed.
data | a pn_data_t object |
PN_EXTERN pn_timestamp_t pn_data_get_timestamp | ( | pn_data_t * | data | ) |
If the current node is a timestamp, returns its value, returns 0 otherwise.
data | a pn_data_t object |
If the current node is a PN_UBYTE, return its value, otherwise return 0.
data | a pn_data_t object |
If the current node is an unsigned int, returns its value, returns 0 otherwise.
data | a pn_data_t object |
If the current node is an unsigned long, returns its value, returns 0 otherwise.
data | a pn_data_t object |
If the current node is an unsigned short, returns its value, returns 0 otherwise.
data | a pn_data_t object |
If the current node is a UUID, returns its value, returns None otherwise.
data | a pn_data_t object |
Returns true if the current node points to a described array.
data | a pn_data_t object |
Checks if the current node is a described value.
The descriptor and value may be accessed by entering the described value node.
data | a pn_data_t object |
Modify a pn_data_t object to behave as if the current node is the root node of the tree.
This impacts the behaviour of pn_data_rewind(), pn_data_next(), pn_data_prev(), and anything else that depends on the navigational state of the pn_data_t object. Use pn_data_widen() to reverse the effect of this operation.
data | a pn_data_t object |
Advances the current node to its next sibling and returns true.
If there is no next sibling the current node remains unchanged and false is returned.
data | a pn_data_t object |
PN_EXTERN pn_handle_t pn_data_point | ( | pn_data_t * | data | ) |
Returns a handle for the current navigational state of a pn_data_t so that it can be later restored using pn_data_restore().
data | a pn_data_t object |
Moves the current node to its previous sibling and returns true.
If there is no previous sibling the current node remains unchanged and false is returned.
data | a pn_data_t object |
Prints the contents of a pn_data_t object using pn_data_format() to stdout.
data | a pn_data_t object |
Puts an empty array value into a pn_data_t.
Elements may be filled by entering the array node and putting the element values. The values must all be of the specified array element type. If an array is described then the first child value of the array is the descriptor and may be of any type.
data | a pn_data_t object |
described | specifies whether the array is described |
type | the type of the array |
Puts any scalar value value.
data | a pn_data_t object |
atom | the value |
PN_EXTERN int pn_data_put_binary | ( | pn_data_t * | data, |
pn_bytes_t | bytes | ||
) |
Puts a PN_BINARY value.
The bytes referenced by the pn_bytes_t argument are copied and stored inside the pn_data_t object.
data | a pn_data_t object |
bytes | the value |
Puts a PN_BOOL value.
data | a pn_data_t object |
b | the value |
Puts a PN_BYTE value.
data | a pn_data_t object |
b | the value |
Puts a PN_CHAR value.
data | a pn_data_t object |
c | the value |
PN_EXTERN int pn_data_put_decimal128 | ( | pn_data_t * | data, |
pn_decimal128_t | d | ||
) |
Puts a PN_DECIMAL128 value.
data | a pn_data_t object |
d | the value |
PN_EXTERN int pn_data_put_decimal32 | ( | pn_data_t * | data, |
pn_decimal32_t | d | ||
) |
Puts a PN_DECIMAL32 value.
data | a pn_data_t object |
d | the value |
PN_EXTERN int pn_data_put_decimal64 | ( | pn_data_t * | data, |
pn_decimal64_t | d | ||
) |
Puts a PN_DECIMAL64 value.
data | a pn_data_t object |
d | the value |
Puts a described value into a pn_data_t object.
A described node has two children, the descriptor and the value. These are specified by entering the node and putting the desired values.
data | a pn_data_t object |
Puts a PN_DOUBLE value.
data | a pn_data_t object |
d | the value |
Puts a PN_FLOAT value.
data | a pn_data_t object |
f | the value |
Puts a PN_INT value.
data | a pn_data_t object |
i | the value |
Puts an empty list value into a pn_data_t.
Elements may be filled by entering the list node using pn_data_enter() and using ::pn_data_put_* to add the desired contents. Once done, pn_data_exit() may be used to return to the current level in the tree and put more values.
data | a pn_data_t object |
Puts a PN_LONG value.
data | a pn_data_t object |
l | the value |
Puts an empty map value into a pn_data_t.
Elements may be filled by entering the map node and putting alternating key value pairs.
data | a pn_data_t object |
Puts a PN_NULL value.
data | a pn_data_t object |
Puts a PN_SHORT value.
data | a pn_data_t object |
s | the value |
PN_EXTERN int pn_data_put_string | ( | pn_data_t * | data, |
pn_bytes_t | string | ||
) |
Puts a PN_STRING value.
The bytes referenced by the pn_bytes_t argument are copied and stored inside the pn_data_t object.
data | a pn_data_t object |
string | utf8 encoded unicode |
PN_EXTERN int pn_data_put_symbol | ( | pn_data_t * | data, |
pn_bytes_t | symbol | ||
) |
Puts a PN_SYMBOL value.
The bytes referenced by the pn_bytes_t argument are copied and stored inside the pn_data_t object.
data | a pn_data_t object |
symbol | ascii encoded symbol |
PN_EXTERN int pn_data_put_timestamp | ( | pn_data_t * | data, |
pn_timestamp_t | t | ||
) |
Puts a PN_TIMESTAMP value.
data | a pn_data_t object |
t | the value |
Puts a PN_UBYTE value.
data | a pn_data_t object |
ub | the value |
Puts a PN_UINT value.
data | a pn_data_t object |
ui | the value |
Puts a PN_ULONG value.
data | a pn_data_t object |
ul | the value |
Puts a PN_USHORT value.
data | a pn_data_t object |
us | the value |
Puts a PN_UUID value.
data | a pn_data_t object |
u | the value |
PN_EXTERN bool pn_data_restore | ( | pn_data_t * | data, |
pn_handle_t | point | ||
) |
Restores a prior navigational state that was saved using pn_data_point().
If the data object has been modified in such a way that the prior navigational state cannot be restored, then this will return false and the navigational state will remain unchanged, otherwise it will return true.
data | a pn_data_t object |
handle | a handle referencing the saved navigational state |
Clears current node pointer and sets the parent to the root node.
Clearing the current node sets it before the first node, calling pn_data_next() will advance to the first node.
Returns the total number of nodes contained in a pn_data_t object.
This includes all parents, children, siblings, grandchildren, etc. In other words the count of all ancesters and descendents of the current node, along with the current node if there is one.
data | a pn_data_t object |
Access the type of the current node.
Returns an undefined value if there is no current node.
data | a data object |
Reverse the effect of pn_data_narrow().
data | a pn_data_t object |