Orocos Real-Time Toolkit  2.8.3
Public Types | Public Member Functions | List of all members
RTT::types::TemplateCompositionFactory< T > Class Template Reference

#include <rtt/types/TemplateCompositionFactory.hpp>

Inheritance diagram for RTT::types::TemplateCompositionFactory< T >:
RTT::types::CompositionFactory RTT::types::TemplateTypeInfo< T, use_ostream > RTT::types::TemplateTypeInfo< T, false > RTT::types::TemplateTypeInfo< T, has_ostream > RTT::types::TemplateTypeInfo< T, true > RTT::types::EnumTypeInfo< T > RTT::types::SequenceTypeInfo< T, has_ostream > RTT::types::StructTypeInfo< T, has_ostream > RTT::types::StdTypeInfo< T >

Public Types

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

Public Member Functions

virtual bool composeType (base::DataSourceBase::shared_ptr source, base::DataSourceBase::shared_ptr result) const
 Compose a type (target) from a DataSourceBase (source) containing its members. More...
 
virtual base::DataSourceBase::shared_ptr decomposeType (base::DataSourceBase::shared_ptr source) const
 This default implementation sets up a PropertyBag which is passed to decomposeTypeImpl(). More...
 
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...
 

Detailed Description

template<typename T>
class RTT::types::TemplateCompositionFactory< T >

Definition at line 11 of file TemplateCompositionFactory.hpp.

Member Typedef Documentation

template<typename T>
typedef T RTT::types::TemplateCompositionFactory< T >::UserType

The given T parameter is the type for reading DataSources.

Definition at line 19 of file TemplateCompositionFactory.hpp.

Member Function Documentation

template<typename T>
virtual bool RTT::types::TemplateCompositionFactory< T >::composeType ( base::DataSourceBase::shared_ptr  source,
base::DataSourceBase::shared_ptr  target 
) const
inlinevirtual

Compose a type (target) from a DataSourceBase (source) containing its members.

The default behavior tries to assign source to target. If that fails, it tries to decompose target into its members and update the members of target with the contents of source.

The default implementation in TemplateTypeInfo works for most types, but can be overridden in case there are multiple versions/possibilities to make a target from a source. For example, in order to support legacy formats or in order to do the inverse of decomposeType().

Parameters
sourceA data source of the same type as target OR a PropertyBag that contains the parts of target to be refreshed.
targetA data source of the same type as this TypeInfo object which contains the data to be updated from source.
Returns
true if source could be updated, false otherwise.
See also
types::propertyDecomposition and types::typeDecomposition for the inverse function, decomposing a type into datasources and hierarchical properties.
decomposeType to do the inverse operation.

Implements RTT::types::CompositionFactory.

Reimplemented in RTT::types::EnumTypeInfo< T >, RTT::types::StdStringTypeInfo, RTT::types::RTStringTypeInfo, RTT::types::StdTypeInfo< T >, RTT::types::StdTypeInfo< bool >, RTT::types::StdVectorTemplateTypeInfo< T, has_ostream >, RTT::types::StdVectorTypeInfo, RTT::types::SequenceTypeInfo< T, has_ostream >, RTT::types::SequenceTypeInfo< rt_string, true >, RTT::types::SequenceTypeInfo< std::string, true >, RTT::types::SequenceTypeInfo< std::vector< double >, true >, and RTT::types::SequenceTypeInfo< std::vector< T >, has_ostream >.

Definition at line 21 of file TemplateCompositionFactory.hpp.

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

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>
virtual base::DataSourceBase::shared_ptr RTT::types::TemplateCompositionFactory< T >::decomposeType ( base::DataSourceBase::shared_ptr  source) const
inlinevirtual
template<typename T>
virtual bool RTT::types::TemplateCompositionFactory< T >::decomposeTypeImpl ( typename internal::AssignableDataSource< T >::const_reference_t  source,
PropertyBag targetbag 
) const
inlinevirtual

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().


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