**Experimental** - Stream-like decoder from AMQP bytes to C++ values. More...
#include <decoder.hpp>
Public Member Functions | |
decoder (const data &d, bool exact=false) | |
Wrap a Proton C data object. | |
decoder (const internal::value_base &, bool exact=false) | |
Attach decoder to a proton::value. | |
void | decode (const char *buffer, size_t size) |
Decode AMQP data from a buffer and add it to the end of the decoders stream. | |
void | decode (const std::string &) |
Decode AMQP data from a std::string and add it to the end of the decoders stream. | |
bool | more () |
Return true if there are more value to extract at the current level. | |
type_id | next_type () |
Get the type of the next value that will be read by operator>>. | |
decoder & | operator>> (start &) |
Start decoding a container type, such as an ARRAY, LIST or MAP. | |
decoder & | operator>> (const finish &) |
Finish decoding a container type, and move on to the next value in the stream. | |
template<class T > | |
decoder & | operator>> (sequence_ref< T > r) |
Extract any AMQP sequence (ARRAY, LIST or MAP) to a C++ sequence container of T if the elements types are convertible to T. | |
template<class T > | |
decoder & | operator>> (associative_ref< T > r) |
Extract an AMQP MAP to a C++ associative container. | |
template<class T > | |
decoder & | operator>> (pair_sequence_ref< T > r) |
Extract an AMQP MAP to a C++ push_back sequence of pairs preserving encoded order. | |
Extract built-in types | |
decoder & | operator>> (bool &) |
decoder & | operator>> (uint8_t &) |
decoder & | operator>> (int8_t &) |
decoder & | operator>> (uint16_t &) |
decoder & | operator>> (int16_t &) |
decoder & | operator>> (uint32_t &) |
decoder & | operator>> (int32_t &) |
decoder & | operator>> (wchar_t &) |
decoder & | operator>> (uint64_t &) |
decoder & | operator>> (int64_t &) |
decoder & | operator>> (timestamp &) |
decoder & | operator>> (float &) |
decoder & | operator>> (double &) |
decoder & | operator>> (decimal32 &) |
decoder & | operator>> (decimal64 &) |
decoder & | operator>> (decimal128 &) |
decoder & | operator>> (uuid &) |
decoder & | operator>> (std::string &) |
decoder & | operator>> (symbol &) |
decoder & | operator>> (binary &) |
decoder & | operator>> (message_id &) |
decoder & | operator>> (annotation_key &) |
decoder & | operator>> (scalar &) |
decoder & | operator>> (internal::value_base &) |
decoder & | operator>> (null &) |
Friends | |
class | message |
**Experimental** - Stream-like decoder from AMQP bytes to C++ values.
For internal use only.
decoder | ( | const data & | d, | |
bool | exact = false | |||
) | [inline, explicit] |
Wrap a Proton C data object.
The exact flag if set means decode only when there is an exact match between the AMQP and C++ type. If not set then perform automatic conversions.
decoder | ( | const internal::value_base & | , | |
bool | exact = false | |||
) | [explicit] |
Attach decoder to a proton::value.
void decode | ( | const std::string & | ) |
Decode AMQP data from a std::string and add it to the end of the decoders stream.
void decode | ( | const char * | buffer, | |
size_t | size | |||
) |
Decode AMQP data from a buffer and add it to the end of the decoders stream.
type_id next_type | ( | ) |
Get the type of the next value that will be read by operator>>.
conversion_error | if no more values. |
decoder& operator>> | ( | pair_sequence_ref< T > | r | ) | [inline] |
Extract an AMQP MAP to a C++ push_back sequence of pairs preserving encoded order.
decoder& operator>> | ( | sequence_ref< T > | r | ) | [inline] |
Extract any AMQP sequence (ARRAY, LIST or MAP) to a C++ sequence container of T if the elements types are convertible to T.
A MAP is extracted as `[key1, value1, key2, value2...]`.