Orocos Real-Time Toolkit  2.6.0
CompositionFactory.hpp
00001 #ifndef RTT__COMPOSITION_FACTORY_HPP
00002 #define RTT__COMPOSITION_FACTORY_HPP
00003 
00004 #include "../base/DataSourceBase.hpp"
00005 
00006 namespace RTT {
00007     namespace types {
00008 
00012         class RTT_API CompositionFactory
00013         {
00014         public:
00015 
00034         virtual bool composeType( base::DataSourceBase::shared_ptr source, base::DataSourceBase::shared_ptr target) const = 0;
00035 
00047         virtual base::DataSourceBase::shared_ptr decomposeType(base::DataSourceBase::shared_ptr source) const;
00048 
00056         virtual base::DataSourceBase::shared_ptr convertType(base::DataSourceBase::shared_ptr source) const;
00057 
00062         };
00063 
00064         typedef boost::shared_ptr<CompositionFactory> CompositionFactoryPtr;
00065 
00066     }
00067 }
00068 
00069 #endif