Extraction iterator allowing values to be retrieved from a message. More...
#include <messageiterator.h>
Public Member Functions | |
MessageIterator () | |
MessageIterator (const Message &message) | |
MessageIterator (DBusCxxPointer< Message > message) | |
const Message * | message () const |
Returns a pointer to the message associated with this iterator or NULL if no message is associated. | |
DBusMessageIter * | cobj () |
Returns a pointer to the underlying DBusMessageIter object. | |
bool | init (const Message &message) |
Initializes the iterator for the specified message. | |
void | invalidate () |
Invalidates the iterator. | |
bool | is_valid () const |
True if this is a valid iterator. | |
bool | has_next () const |
True if there are any more fields left to iterate over. | |
bool | next () |
Moves the iterator to the next field and invalidates it if it moves beyond the last field. | |
MessageIterator & | operator++ () |
MessageIterator | operator++ (int) |
bool | operator== (const MessageIterator &other) |
Type | arg_type () const |
Returns the argument type that the iterator points to. | |
Type | element_type () const |
Returns the element type of the array that the iterator points to. | |
bool | is_fixed () const |
True if the element type is a fixed type. | |
bool | is_container () const |
True if the iterator points to a container. | |
bool | is_array () const |
True if the iterator points to an array. | |
bool | is_dict () const |
True if the iterator points to a dictionary. | |
MessageIterator | recurse () |
If the iterator points to a container recurses into the container returning a sub-iterator. | |
std::string | signature () const |
Returns the current signature of the iterator. | |
operator bool () | |
TODO. | |
operator uint8_t () | |
operator uint16_t () | |
operator int16_t () | |
operator uint32_t () | |
operator int32_t () | |
operator uint64_t () | |
operator int64_t () | |
operator double () | |
operator const char * () | |
operator char () | |
operator int8_t () | |
operator float () | |
operator long int () | |
operator unsigned long int () | |
template<typename T > | |
operator std::vector< T > () | |
bool | get_bool () |
uint8_t | get_uint8 () |
uint16_t | get_uint16 () |
int16_t | get_int16 () |
uint32_t | get_uint32 () |
int32_t | get_int32 () |
uint64_t | get_uint64 () |
int64_t | get_int64 () |
double | get_double () |
const char * | get_string () |
template<typename T > | |
std::vector< T > | get_array () |
template<typename T > | |
void | get_array (std::vector< T > &array) |
template<typename T > | |
MessageIterator & | operator>> (std::vector< T > &v) |
template<typename T > | |
MessageIterator & | operator>> (T &v) |
template<typename T > | |
void | value (T &temp) |
Protected Attributes | |
const Message * | m_message |
DBusMessageIter | m_cobj |
Extraction iterator allowing values to be retrieved from a message.
DBus::MessageIterator::MessageIterator | ( | ) |
References m_cobj.
DBus::MessageIterator::MessageIterator | ( | DBusCxxPointer< Message > | message | ) |
Type DBus::MessageIterator::arg_type | ( | ) | const |
Returns the argument type that the iterator points to.
References DBus::checked_type_cast(), and m_cobj.
Referenced by element_type(), get_bool(), get_double(), get_int16(), get_int32(), get_int64(), get_string(), get_uint16(), get_uint32(), get_uint64(), get_uint8(), is_array(), is_container(), is_valid(), next(), operator bool(), operator char(), operator const char *(), operator double(), operator float(), operator int16_t(), operator int32_t(), operator int64_t(), operator int8_t(), operator long int(), operator uint16_t(), operator uint32_t(), operator uint64_t(), operator uint8_t(), and operator unsigned long int().
DBusMessageIter * DBus::MessageIterator::cobj | ( | ) |
Returns a pointer to the underlying DBusMessageIter object.
References m_cobj.
Referenced by get_array().
Type DBus::MessageIterator::element_type | ( | ) | const |
Returns the element type of the array that the iterator points to.
If the iterator does not point to an array TYPE_INVALID is returned.
References arg_type(), DBus::checked_type_cast(), m_cobj, DBus::TYPE_ARRAY, and DBus::TYPE_INVALID.
Referenced by is_dict(), and is_fixed().
void DBus::MessageIterator::get_array | ( | std::vector< T > & | array | ) | [inline] |
References cobj().
std::vector<T> DBus::MessageIterator::get_array | ( | ) | [inline] |
References cobj().
bool DBus::MessageIterator::get_bool | ( | ) |
References arg_type(), m_cobj, and DBus::TYPE_BOOLEAN.
Referenced by operator bool().
double DBus::MessageIterator::get_double | ( | ) |
References arg_type(), m_cobj, and DBus::TYPE_DOUBLE.
Referenced by operator double(), and operator float().
int16_t DBus::MessageIterator::get_int16 | ( | ) |
References arg_type(), m_cobj, and DBus::TYPE_INT16.
Referenced by operator int16_t().
int32_t DBus::MessageIterator::get_int32 | ( | ) |
References arg_type(), m_cobj, and DBus::TYPE_INT32.
Referenced by operator int32_t(), and operator long int().
int64_t DBus::MessageIterator::get_int64 | ( | ) |
References arg_type(), m_cobj, and DBus::TYPE_INT64.
Referenced by operator int64_t().
const char * DBus::MessageIterator::get_string | ( | ) |
References arg_type(), m_cobj, DBus::TYPE_OBJECT_PATH, DBus::TYPE_SIGNATURE, and DBus::TYPE_STRING.
Referenced by operator const char *().
uint16_t DBus::MessageIterator::get_uint16 | ( | ) |
References arg_type(), m_cobj, and DBus::TYPE_UINT16.
Referenced by operator uint16_t().
uint32_t DBus::MessageIterator::get_uint32 | ( | ) |
References arg_type(), m_cobj, and DBus::TYPE_UINT32.
Referenced by operator uint32_t(), and operator unsigned long int().
uint64_t DBus::MessageIterator::get_uint64 | ( | ) |
References arg_type(), m_cobj, and DBus::TYPE_UINT64.
Referenced by operator uint64_t().
uint8_t DBus::MessageIterator::get_uint8 | ( | ) |
References arg_type(), m_cobj, and DBus::TYPE_BYTE.
Referenced by operator char(), operator int8_t(), and operator uint8_t().
bool DBus::MessageIterator::has_next | ( | ) | const |
True if there are any more fields left to iterate over.
References is_valid(), and m_cobj.
bool DBus::MessageIterator::init | ( | const Message & | message | ) |
Initializes the iterator for the specified message.
References DBus::Message::cobj(), m_cobj, and m_message.
Referenced by MessageIterator().
void DBus::MessageIterator::invalidate | ( | ) |
bool DBus::MessageIterator::is_array | ( | ) | const |
True if the iterator points to an array.
References arg_type(), and DBus::TYPE_ARRAY.
Referenced by is_dict().
bool DBus::MessageIterator::is_container | ( | ) | const |
bool DBus::MessageIterator::is_dict | ( | ) | const |
True if the iterator points to a dictionary.
References element_type(), is_array(), and DBus::TYPE_DICT_ENTRY.
bool DBus::MessageIterator::is_fixed | ( | ) | const |
True if the element type is a fixed type.
References element_type().
bool DBus::MessageIterator::is_valid | ( | ) | const |
True if this is a valid iterator.
References arg_type(), DBus::Message::is_valid(), m_message, and DBus::TYPE_INVALID.
Referenced by has_next(), and next().
const Message * DBus::MessageIterator::message | ( | ) | const |
Returns a pointer to the message associated with this iterator or NULL if no message is associated.
References m_message.
bool DBus::MessageIterator::next | ( | ) |
Moves the iterator to the next field and invalidates it if it moves beyond the last field.
References arg_type(), invalidate(), is_valid(), m_cobj, and DBus::TYPE_INVALID.
Referenced by operator++().
DBus::MessageIterator::operator bool | ( | ) |
TODO.
Add support for:
References arg_type(), get_bool(), DBus::TYPE_BOOLEAN, DBus::TYPE_BYTE, DBus::TYPE_DOUBLE, DBus::TYPE_INT16, DBus::TYPE_INT32, DBus::TYPE_INT64, DBus::TYPE_UINT16, DBus::TYPE_UINT32, and DBus::TYPE_UINT64.
DBus::MessageIterator::operator char | ( | ) |
DBus::MessageIterator::operator const char * | ( | ) |
References arg_type(), get_string(), DBus::TYPE_OBJECT_PATH, DBus::TYPE_SIGNATURE, and DBus::TYPE_STRING.
DBus::MessageIterator::operator double | ( | ) |
DBus::MessageIterator::operator float | ( | ) |
DBus::MessageIterator::operator int16_t | ( | ) |
DBus::MessageIterator::operator int32_t | ( | ) |
DBus::MessageIterator::operator int64_t | ( | ) |
DBus::MessageIterator::operator int8_t | ( | ) |
DBus::MessageIterator::operator long int | ( | ) |
DBus::MessageIterator::operator std::vector< T > | ( | ) | [inline] |
DBus::MessageIterator::operator uint16_t | ( | ) |
DBus::MessageIterator::operator uint32_t | ( | ) |
DBus::MessageIterator::operator uint64_t | ( | ) |
DBus::MessageIterator::operator uint8_t | ( | ) |
DBus::MessageIterator::operator unsigned long int | ( | ) |
MessageIterator DBus::MessageIterator::operator++ | ( | int | ) |
MessageIterator & DBus::MessageIterator::operator++ | ( | ) |
References next().
bool DBus::MessageIterator::operator== | ( | const MessageIterator & | other | ) |
MessageIterator& DBus::MessageIterator::operator>> | ( | T & | v | ) | [inline] |
MessageIterator& DBus::MessageIterator::operator>> | ( | std::vector< T > & | v | ) | [inline] |
MessageIterator DBus::MessageIterator::recurse | ( | ) |
If the iterator points to a container recurses into the container returning a sub-iterator.
If the iterator does not point to a container returns an empty (invalid) iterator.
References is_container(), m_cobj, and m_message.
std::string DBus::MessageIterator::signature | ( | ) | const |
Returns the current signature of the iterator.
References m_cobj.
void DBus::MessageIterator::value | ( | T & | temp | ) | [inline] |
References DBus::type(), and DBus::type_string().
DBusMessageIter DBus::MessageIterator::m_cobj [protected] |
Referenced by arg_type(), cobj(), element_type(), get_bool(), get_double(), get_int16(), get_int32(), get_int64(), get_string(), get_uint16(), get_uint32(), get_uint64(), get_uint8(), has_next(), init(), invalidate(), MessageIterator(), next(), operator==(), recurse(), and signature().
const Message* DBus::MessageIterator::m_message [protected] |
Referenced by init(), invalidate(), is_valid(), message(), operator==(), and recurse().