annotation_key Class Reference

A key for use with AMQP annotation maps. More...

#include <annotation_key.hpp>

Inheritance diagram for annotation_key:
scalar_base

List of all members.

Public Member Functions

 annotation_key ()
 An empty annotation key.
template<class T >
 annotation_key (const T &x)
 Construct from any type that can be assigned.
type_id type () const
 AMQP type of data stored in the scalar.
bool empty () const
 True if there is no value, i.e. type() == NULL_TYPE.
Assign from a uint64_t or symbol.



annotation_keyoperator= (uint64_t x)
annotation_keyoperator= (const symbol &x)
Extra conversions for strings, treated as codec::SYMBOL.



annotation_keyoperator= (const std::string &x)
annotation_keyoperator= (const char *x)

Friends

bool operator< (const scalar_base &x, const scalar_base &y)
 Compare.
bool operator== (const scalar_base &x, const scalar_base &y)
 Compare.
std::ostream & operator<< (std::ostream &o, const scalar_base &x)
 Print the contained value.

Related Functions

(Note that these are not member functions.)



template<>
uint64_t get (const annotation_key &x)
 Get the uint64_t value or throw conversion_error.
template<>
symbol get (const annotation_key &x)
 Get the symbol value or throw conversion_error.
template<class T >
coerce (const annotation_key &x)
 Get the binary value or throw conversion_error.

Detailed Description

A key for use with AMQP annotation maps.

An annotation_key can contain either a uint64_t or a proton::symbol.


Friends And Related Function Documentation

T coerce ( const annotation_key x  )  [related]

Get the binary value or throw conversion_error.

Coerce the contained value to type T. For example:uint64_t i = coerce<uint64_t>(x)This will succeed if x contains any numeric value, but may lose precision if it contains a float or double value.

Exceptions:
conversion_error if the value cannot be converted to T according to `stdis_convertible`


The documentation for this class was generated from the following file:

Generated on 29 Mar 2018 for Qpid Proton C++ by  doxygen 1.6.1