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

Built-in variant type. More...

#include <BuiltinVariant.h>

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

Classes

class  Value
 Built-in variant value (abstract base) More...
 
class  ValueImplT
 Built-in variant value (templated implementation) More...
 

Public Member Functions

 BuiltinVariant ()
 Default constructor. More...
 
 BuiltinVariant (const BuiltinVariant &src)
 Copy constructor. More...
 
 BuiltinVariant (const Variant &src)
 Copy constructor (overloaded version taking a variant) More...
 
double getNumericValue () const
 Retrieve the built-in variant's numeric value. More...
 
 ~BuiltinVariant ()
 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...
 

Static Protected Member Functions

template<typename T >
static BuiltinVariant create (const DataType &type)
 Create a built-in variant. More...
 
template<typename T >
static double getNumericValue (const T &value, typename boost::enable_if< boost::type_traits::ice_or< boost::is_base_of< ros::Duration, T >::value, boost::is_base_of< ros::Time, T >::value > >::type *=0)
 Retrieve the built-in variant's numeric value (overloaded version taking a ROS duration or ROS time) More...
 
template<typename T >
static double getNumericValue (const T &value, typename boost::enable_if< typename type_traits::BuiltinType< T >::IsNumeric >::type *=0, typename boost::disable_if< boost::type_traits::ice_or< boost::is_base_of< ros::Duration, T >::value, boost::is_base_of< ros::Time, T >::value > >::type *=0)
 Retrieve the built-in variant's numeric value (overloaded version taking a numeric value other than a ROS duration or a ROS time) More...
 
template<typename T >
static double getNumericValue (const T &value, typename boost::disable_if< typename type_traits::BuiltinType< T >::IsNumeric >::type *=0)
 Retrieve the built-in variant's numeric value (overloaded version taking a non-numeric value) More...
 
template<typename T >
static bool isEqual (const typename type_traits::BuiltinType< T >::ValueType &lhs, const typename type_traits::BuiltinType< T >::ValueType &rhs, typename boost::enable_if< boost::has_equal_to< typename type_traits::BuiltinType< T >::ValueType, typename type_traits::BuiltinType< T >::ValueType, bool > >::type *=0)
 Compare the values of two built-in variants (overloaded version taking two comparable values) More...
 
template<typename T >
static bool isEqual (const typename type_traits::BuiltinType< T >::ValueType &lhs, const typename type_traits::BuiltinType< T >::ValueType &rhs, typename boost::disable_if< boost::has_equal_to< typename type_traits::BuiltinType< T >::ValueType, typename type_traits::BuiltinType< T >::ValueType, bool > >::type *=0)
 Compare the values of two built-in variants (overloaded version taking two non-comparable values) More...
 
template<typename T >
static void read (std::istream &stream, typename type_traits::BuiltinType< T >::ValueType &value, typename boost::enable_if< boost::is_same< T, bool > >::type *=0)
 Read a built-in variant from a stream (overloaded version taking a boolean value) More...
 
template<typename T >
static void read (std::istream &stream, typename type_traits::BuiltinType< T >::ValueType &value, typename boost::disable_if< boost::is_same< T, bool > >::type *=0, typename boost::enable_if< boost::has_right_shift< std::istream, typename type_traits::BuiltinType< T >::ValueType & > >::type *=0)
 Read a built-in variant from a stream (overloaded version taking a non-boolean, stream-readable value) More...
 
template<typename T >
static void read (std::istream &stream, typename type_traits::BuiltinType< T >::ValueType &value, typename boost::disable_if< boost::is_same< T, bool > >::type *=0, typename boost::disable_if< boost::has_right_shift< std::istream, typename type_traits::BuiltinType< T >::ValueType & > >::type *=0)
 Read a built-in variant from a stream (overloaded version taking a non-boolean, non-stream-readable value) More...
 
template<typename T >
static void write (std::ostream &stream, const typename type_traits::BuiltinType< T >::ValueType &value, typename boost::enable_if< boost::is_same< T, bool > >::type *=0)
 Write a variant to a stream (overloaded version taking a boolean value) More...
 
template<typename T >
static void write (std::ostream &stream, const typename type_traits::BuiltinType< T >::ValueType &value, typename boost::disable_if< boost::is_same< T, bool > >::type *=0, typename boost::enable_if< boost::has_left_shift< std::ostream, const typename type_traits::BuiltinType< T >::ValueType & > >::type *=0)
 Write a variant to a stream (overloaded version taking a non-boolean, stream-writable value) More...
 
template<typename T >
static void write (std::ostream &stream, const typename type_traits::BuiltinType< T >::ValueType &value, typename boost::disable_if< boost::is_same< T, bool > >::type *=0, typename boost::disable_if< boost::has_left_shift< std::ostream, const typename type_traits::BuiltinType< T >::ValueType & > >::type *=0)
 Write a variant to a stream (overloaded version taking a non-boolean, non-stream-writable value) 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 BuiltinDataType
 
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 Member Functions inherited from variant_topic_tools::Variant
 Variant (const DataType &type)
 Constructor (overloaded version taking a data 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

Built-in variant type.

Definition at line 35 of file BuiltinVariant.h.

Constructor & Destructor Documentation

variant_topic_tools::BuiltinVariant::BuiltinVariant ( )

Default constructor.

Definition at line 29 of file BuiltinVariant.cpp.

variant_topic_tools::BuiltinVariant::BuiltinVariant ( const BuiltinVariant src)

Copy constructor.

Definition at line 32 of file BuiltinVariant.cpp.

variant_topic_tools::BuiltinVariant::BuiltinVariant ( const Variant src)

Copy constructor (overloaded version taking a variant)

Definition at line 36 of file BuiltinVariant.cpp.

variant_topic_tools::BuiltinVariant::~BuiltinVariant ( )

Destructor.

Definition at line 42 of file BuiltinVariant.cpp.

Member Function Documentation

template<typename T >
static BuiltinVariant variant_topic_tools::BuiltinVariant::create ( const DataType type)
staticprotected

Create a built-in variant.

double variant_topic_tools::BuiltinVariant::getNumericValue ( ) const

Retrieve the built-in variant's numeric value.

Definition at line 55 of file BuiltinVariant.cpp.

template<typename T >
static double variant_topic_tools::BuiltinVariant::getNumericValue ( const T &  value,
typename boost::enable_if< boost::type_traits::ice_or< boost::is_base_of< ros::Duration, T >::value, boost::is_base_of< ros::Time, T >::value > >::type = 0 
)
staticprotected

Retrieve the built-in variant's numeric value (overloaded version taking a ROS duration or ROS time)

template<typename T >
static double variant_topic_tools::BuiltinVariant::getNumericValue ( const T &  value,
typename boost::enable_if< typename type_traits::BuiltinType< T >::IsNumeric >::type = 0,
typename boost::disable_if< boost::type_traits::ice_or< boost::is_base_of< ros::Duration, T >::value, boost::is_base_of< ros::Time, T >::value > >::type = 0 
)
staticprotected

Retrieve the built-in variant's numeric value (overloaded version taking a numeric value other than a ROS duration or a ROS time)

template<typename T >
static double variant_topic_tools::BuiltinVariant::getNumericValue ( const T &  value,
typename boost::disable_if< typename type_traits::BuiltinType< T >::IsNumeric >::type = 0 
)
staticprotected

Retrieve the built-in variant's numeric value (overloaded version taking a non-numeric value)

template<typename T >
static bool variant_topic_tools::BuiltinVariant::isEqual ( const typename type_traits::BuiltinType< T >::ValueType &  lhs,
const typename type_traits::BuiltinType< T >::ValueType &  rhs,
typename boost::enable_if< boost::has_equal_to< typename type_traits::BuiltinType< T >::ValueType, typename type_traits::BuiltinType< T >::ValueType, bool > >::type = 0 
)
staticprotected

Compare the values of two built-in variants (overloaded version taking two comparable values)

template<typename T >
static bool variant_topic_tools::BuiltinVariant::isEqual ( const typename type_traits::BuiltinType< T >::ValueType &  lhs,
const typename type_traits::BuiltinType< T >::ValueType &  rhs,
typename boost::disable_if< boost::has_equal_to< typename type_traits::BuiltinType< T >::ValueType, typename type_traits::BuiltinType< T >::ValueType, bool > >::type = 0 
)
staticprotected

Compare the values of two built-in variants (overloaded version taking two non-comparable values)

template<typename T >
static void variant_topic_tools::BuiltinVariant::read ( std::istream &  stream,
typename type_traits::BuiltinType< T >::ValueType &  value,
typename boost::enable_if< boost::is_same< T, bool > >::type = 0 
)
staticprotected

Read a built-in variant from a stream (overloaded version taking a boolean value)

template<typename T >
static void variant_topic_tools::BuiltinVariant::read ( std::istream &  stream,
typename type_traits::BuiltinType< T >::ValueType &  value,
typename boost::disable_if< boost::is_same< T, bool > >::type = 0,
typename boost::enable_if< boost::has_right_shift< std::istream, typename type_traits::BuiltinType< T >::ValueType & > >::type = 0 
)
staticprotected

Read a built-in variant from a stream (overloaded version taking a non-boolean, stream-readable value)

template<typename T >
static void variant_topic_tools::BuiltinVariant::read ( std::istream &  stream,
typename type_traits::BuiltinType< T >::ValueType &  value,
typename boost::disable_if< boost::is_same< T, bool > >::type = 0,
typename boost::disable_if< boost::has_right_shift< std::istream, typename type_traits::BuiltinType< T >::ValueType & > >::type = 0 
)
staticprotected

Read a built-in variant from a stream (overloaded version taking a non-boolean, non-stream-readable value)

template<typename T >
static void variant_topic_tools::BuiltinVariant::write ( std::ostream &  stream,
const typename type_traits::BuiltinType< T >::ValueType &  value,
typename boost::enable_if< boost::is_same< T, bool > >::type = 0 
)
staticprotected

Write a variant to a stream (overloaded version taking a boolean value)

template<typename T >
static void variant_topic_tools::BuiltinVariant::write ( std::ostream &  stream,
const typename type_traits::BuiltinType< T >::ValueType &  value,
typename boost::disable_if< boost::is_same< T, bool > >::type = 0,
typename boost::enable_if< boost::has_left_shift< std::ostream, const typename type_traits::BuiltinType< T >::ValueType & > >::type = 0 
)
staticprotected

Write a variant to a stream (overloaded version taking a non-boolean, stream-writable value)

template<typename T >
static void variant_topic_tools::BuiltinVariant::write ( std::ostream &  stream,
const typename type_traits::BuiltinType< T >::ValueType &  value,
typename boost::disable_if< boost::is_same< T, bool > >::type = 0,
typename boost::disable_if< boost::has_left_shift< std::ostream, const typename type_traits::BuiltinType< T >::ValueType & > >::type = 0 
)
staticprotected

Write a variant to a stream (overloaded version taking a non-boolean, non-stream-writable value)

Friends And Related Function Documentation

friend class BuiltinDataType
friend

Definition at line 37 of file BuiltinVariant.h.

friend class Variant
friend

Definition at line 38 of file BuiltinVariant.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