40 #ifndef CORELIB_DATASOURCE_BASE_HPP 41 #define CORELIB_DATASOURCE_BASE_HPP 43 #include <boost/intrusive_ptr.hpp> 47 #include "../os/Atomic.hpp" 48 #include "../rtt-config.h" 50 #include "../rtt-fwd.hpp" 104 typedef boost::intrusive_ptr<const DataSourceBase>
const_ptr;
133 virtual void reset();
139 virtual bool evaluate()
const = 0;
146 virtual bool isAssignable()
const;
153 virtual void updated();
182 virtual shared_ptr getMember(
const std::string& member_name);
199 virtual std::vector<std::string> getMemberNames()
const;
205 virtual shared_ptr getParent();
222 virtual DataSourceBase* copy( std::map<const DataSourceBase*, DataSourceBase*>& alreadyCloned )
const = 0;
227 virtual std::string getType()
const = 0;
238 virtual std::string getTypeName()
const = 0;
244 std::ostream& write(std::ostream& os);
250 std::string toString();
258 virtual void* getRawPointer();
266 virtual void const* getRawConstPointer();
The base class for all internal data representations.
void RTT_API intrusive_ptr_add_ref(ChannelElementBase *e)
RTT_API std::ostream & operator<<(std::ostream &os, DataSourceBase::shared_ptr dsb)
Based on the software pattern 'command', this interface allows execution of action objects...
boost::intrusive_ptr< const DataSourceBase > const_ptr
void RTT_API intrusive_ptr_release(ChannelElementBase *e)
boost::intrusive_ptr< DataSourceBase > shared_ptr
Contains TaskContext, Activity, OperationCaller, Operation, Property, InputPort, OutputPort, Attribute.
static bool update(TaskContext *tc)