Orocos Real-Time Toolkit  2.8.3
Public Types | Public Member Functions | Protected Types | Static Protected Member Functions | Protected Attributes | List of all members
RTT::types::EnumTypeInfo< T > Struct Template Reference

Type information for Enum types for which they are convertible to int. More...

#include <rtt/types/EnumTypeInfo.hpp>

Inheritance diagram for RTT::types::EnumTypeInfo< T >:
RTT::types::TemplateTypeInfo< T, false > RTT::types::PrimitiveTypeInfo< T, use_ostream > RTT::types::TemplateConnFactory< T > RTT::types::TemplateCompositionFactory< T > RTT::types::TypeInfoGenerator RTT::types::TemplateValueFactory< T > RTT::types::StreamFactory RTT::types::CompositionFactory RTT::types::ValueFactory

Public Types

typedef T UserType
 The given T parameter is the type for reading DataSources. More...
 
typedef T DataType
 The given T parameter is the type of the DataSources. More...
 

Public Member Functions

 EnumTypeInfo (std::string type)
 
bool installTypeInfoObject (TypeInfo *ti)
 Installs the type info object in the global data source type info handler and adds any additional features to the type info object. More...
 
virtual bool composeType (base::DataSourceBase::shared_ptr source, base::DataSourceBase::shared_ptr result) const
 Composition also checks if source is an int or string, and if so, converts it to the enum of type T kept in result. More...
 
virtual base::DataSourceBase::shared_ptr decomposeType (base::DataSourceBase::shared_ptr source) const
 Converts the enum to a string in case source is an enum and the string mapping is known. More...
 
virtual base::ChannelElementBase::shared_ptr buildRemoteChannelOutput (base::OutputPortInterface &output_port, types::TypeInfo const *type_info, base::InputPortInterface &input, const ConnPolicy &policy)
 
boost::shared_ptr< PrimitiveTypeInfo< T, use_ostream > > getSharedPtr ()
 
TypeInfogetTypeInfoObject () const
 Returns the TypeInfo object of this type, or null if none exists yet. More...
 
virtual const std::string & getTypeName () const
 Return the type name for which this generator generates type info features. More...
 
virtual std::ostream & write (std::ostream &os, base::DataSourceBase::shared_ptr in) const
 Output this datasource as a human readable string. More...
 
virtual std::istream & read (std::istream &os, base::DataSourceBase::shared_ptr out) const
 Read a new value for this datasource from a human readable string. More...
 
virtual bool isStreamable () const
 Returns true if this type is directly streamable using read()/write() or toString()/fromString(). More...
 
virtual bool decomposeType (base::DataSourceBase::shared_ptr source, PropertyBag &targetbag) const
 
base::AttributeBasebuildConstant (std::string name, base::DataSourceBase::shared_ptr dsb) const
 Build a non modifyable instance of this type. More...
 
base::AttributeBasebuildVariable (std::string name) const
 Build a non modifyable instance of this type. More...
 
base::AttributeBasebuildAttribute (std::string name, base::DataSourceBase::shared_ptr in) const
 Build an Attribute of this type. More...
 
base::AttributeBasebuildAlias (std::string name, base::DataSourceBase::shared_ptr in) const
 build an alias with b as the value. More...
 
base::DataSourceBase::shared_ptr buildActionAlias (base::ActionInterface *action, base::DataSourceBase::shared_ptr in) const
 Returns a DataSource that first executes an action and returns the result of another data source. More...
 
virtual base::PropertyBasebuildProperty (const std::string &name, const std::string &desc, base::DataSourceBase::shared_ptr source=0) const
 Build a Property of this type. More...
 
virtual base::DataSourceBase::shared_ptr buildValue () const
 Build a internal::ValueDataSource of this type. More...
 
virtual base::DataSourceBase::shared_ptr buildReference (void *ptr) const
 Build a internal::ReferenceDataSource of this type, pointing to the given pointer. More...
 
base::InputPortInterfaceinputPort (std::string const &name) const
 
base::OutputPortInterfaceoutputPort (std::string const &name) const
 
base::ChannelElementBase::shared_ptr buildDataStorage (ConnPolicy const &policy) const
 
base::ChannelElementBase::shared_ptr buildChannelOutput (base::InputPortInterface &port) const
 
base::ChannelElementBase::shared_ptr buildChannelInput (base::OutputPortInterface &port) const
 
virtual bool composeTypeImpl (const PropertyBag &source, typename internal::AssignableDataSource< T >::reference_t result) const
 User, implement this function in case you want to control reading the XML data format. More...
 
virtual bool decomposeTypeImpl (typename internal::AssignableDataSource< T >::const_reference_t source, PropertyBag &targetbag) const
 User, implement this function in case you want to control writing the XML data format. More...
 
virtual base::DataSourceBase::shared_ptr convertType (base::DataSourceBase::shared_ptr source) const
 Specialize this function to return an alternate type which represents this one in a compatible way. More...
 
Type building/factory functions

Used to create objects that hold data of a certain type.

virtual base::AttributeBasebuildConstant (std::string name, base::DataSourceBase::shared_ptr, int sizehint) const
 Build a non modifyable instance of this type. More...
 
virtual base::AttributeBasebuildVariable (std::string name, int sizehint) const
 Build a modifyable instance of this type. More...
 
Conversion to/from text

Used to convert data to human readable text and vice versa.

virtual std::string toString (base::DataSourceBase::shared_ptr in) const
 Usability function which converts data to a string. More...
 
virtual bool fromString (const std::string &value, base::DataSourceBase::shared_ptr out) const
 Usability function which converts a string to data. More...
 

Protected Types

typedef std::map< T, std::string > MapType
 

Static Protected Member Functions

static int enum_to_int (T e)
 
static T int_to_enum (int i)
 

Protected Attributes

std::map< T, std::string > to_string
 
const std::string tname
 
boost::shared_ptr< PrimitiveTypeInfo< T, use_ostream > > mshared
 

Detailed Description

template<class T>
struct RTT::types::EnumTypeInfo< T >

Type information for Enum types for which they are convertible to int.

See also
StructTypeInfo

Definition at line 56 of file EnumTypeInfo.hpp.

Member Typedef Documentation

template<typename T, bool use_ostream = false>
typedef T RTT::types::PrimitiveTypeInfo< T, use_ostream >::DataType
inherited

The given T parameter is the type of the DataSources.

Definition at line 44 of file PrimitiveTypeInfo.hpp.

template<class T >
typedef std::map<T,std::string> RTT::types::EnumTypeInfo< T >::MapType
protected

Definition at line 70 of file EnumTypeInfo.hpp.

typedef T RTT::types::TemplateTypeInfo< T, use_ostream >::UserType
inherited

The given T parameter is the type for reading DataSources.

Definition at line 83 of file TemplateTypeInfo.hpp.

Constructor & Destructor Documentation

template<class T >
RTT::types::EnumTypeInfo< T >::EnumTypeInfo ( std::string  type)
inline

Definition at line 72 of file EnumTypeInfo.hpp.

Member Function Documentation

template<class T>
base::DataSourceBase::shared_ptr RTT::types::TemplateValueFactory< T >::buildActionAlias ( base::ActionInterface action,
base::DataSourceBase::shared_ptr  source 
) const
inlinevirtualinherited

Returns a DataSource that first executes an action and returns the result of another data source.

If source is an AssignableDataSource, an AssignableDataSource is returned of the same type, otherwise, a plain DataSource is returned.

Implements RTT::types::ValueFactory.

Definition at line 62 of file TemplateValueFactory.hpp.

template<class T>
base::AttributeBase* RTT::types::TemplateValueFactory< T >::buildAlias ( std::string  name,
base::DataSourceBase::shared_ptr  b 
) const
inlinevirtualinherited

build an alias with b as the value.

If b is of the wrong type, 0 will be returned..

Implements RTT::types::ValueFactory.

Definition at line 54 of file TemplateValueFactory.hpp.

template<class T>
base::AttributeBase* RTT::types::TemplateValueFactory< T >::buildAttribute ( std::string  name,
base::DataSourceBase::shared_ptr  source 
) const
inlinevirtualinherited

Build an Attribute of this type.

Implements RTT::types::ValueFactory.

Definition at line 40 of file TemplateValueFactory.hpp.

template<class T>
base::ChannelElementBase::shared_ptr RTT::types::TemplateConnFactory< T >::buildChannelInput ( base::OutputPortInterface port) const
inlineinherited

Definition at line 32 of file TemplateConnFactory.hpp.

template<class T>
base::ChannelElementBase::shared_ptr RTT::types::TemplateConnFactory< T >::buildChannelOutput ( base::InputPortInterface port) const
inlineinherited

Definition at line 26 of file TemplateConnFactory.hpp.

template<class T>
base::AttributeBase* RTT::types::TemplateValueFactory< T >::buildConstant ( std::string  name,
base::DataSourceBase::shared_ptr   
) const
inlinevirtualinherited

Build a non modifyable instance of this type.

Parameters
sizehintFor variable size instances, use it to hint the size of the instance.

Implements RTT::types::ValueFactory.

Definition at line 20 of file TemplateValueFactory.hpp.

AttributeBase * RTT::ValueFactory::buildConstant ( std::string  name,
base::DataSourceBase::shared_ptr  dsb,
int  sizehint 
) const
virtualinherited

Build a non modifyable instance of this type.

Parameters
sizehintFor variable size instances, use it to hint the size of the instance.

Definition at line 14 of file ValueFactory.cpp.

template<class T>
base::ChannelElementBase::shared_ptr RTT::types::TemplateConnFactory< T >::buildDataStorage ( ConnPolicy const &  policy) const
inlineinherited

Definition at line 22 of file TemplateConnFactory.hpp.

template<class T>
virtual base::PropertyBase* RTT::types::TemplateValueFactory< T >::buildProperty ( const std::string &  name,
const std::string &  desc,
base::DataSourceBase::shared_ptr  source = 0 
) const
inlinevirtualinherited

Build a Property of this type.

Implements RTT::types::ValueFactory.

Definition at line 74 of file TemplateValueFactory.hpp.

template<class T>
virtual base::DataSourceBase::shared_ptr RTT::types::TemplateValueFactory< T >::buildReference ( void *  ptr) const
inlinevirtualinherited

Build a internal::ReferenceDataSource of this type, pointing to the given pointer.

Implements RTT::types::ValueFactory.

Definition at line 90 of file TemplateValueFactory.hpp.

virtual base::ChannelElementBase::shared_ptr RTT::types::TemplateTypeInfo< T, use_ostream >::buildRemoteChannelOutput ( base::OutputPortInterface output_port,
types::TypeInfo const *  type_info,
base::InputPortInterface input,
const ConnPolicy policy 
)
inlinevirtualinherited

Definition at line 102 of file TemplateTypeInfo.hpp.

template<class T>
virtual base::DataSourceBase::shared_ptr RTT::types::TemplateValueFactory< T >::buildValue ( ) const
inlinevirtualinherited

Build a internal::ValueDataSource of this type.

Implements RTT::types::ValueFactory.

Definition at line 87 of file TemplateValueFactory.hpp.

template<class T>
base::AttributeBase* RTT::types::TemplateValueFactory< T >::buildVariable ( std::string  name) const
inlinevirtualinherited

Build a non modifyable instance of this type.

Parameters
sizehintFor variable size instances, use it to hint the size of the instance.

Implements RTT::types::ValueFactory.

Definition at line 33 of file TemplateValueFactory.hpp.

AttributeBase * RTT::ValueFactory::buildVariable ( std::string  name,
int  sizehint 
) const
virtualinherited
template<class T >
virtual bool RTT::types::EnumTypeInfo< T >::composeType ( base::DataSourceBase::shared_ptr  source,
base::DataSourceBase::shared_ptr  result 
) const
inlinevirtual

Composition also checks if source is an int or string, and if so, converts it to the enum of type T kept in result.

Parameters
sourcea DataSource<int> or DataSource<string>, generated by decomposeType().
resultAn AssignableDataSource<T> that will get the new enum value.

Reimplemented from RTT::types::PrimitiveTypeInfo< T, use_ostream >.

Definition at line 98 of file EnumTypeInfo.hpp.

References RTT::internal::DataSource< T >::get(), RTT::internal::DataSource< T >::narrow(), RTT::internal::AssignableDataSource< T >::narrow(), and RTT::internal::AssignableDataSource< T >::set().

template<typename T>
virtual bool RTT::types::TemplateCompositionFactory< T >::composeTypeImpl ( const PropertyBag source,
typename internal::AssignableDataSource< T >::reference_t  result 
) const
inlinevirtualinherited

User, implement this function in case you want to control reading the XML data format.

Reimplemented in RTT::types::StructTypeInfo< T, has_ostream >.

Definition at line 61 of file TemplateCompositionFactory.hpp.

Referenced by RTT::types::TemplateCompositionFactory< bool >::composeType().

base::DataSourceBase::shared_ptr CompositionFactory::convertType ( base::DataSourceBase::shared_ptr  source) const
virtualinherited

Specialize this function to return an alternate type which represents this one in a compatible way.

For example, a short converts to an long or an enum to an int or a string.

Returns
null if this type is not convertible to anything else.
Deprecated:
by decomposeType. We want to rename convertType to decomposeType. This function is left here for transitional purposes.

Definition at line 6 of file CompositionFactory.cpp.

Referenced by RTT::types::CompositionFactory::decomposeType().

template<typename T, bool use_ostream = false>
virtual bool RTT::types::PrimitiveTypeInfo< T, use_ostream >::decomposeType ( base::DataSourceBase::shared_ptr  source,
PropertyBag targetbag 
) const
inlinevirtualinherited

Definition at line 123 of file PrimitiveTypeInfo.hpp.

template<class T >
virtual base::DataSourceBase::shared_ptr RTT::types::EnumTypeInfo< T >::decomposeType ( base::DataSourceBase::shared_ptr  source) const
inlinevirtual

Converts the enum to a string in case source is an enum and the string mapping is known.

In case there is no string mapping, an int is returned. The conversion the other way around is done by composeType()

Returns
a new DataSource containing an int or a string, null if source is not an enum of this type.

Reimplemented from RTT::types::PrimitiveTypeInfo< T, use_ostream >.

Definition at line 140 of file EnumTypeInfo.hpp.

References RTT::internal::DataSource< T >::get(), and RTT::internal::DataSource< T >::narrow().

template<typename T>
virtual bool RTT::types::TemplateCompositionFactory< T >::decomposeTypeImpl ( typename internal::AssignableDataSource< T >::const_reference_t  source,
PropertyBag targetbag 
) const
inlinevirtualinherited

User, implement this function in case you want to control writing the XML data format.

Add the structural elements of source to targetbag.

Definition at line 69 of file TemplateCompositionFactory.hpp.

Referenced by RTT::types::TemplateCompositionFactory< bool >::decomposeType().

template<class T >
static int RTT::types::EnumTypeInfo< T >::enum_to_int ( e)
inlinestaticprotected

Definition at line 59 of file EnumTypeInfo.hpp.

bool StreamFactory::fromString ( const std::string &  value,
base::DataSourceBase::shared_ptr  out 
) const
virtualinherited

Usability function which converts a string to data.

Definition at line 23 of file StreamFactory.cpp.

template<typename T, bool use_ostream = false>
boost::shared_ptr<PrimitiveTypeInfo<T, use_ostream> > RTT::types::PrimitiveTypeInfo< T, use_ostream >::getSharedPtr ( )
inlineinherited
template<typename T, bool use_ostream = false>
TypeInfo* RTT::types::PrimitiveTypeInfo< T, use_ostream >::getTypeInfoObject ( ) const
inlinevirtualinherited

Returns the TypeInfo object of this type, or null if none exists yet.

Returns
All generators should return here TypeInfoRepository::Instance()->getTypeInfo<T>();

Implements RTT::types::TypeInfoGenerator.

Definition at line 84 of file PrimitiveTypeInfo.hpp.

template<typename T, bool use_ostream = false>
virtual const std::string& RTT::types::PrimitiveTypeInfo< T, use_ostream >::getTypeName ( ) const
inlinevirtualinherited

Return the type name for which this generator generates type info features.

This name will be aliased by the TypeInfo object.

Implements RTT::types::TypeInfoGenerator.

Definition at line 88 of file PrimitiveTypeInfo.hpp.

Referenced by RTT::types::StructTypeInfo< T, has_ostream >::getMember().

template<class T>
base::InputPortInterface* RTT::types::TemplateConnFactory< T >::inputPort ( std::string const &  name) const
inlineinherited

Definition at line 19 of file TemplateConnFactory.hpp.

template<class T >
bool RTT::types::EnumTypeInfo< T >::installTypeInfoObject ( TypeInfo ti)
inlinevirtual

Installs the type info object in the global data source type info handler and adds any additional features to the type info object.

This method will be called by the TypeInfoRepository, in order to register this type's factories into the TypeInfo object.

Parameters
tiA valid TypeInfo object into which new features may be installed
Returns
true if this object may be deleted, false if not.
Postcondition
When true is returned, this instance is still valid and the caller (TypeInfoRepository) will delete it. When false is returned, the validity is undefined and the instance will not be used anymore by the caller.

Implements RTT::types::TypeInfoGenerator.

Definition at line 77 of file EnumTypeInfo.hpp.

References RTT::types::TypeInfo::addConstructor(), RTT::Error, RTT::types::TemplateTypeInfo< T, use_ostream >::installTypeInfoObject(), RTT::types::newConstructor(), and RTT::types::Types().

template<class T >
static T RTT::types::EnumTypeInfo< T >::int_to_enum ( int  i)
inlinestaticprotected

Definition at line 64 of file EnumTypeInfo.hpp.

template<typename T, bool use_ostream = false>
virtual bool RTT::types::PrimitiveTypeInfo< T, use_ostream >::isStreamable ( ) const
inlinevirtualinherited

Returns true if this type is directly streamable using read()/write() or toString()/fromString().

Implements RTT::types::StreamFactory.

Reimplemented in RTT::types::BoolTypeInfo.

Definition at line 107 of file PrimitiveTypeInfo.hpp.

template<class T>
base::OutputPortInterface* RTT::types::TemplateConnFactory< T >::outputPort ( std::string const &  name) const
inlineinherited

Definition at line 20 of file TemplateConnFactory.hpp.

template<typename T, bool use_ostream = false>
virtual std::istream& RTT::types::PrimitiveTypeInfo< T, use_ostream >::read ( std::istream &  os,
base::DataSourceBase::shared_ptr  out 
) const
inlinevirtualinherited

Read a new value for this datasource from a human readable string.

The default does nothing.

Implements RTT::types::StreamFactory.

Reimplemented in RTT::types::BoolTypeInfo.

Definition at line 98 of file PrimitiveTypeInfo.hpp.

string StreamFactory::toString ( base::DataSourceBase::shared_ptr  in) const
virtualinherited

Usability function which converts data to a string.

Definition at line 12 of file StreamFactory.cpp.

template<typename T, bool use_ostream = false>
virtual std::ostream& RTT::types::PrimitiveTypeInfo< T, use_ostream >::write ( std::ostream &  os,
base::DataSourceBase::shared_ptr  in 
) const
inlinevirtualinherited

Output this datasource as a human readable string.

The default just writes the type name in parentheses to os.

Implements RTT::types::StreamFactory.

Reimplemented in RTT::types::BoolTypeInfo.

Definition at line 90 of file PrimitiveTypeInfo.hpp.

Member Data Documentation

template<typename T, bool use_ostream = false>
boost::shared_ptr<PrimitiveTypeInfo<T, use_ostream> > RTT::types::PrimitiveTypeInfo< T, use_ostream >::mshared
protectedinherited
template<typename T, bool use_ostream = false>
const std::string RTT::types::PrimitiveTypeInfo< T, use_ostream >::tname
protectedinherited
template<class T >
std::map<T,std::string> RTT::types::EnumTypeInfo< T >::to_string
protected

Definition at line 69 of file EnumTypeInfo.hpp.


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