#include <TemplateCompositionFactory.hpp>
Public Types | |
typedef T | UserType |
Public Member Functions | |
virtual bool | composeType (base::DataSourceBase::shared_ptr source, base::DataSourceBase::shared_ptr result) const |
virtual bool | composeTypeImpl (const PropertyBag &source, typename internal::AssignableDataSource< T >::reference_t result) const |
virtual base::DataSourceBase::shared_ptr | decomposeType (base::DataSourceBase::shared_ptr source) const |
virtual bool | decomposeTypeImpl (typename internal::AssignableDataSource< T >::const_reference_t source, PropertyBag &targetbag) const |
Definition at line 11 of file TemplateCompositionFactory.hpp.
typedef T RTT::types::TemplateCompositionFactory< T >::UserType |
The given T parameter is the type for reading DataSources.
Reimplemented in RTT::types::TemplateTypeInfo< T, use_ostream >, RTT::types::TemplateTypeInfo< T, has_ostream >, RTT::types::TemplateTypeInfo< rt_string, has_ostream >, RTT::types::TemplateTypeInfo< std::vector< T >, has_ostream >, RTT::types::TemplateTypeInfo< bool, true >, RTT::types::TemplateTypeInfo< std::string, has_ostream >, RTT::types::TemplateTypeInfo< T, true >, RTT::types::TemplateTypeInfo< std::vector< double >, has_ostream >, and RTT::types::TemplateTypeInfo< T, false >.
Definition at line 19 of file TemplateCompositionFactory.hpp.
virtual bool RTT::types::TemplateCompositionFactory< T >::composeType | ( | base::DataSourceBase::shared_ptr | source, |
base::DataSourceBase::shared_ptr | target | ||
) | const [inline, virtual] |
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().
source | A data source of the same type as target OR a PropertyBag that contains the parts of target to be refreshed. |
target | A data source of the same type as this TypeInfo object which contains the data to be updated from source. |
Implements RTT::types::CompositionFactory.
Reimplemented in RTT::types::EnumTypeInfo< T >, RTT::types::StdStringTypeInfo, RTT::types::RTStringTypeInfo, RTT::types::StdTypeInfo< T >, RTT::types::StdVectorTemplateTypeInfo< T, has_ostream >, RTT::types::StdTypeInfo< bool >, 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.
virtual bool RTT::types::TemplateCompositionFactory< T >::composeTypeImpl | ( | const PropertyBag & | source, |
typename internal::AssignableDataSource< T >::reference_t | result | ||
) | const [inline, virtual] |
User, implement this function in case you want to control reading the XML data format.
Reimplemented in RTT::types::StructTypeInfo< T, has_ostream >, and RTT::types::MatrixTypeInfo< T, has_ostream >.
Definition at line 61 of file TemplateCompositionFactory.hpp.
virtual base::DataSourceBase::shared_ptr RTT::types::TemplateCompositionFactory< T >::decomposeType | ( | base::DataSourceBase::shared_ptr | source | ) | const [inline, virtual] |
This default implementation sets up a PropertyBag which is passed to decomposeTypeImpl(). It is advised to implement that function and to leave this function as-is, unless you don't want to return a PropertyBag, but another data type.
Reimplemented from 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::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 46 of file TemplateCompositionFactory.hpp.
virtual bool RTT::types::TemplateCompositionFactory< T >::decomposeTypeImpl | ( | typename internal::AssignableDataSource< T >::const_reference_t | source, |
PropertyBag & | targetbag | ||
) | const [inline, virtual] |
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.