Classes | Public Member Functions | Protected Member Functions | Static Protected Member Functions | Friends | List of all members
variant_topic_tools::MessageVariant Class Reference

Message variant type. More...

#include <MessageVariant.h>

Inheritance diagram for variant_topic_tools::MessageVariant:
Inheritance graph
[legend]

Classes

class  Value
 Message variant value (abstract base) More...
 
class  ValueImplT
 Message variant value (templated implementation) More...
 
class  ValueImplV
 Message variant value (variant-typed implementation) More...
 

Public Member Functions

 MessageVariant ()
 Default constructor. More...
 
 MessageVariant (const MessageVariant &src)
 Copy constructor. More...
 
 MessageVariant (const Variant &src)
 Copy constructor (overloaded version taking a variant) More...
 
 ~MessageVariant ()
 Destructor. More...
 
- Public Member Functions inherited from variant_topic_tools::CollectionVariant
 CollectionVariant ()
 Default constructor. More...
 
 CollectionVariant (const CollectionVariant &src)
 Copy constructor. More...
 
 CollectionVariant (const Variant &src)
 Copy constructor (overloaded version taking a variant) More...
 
Variant getMember (int index) const
 Retrieve a member of the collection by index. More...
 
Variant getMember (const std::string &name) const
 Retrieve a member of the collection by name. More...
 
size_t getNumMembers () const
 Retrieve the number of members of the collection. More...
 
template<typename T >
T & getValue (int index)
 Retrieve a member value of the collection by index (non-const version) More...
 
template<typename T >
const T & getValue (int index) const
 Retrieve a member value of the collection by index (const version) More...
 
template<typename T >
T & getValue (const std::string &name)
 Retrieve a member value of the collection by name (non-const version) More...
 
template<typename T >
const T & getValue (const std::string &name) const
 Retrieve a member value of the collection by name (const version) More...
 
bool hasMember (const std::string &name) const
 True, if the collection contains the member with the specified name. More...
 
bool isEmpty () const
 True, if the collection is empty. More...
 
Variant operator[] (int index) const
 Operator for retrieving the members of the collection by index. More...
 
Variant operator[] (const char *name) const
 Operator for retrieving the members of the collection by name (overloaded version taking a char array name) More...
 
void setMember (int index, const Variant &member)
 Set a member of the collection by index. More...
 
void setMember (const std::string &name, const Variant &member)
 Set a member of the collection by name. More...
 
 ~CollectionVariant ()
 Destructor. More...
 
- Public Member Functions inherited from variant_topic_tools::Variant
ArrayVariant asArray () const
 Retrieve this variant as array. More...
 
BuiltinVariant asBuiltin () const
 Retrieve this variant as builtin. More...
 
CollectionVariant asCollection () const
 Retrieve this variant as collection. More...
 
MessageVariant asMessage () const
 Retrieve this variant as message. More...
 
void clear ()
 Clear the variant. More...
 
Serializer createSerializer () const
 Create a serializer for this variant. More...
 
const DataTypegetType () const
 Retrieve the data type of this variant. More...
 
template<typename T >
type_traits::DataType< T >::ValueType & getValue ()
 Retrieve the variant's value (non-const version) More...
 
template<typename T >
const type_traits::DataType< T >::ValueType & getValue () const
 Retrieve the variant's value (const version) More...
 
const std::type_info & getValueTypeInfo () const
 Retrieve the value type information of this variant. More...
 
bool hasType () const
 True, if the variant has a type. More...
 
bool isArray () const
 True, if this variant represents an array. More...
 
bool isBuiltin () const
 True, if this variant represents a built-in. More...
 
bool isCollection () const
 True, if this variant represents a collection. More...
 
bool isEmpty () const
 True, if the variant is empty, i.e., does not have a value assigned. More...
 
bool isMessage () const
 True, if this variant represents a message. More...
 
template<typename T >
 operator T () const
 Conversion operator. More...
 
template<typename T >
bool operator!= (const T &value) const
 True, if this variant's value does not equal another value. More...
 
template<typename T >
Variantoperator= (const T &src)
 Assignment operator. More...
 
template<typename T >
bool operator== (const T &value) const
 True, if this variant's value equals another value. More...
 
void read (std::istream &stream)
 Read the variant from a stream. More...
 
template<typename T >
void setValue (const T &value)
 Set the variant's value. More...
 
 Variant ()
 Default constructor. More...
 
template<typename T >
 Variant (const T &src)
 Copy constructor. More...
 
void write (std::ostream &stream) const
 Write the variant to a stream. More...
 
 ~Variant ()
 Destructor. More...
 

Protected Member Functions

 MessageVariant (const DataType &type, const MessageFieldCollection< Variant > &members)
 Constructor (overloaded version taking a message data type and a collection of member variants) More...
 
- Protected Member Functions inherited from variant_topic_tools::CollectionVariant
 CollectionVariant (const DataType &type)
 Constructor (overloaded version taking a data type) More...
 
- Protected Member Functions inherited from variant_topic_tools::Variant
 Variant (const DataType &type)
 Constructor (overloaded version taking a data type) More...
 

Static Protected Member Functions

template<typename T >
static MessageVariant create (const DataType &type, const MessageFieldCollection< MessageVariable > &members)
 Create a message variant. More...
 
- Static Protected Member Functions inherited from variant_topic_tools::Variant
template<typename T >
static void assign (Variant &dst, const T &src, typename boost::enable_if< boost::is_base_of< Variant, T > >::type *=0)
 Assign a variant (overloaded version taking a variant) More...
 
template<typename T >
static void assign (Variant &dst, const T &src, typename boost::disable_if< boost::is_base_of< Variant, T > >::type *=0)
 Assign a variant (overloaded version taking a variant value) More...
 
template<typename T >
static bool isEqual (const Variant &variant, const T &value, typename boost::enable_if< boost::is_base_of< Variant, T > >::type *=0)
 True, if a variant's value equals another value (overloaded version taking a variant) More...
 
template<typename T >
static bool isEqual (const Variant &variant, const T &value, typename boost::disable_if< boost::is_base_of< Variant, T > >::type *=0)
 True, if a variant's value equals another value (overloaded version taking a variant value) More...
 
template<typename T >
static void set (Variant &variant, const Pointer< typename type_traits::DataType< T >::ValueType > &value)
 Set a variant's value pointer. More...
 
template<typename T >
static void setValue (Variant &dst, const T &value, typename boost::enable_if< boost::is_base_of< Variant, T > >::type *=0)
 Set a variant's value (overloaded version taking a variant) More...
 
template<typename T >
static void setValue (Variant &dst, const T &value, typename boost::disable_if< boost::is_base_of< Variant, T > >::type *=0)
 Set a variant's value (overloaded version taking a variant value) More...
 

Friends

class MessageDataType
 
class Variant
 

Additional Inherited Members

- Protected Types inherited from variant_topic_tools::Variant
typedef boost::shared_ptr< ValueValuePtr
 Declaration of the variant value pointer type. More...
 
typedef boost::weak_ptr< ValueValueWPtr
 Declaration of the variant value weak pointer type. More...
 
- Protected Attributes inherited from variant_topic_tools::Variant
DataType type
 The variant's data type. More...
 
ValuePtr value
 The variant's data value. More...
 

Detailed Description

Message variant type.

Definition at line 35 of file MessageVariant.h.

Constructor & Destructor Documentation

variant_topic_tools::MessageVariant::MessageVariant ( )

Default constructor.

Definition at line 30 of file MessageVariant.cpp.

variant_topic_tools::MessageVariant::MessageVariant ( const MessageVariant src)

Copy constructor.

Definition at line 40 of file MessageVariant.cpp.

variant_topic_tools::MessageVariant::MessageVariant ( const Variant src)

Copy constructor (overloaded version taking a variant)

Definition at line 44 of file MessageVariant.cpp.

variant_topic_tools::MessageVariant::~MessageVariant ( )

Destructor.

Definition at line 50 of file MessageVariant.cpp.

variant_topic_tools::MessageVariant::MessageVariant ( const DataType type,
const MessageFieldCollection< Variant > &  members 
)
protected

Constructor (overloaded version taking a message data type and a collection of member variants)

Definition at line 33 of file MessageVariant.cpp.

Member Function Documentation

template<typename T >
static MessageVariant variant_topic_tools::MessageVariant::create ( const DataType type,
const MessageFieldCollection< MessageVariable > &  members 
)
staticprotected

Create a message variant.

Friends And Related Function Documentation

friend class MessageDataType
friend

Definition at line 37 of file MessageVariant.h.

friend class Variant
friend

Definition at line 38 of file MessageVariant.h.


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


variant_topic_tools
Author(s): Ralf Kaestner
autogenerated on Sat Jan 9 2021 03:56:50