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