Orocos Real-Time Toolkit  2.5.0
SequenceTypeInfo.hpp
00001 #ifndef ORO_SEQUENCE_TYPE_INFO_HPP
00002 #define ORO_SEQUENCE_TYPE_INFO_HPP
00003 
00004 #include "TemplateTypeInfo.hpp"
00005 #include "SequenceTypeInfoBase.hpp"
00006 
00007 namespace RTT
00008 {
00009     namespace types
00010     {
00015         template<class T, bool has_ostream=false>
00016         class SequenceTypeInfo
00017         : public TemplateTypeInfo<T,has_ostream>, public SequenceTypeInfoBase<T>
00018         {
00019         public:
00020             SequenceTypeInfo(std::string name)
00021             : TemplateTypeInfo<T,has_ostream>(name), SequenceTypeInfoBase<T>(this)
00022             {}
00023 
00024             using TemplateTypeInfo<T,has_ostream>::buildVariable;
00025             base::AttributeBase* buildVariable(std::string name,int size) const
00026             {
00027                 return SequenceTypeInfoBase<T>::buildVariable(name,size);
00028             }
00029 
00030             virtual bool composeType( base::DataSourceBase::shared_ptr dssource, base::DataSourceBase::shared_ptr dsresult) const
00031             {
00032                 return SequenceTypeInfoBase<T>::composeType(dssource, dsresult);
00033             }
00034 
00035             virtual bool resize(base::DataSourceBase::shared_ptr arg, int size) const
00036             {
00037                 return SequenceTypeInfoBase<T>::resize(arg,size);
00038             }
00039             virtual base::DataSourceBase::shared_ptr decomposeType(base::DataSourceBase::shared_ptr source) const
00040             {
00041                 return SequenceTypeInfoBase<T>::decomposeType(source);
00042             }
00043             virtual std::vector<std::string> getMemberNames() const {
00044                 return SequenceTypeInfoBase<T>::getMemberNames();
00045             }
00046 
00047             virtual base::DataSourceBase::shared_ptr getMember(base::DataSourceBase::shared_ptr item, const std::string& name) const {
00048                 return SequenceTypeInfoBase<T>::getMember(item,name);
00049             }
00050 
00051             virtual base::DataSourceBase::shared_ptr getMember(base::DataSourceBase::shared_ptr item,
00052                                                              base::DataSourceBase::shared_ptr id) const {
00053                 return SequenceTypeInfoBase<T>::getMember(item, id);
00054             }
00055         };
00056     }
00057 }
00058 
00059 #endif