00001 #ifndef ORO_MEMBER_FACTORY_HPP 00002 #define ORO_MEMBER_FACTORY_HPP 00003 00004 #include "../base/DataSourceBase.hpp" 00005 #include "../rtt-config.h" 00006 #include "../internal/Reference.hpp" 00007 #include <vector> 00008 #include <string> 00009 00010 namespace RTT 00011 { 00012 namespace types 00013 { 00014 00015 class RTT_API MemberFactory 00016 { 00017 public: 00028 virtual bool resize(base::DataSourceBase::shared_ptr arg, int size) const; 00029 00034 virtual std::vector<std::string> getMemberNames() const; 00035 00043 virtual base::DataSourceBase::shared_ptr getMember(base::DataSourceBase::shared_ptr item, const std::string& name) const; 00044 00056 virtual base::DataSourceBase::shared_ptr getMember(base::DataSourceBase::shared_ptr item, 00057 base::DataSourceBase::shared_ptr id) const; 00058 00059 00069 virtual bool getMember(internal::Reference* ref, base::DataSourceBase::shared_ptr item, const std::string& name) const; 00071 }; 00072 00073 typedef boost::shared_ptr<MemberFactory> MemberFactoryPtr; 00074 } 00075 } 00076 #endif