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