The base class for all DataSource's. More...
#include <rtt/DataSourceBase.hpp>
Public Types | |
typedef boost::intrusive_ptr < DataSourceBase > | shared_ptr |
Use this type to store a pointer to a DataSourceBase. | |
typedef boost::intrusive_ptr < const DataSourceBase > | const_ptr |
Use this type to store a const pointer to a DataSourceBase. | |
Public Member Functions | |
void | ref () const |
Increase the reference count by one. | |
void | deref () const |
Decrease the reference count by one and delete this on zero. | |
virtual void | reset () |
Reset the data to initial values. | |
virtual bool | evaluate () const =0 |
Force an evaluation of the DataSourceBase. | |
virtual void | updated () |
In case the DataSource returns a 'reference' type, call this method to notify it that the data was updated in the course of an invocation of get(). | |
virtual bool | update (DataSourceBase *other) |
Update the value of this DataSource with the value of an other DataSource. | |
virtual CommandInterface * | updateCommand (DataSourceBase *other) |
Generate a CommandInterface object which will update this DataSource with the value of another DataSource when execute()'ed. | |
virtual bool | updatePart (DataSourceBase *part, DataSourceBase *other) |
Update part of the value of this DataSource with the value of an other DataSource. | |
virtual CommandInterface * | updatePartCommand (DataSourceBase *part, DataSourceBase *other) |
Generate a CommandInterface object which will partially update this DataSource with the value of another DataSource when execute()'ed. | |
virtual DataSourceBase * | clone () const =0 |
Return a shallow clone of this DataSource. | |
virtual DataSourceBase * | copy (std::map< const DataSourceBase *, DataSourceBase * > &alreadyCloned) const =0 |
Create a deep copy of this DataSource, unless it is already cloned. | |
virtual std::string | getType () const =0 |
Return useful type info in a human readable format. | |
virtual const TypeInfo * | getTypeInfo () const =0 |
Return the Orocos type info object. | |
virtual std::string | getTypeName () const =0 |
Return the Orocos type name, without const, pointer or reference qualifiers. | |
std::ostream & | write (std::ostream &os) |
Stream the contents of this object. | |
std::string | toString () |
Get the contents of this object as a string. | |
bool | decomposeType (PropertyBag &targetbag) |
Decompose the contents of this object into properties. | |
bool | composeType (DataSourceBase::shared_ptr source) |
Compose the contents of this object from another datasource. | |
virtual void * | createBlob (int protocol) |
Creates a transportable data object with the current value of this DataSource. | |
virtual void * | getBlob (int protocol) |
Creates a transportable data object with the current value of this DataSource. | |
virtual bool | updateBlob (int protocol, const void *data) |
Updates the value of this DataSource with the value of a transportable data object. | |
virtual int | serverProtocol () const |
Inspect if this DataSource is a proxy for a remote server object. | |
virtual void * | server (int protocol, void *arg) |
Create an object server which 'mirrors' this DataSource. | |
virtual void * | method (int protocol, MethodC *orig, void *arg) |
Create an object server which 'mirrors' this DataSource. | |
Protected Member Functions | |
virtual | ~DataSourceBase () |
the destructor is private. | |
Protected Attributes | |
OS::AtomicInt | refcount |
We keep the refcount ourselves. |
The base class for all DataSource's.
The DataSource is an object containing Data of any type. It's interface is designed for dynamic build-up and destruction of these objects and allowing Commands, Properties etc to use them as 'storage' devices which have the dual copy() /clone() semantics (which is heavily used by the Orocos Task Infrastructure).
DataSource's are reference counted and must be allocated on the headp. Use DataSourceBase::shared_ptr or DataSource<T>::shared_ptr to deal with cleanup of allocated DataSources. You are not allowed to delete a DataSource. If you must have the pointer of a DataSource, use the .get() method of the shared_ptr class.
Once a newly created DataSource is assigned to a shared_ptr, it will be deleted when that pointer goes out of scope and is not shared by other shared_ptr objects.
Definition at line 77 of file DataSourceBase.hpp.
virtual RTT::DataSourceBase::~DataSourceBase | ( | ) | [protected, virtual] |
the destructor is private.
You are not allowed to delete this class RTT_API yourself, use a shared pointer !
virtual DataSourceBase* RTT::DataSourceBase::clone | ( | ) | const [pure virtual] |
Return a shallow clone of this DataSource.
This method returns a duplicate of this instance which re-uses the DataSources this DataSource holds reference to. The clone() function is thus a non-deep copy.
Implemented in RTT::BufferDataSource< T >, RTT::Corba::AnyDataSource, RTT::Corba::CorbaDataObject< T >, RTT::Corba::CorbaDataObjectProxy< T >, RTT::Corba::CORBAExpression< T >, RTT::Corba::CORBAExpression< void >, RTT::Corba::CORBAAssignableExpression< T >, RTT::Corba::ExpressionProxy, RTT::DataObjectLocked< T >, RTT::DataObjectPrioritySet< T >, RTT::DataObjectPriorityGet< T >, RTT::DataObjectLockFree< T >, RTT::DataObject< T >, RTT::DataSource< T >, RTT::AssignableDataSource< T >, RTT::detail::DataSourceAdaptor< From, To >, RTT::detail::DataSourceAdaptor< TFrom &, TFrom >, RTT::detail::DataSourceAdaptor< const TFrom &, const TFrom >, RTT::detail::DataSourceAdaptor< TFrom &, TFrom & >, RTT::detail::DataSourceAdaptor< TFrom, const TFrom & >, RTT::detail::DataSourceAdaptor< const TFrom, const TFrom & >, RTT::detail::AssignableDataSourceAdaptor< From, To >, RTT::detail::AssignableDataSourceAdaptor< From, const From & >, RTT::detail::AssignableDataSourceAdaptor< To const &, To >, RTT::detail::DataSourceArgsMethod< SignatureT, FunctorT >, RTT::DataSourceCommand, RTT::DataSourceCondition, RTT::ValueDataSource< T >, RTT::ConstantDataSource< T >, RTT::ReferenceDataSource< T >, RTT::IndexedValueDataSource< T, Index, SetType, IPred, APred >, RTT::BinaryDataSource< function >, RTT::TernaryDataSource< function >, RTT::SixaryDataSource< function >, RTT::UnaryDataSource< function >, RTT::NArityDataSource< function >, RTT::DataSourceTime, RTT::detail::FunctorDataSource0< FunctorT >, RTT::detail::FunctorDataSourceDS0< ComponentT, FunctorT >, RTT::detail::FunctorDataSourceDS1< ComponentT, FunctorT, Arg1T >, RTT::DataSource< Arg6T >, RTT::DataSource< fifth_arg_t >, RTT::DataSource< arg3_type >, RTT::DataSource< DataSourceType >, RTT::DataSource< T1 >, RTT::DataSource< F::arg2_type >, RTT::DataSource< double >, RTT::DataSource< T2 >, RTT::DataSource< Arg1T >, RTT::DataSource< A1 >, RTT::DataSource< T3 >, RTT::DataSource< Index >, RTT::DataSource< TimeService::Seconds >, RTT::DataSource< StateMachineWPtr >, RTT::DataSource< Arg2T >, RTT::DataSource< R >, RTT::DataSource< A2 >, RTT::DataSource< A >, RTT::DataSource< boost::function_traits< SignatureT >::result_type >, RTT::DataSource< third_arg_t >, RTT::DataSource< A3 >, RTT::DataSource< S >, RTT::DataSource< CORBA::Any_var >, RTT::DataSource< F::arg5_type >, RTT::DataSource< arg4_type >, RTT::DataSource< SetType >, RTT::DataSource< void >, RTT::DataSource< TFrom >, RTT::DataSource< const TFrom & >, RTT::DataSource< arg_t >, RTT::DataSource< boost::weak_ptr< ComponentT > >, RTT::DataSource< From >, RTT::DataSource< FunctorT::result_type >, RTT::DataSource< function::result_type >, RTT::DataSource< ProgramInterfaceWPtr >, RTT::DataSource< arg2_type >, RTT::DataSource< second_arg_t >, RTT::DataSource< F::arg1_type >, RTT::DataSource< F::result_type >, RTT::DataSource< arg1_type >, RTT::DataSource< boost::function_traits< S >::result_type >, RTT::DataSource< fourth_arg_t >, RTT::DataSource< boost::weak_ptr< CompT > >, RTT::DataSource< F::arg4_type >, RTT::DataSource< value_t >, RTT::DataSource< ProgramInterface * >, RTT::DataSource< bool >, RTT::DataSource< To >, RTT::DataSource< F::arg3_type >, RTT::DataSource< boost::function_traits< DataType >::result_type >, RTT::DataSource< F::arg6_type >, RTT::DataSource< Arg3T >, RTT::DataSource< const TFrom >, RTT::DataSource< TFrom & >, RTT::DataSource< const From & >, RTT::DataSource< Arg4T >, RTT::DataSource< sixth_arg_t >, RTT::DataSource< Arg5T >, RTT::DataSource< first_arg_t >, RTT::AssignableDataSource< arg3_type >, RTT::AssignableDataSource< DataSourceType >, RTT::AssignableDataSource< T1 >, RTT::AssignableDataSource< T2 >, RTT::AssignableDataSource< A1 >, RTT::AssignableDataSource< T3 >, RTT::AssignableDataSource< StateMachineWPtr >, RTT::AssignableDataSource< R >, RTT::AssignableDataSource< A2 >, RTT::AssignableDataSource< A >, RTT::AssignableDataSource< A3 >, RTT::AssignableDataSource< arg4_type >, RTT::AssignableDataSource< TFrom >, RTT::AssignableDataSource< From >, RTT::AssignableDataSource< ProgramInterfaceWPtr >, RTT::AssignableDataSource< arg2_type >, RTT::AssignableDataSource< arg1_type >, RTT::AssignableDataSource< ProgramInterface * >, RTT::AssignableDataSource< value_t >, RTT::AssignableDataSource< bool >, RTT::AssignableDataSource< To >, RTT::AssignableDataSource< boost::function_traits< DataType >::result_type >, RTT::AssignableDataSource< TFrom & >, RTT::detail::DataSourceArgsMethod< S >, RTT::ValueDataSource< arg3_type >, RTT::ValueDataSource< StateMachineWPtr >, RTT::ValueDataSource< R >, RTT::ValueDataSource< A >, RTT::ValueDataSource< arg4_type >, RTT::ValueDataSource< ProgramInterfaceWPtr >, RTT::ValueDataSource< arg2_type >, RTT::ValueDataSource< arg1_type >, RTT::ValueDataSource< boost::function_traits< DataType >::result_type >, and RTT::detail::FunctorDataSource0< F >.
bool RTT::DataSourceBase::composeType | ( | DataSourceBase::shared_ptr | source | ) |
Compose the contents of this object from another datasource.
virtual DataSourceBase* RTT::DataSourceBase::copy | ( | std::map< const DataSourceBase *, DataSourceBase * > & | alreadyCloned | ) | const [pure virtual] |
Create a deep copy of this DataSource, unless it is already cloned.
Places the association (parent, clone) in alreadyCloned. If the DataSource is non-copyable (for example it represents the Property of a Task ), this may be returned.
Implemented in RTT::BufferDataSource< T >, RTT::Corba::AnyDataSource, RTT::Corba::CorbaDataObject< T >, RTT::Corba::CorbaDataObjectProxy< T >, RTT::Corba::CORBAExpression< T >, RTT::Corba::CORBAExpression< void >, RTT::Corba::CORBAAssignableExpression< T >, RTT::Corba::ExpressionProxy, RTT::DataObjectLocked< T >, RTT::DataObjectPrioritySet< T >, RTT::DataObjectPriorityGet< T >, RTT::DataObjectLockFree< T >, RTT::DataObject< T >, RTT::DataSource< T >, RTT::AssignableDataSource< T >, RTT::detail::DataSourceAdaptor< From, To >, RTT::detail::DataSourceAdaptor< TFrom &, TFrom >, RTT::detail::DataSourceAdaptor< const TFrom &, const TFrom >, RTT::detail::DataSourceAdaptor< TFrom &, TFrom & >, RTT::detail::DataSourceAdaptor< TFrom, const TFrom & >, RTT::detail::DataSourceAdaptor< const TFrom, const TFrom & >, RTT::detail::AssignableDataSourceAdaptor< From, To >, RTT::detail::AssignableDataSourceAdaptor< From, const From & >, RTT::detail::AssignableDataSourceAdaptor< To const &, To >, RTT::detail::DataSourceArgsMethod< SignatureT, FunctorT >, RTT::DataSourceCommand, RTT::DataSourceCondition, RTT::ValueDataSource< T >, RTT::ConstantDataSource< T >, RTT::ReferenceDataSource< T >, RTT::IndexedValueDataSource< T, Index, SetType, IPred, APred >, RTT::BinaryDataSource< function >, RTT::TernaryDataSource< function >, RTT::SixaryDataSource< function >, RTT::UnaryDataSource< function >, RTT::NArityDataSource< function >, RTT::DataSourceTime, RTT::detail::FunctorDataSource0< FunctorT >, RTT::detail::FunctorDataSourceDS0< ComponentT, FunctorT >, RTT::detail::FunctorDataSourceDS1< ComponentT, FunctorT, Arg1T >, RTT::DataSource< Arg6T >, RTT::DataSource< fifth_arg_t >, RTT::DataSource< arg3_type >, RTT::DataSource< DataSourceType >, RTT::DataSource< T1 >, RTT::DataSource< F::arg2_type >, RTT::DataSource< double >, RTT::DataSource< T2 >, RTT::DataSource< Arg1T >, RTT::DataSource< A1 >, RTT::DataSource< T3 >, RTT::DataSource< Index >, RTT::DataSource< TimeService::Seconds >, RTT::DataSource< StateMachineWPtr >, RTT::DataSource< Arg2T >, RTT::DataSource< R >, RTT::DataSource< A2 >, RTT::DataSource< A >, RTT::DataSource< boost::function_traits< SignatureT >::result_type >, RTT::DataSource< third_arg_t >, RTT::DataSource< A3 >, RTT::DataSource< S >, RTT::DataSource< CORBA::Any_var >, RTT::DataSource< F::arg5_type >, RTT::DataSource< arg4_type >, RTT::DataSource< SetType >, RTT::DataSource< void >, RTT::DataSource< TFrom >, RTT::DataSource< const TFrom & >, RTT::DataSource< arg_t >, RTT::DataSource< boost::weak_ptr< ComponentT > >, RTT::DataSource< From >, RTT::DataSource< FunctorT::result_type >, RTT::DataSource< function::result_type >, RTT::DataSource< ProgramInterfaceWPtr >, RTT::DataSource< arg2_type >, RTT::DataSource< second_arg_t >, RTT::DataSource< F::arg1_type >, RTT::DataSource< F::result_type >, RTT::DataSource< arg1_type >, RTT::DataSource< boost::function_traits< S >::result_type >, RTT::DataSource< fourth_arg_t >, RTT::DataSource< boost::weak_ptr< CompT > >, RTT::DataSource< F::arg4_type >, RTT::DataSource< value_t >, RTT::DataSource< ProgramInterface * >, RTT::DataSource< bool >, RTT::DataSource< To >, RTT::DataSource< F::arg3_type >, RTT::DataSource< boost::function_traits< DataType >::result_type >, RTT::DataSource< F::arg6_type >, RTT::DataSource< Arg3T >, RTT::DataSource< const TFrom >, RTT::DataSource< TFrom & >, RTT::DataSource< const From & >, RTT::DataSource< Arg4T >, RTT::DataSource< sixth_arg_t >, RTT::DataSource< Arg5T >, RTT::DataSource< first_arg_t >, RTT::AssignableDataSource< arg3_type >, RTT::AssignableDataSource< DataSourceType >, RTT::AssignableDataSource< T1 >, RTT::AssignableDataSource< T2 >, RTT::AssignableDataSource< A1 >, RTT::AssignableDataSource< T3 >, RTT::AssignableDataSource< StateMachineWPtr >, RTT::AssignableDataSource< R >, RTT::AssignableDataSource< A2 >, RTT::AssignableDataSource< A >, RTT::AssignableDataSource< A3 >, RTT::AssignableDataSource< arg4_type >, RTT::AssignableDataSource< TFrom >, RTT::AssignableDataSource< From >, RTT::AssignableDataSource< ProgramInterfaceWPtr >, RTT::AssignableDataSource< arg2_type >, RTT::AssignableDataSource< arg1_type >, RTT::AssignableDataSource< ProgramInterface * >, RTT::AssignableDataSource< value_t >, RTT::AssignableDataSource< bool >, RTT::AssignableDataSource< To >, RTT::AssignableDataSource< boost::function_traits< DataType >::result_type >, RTT::AssignableDataSource< TFrom & >, RTT::detail::DataSourceArgsMethod< S >, RTT::ValueDataSource< arg3_type >, RTT::ValueDataSource< StateMachineWPtr >, RTT::ValueDataSource< R >, RTT::ValueDataSource< A >, RTT::ValueDataSource< arg4_type >, RTT::ValueDataSource< ProgramInterfaceWPtr >, RTT::ValueDataSource< arg2_type >, RTT::ValueDataSource< arg1_type >, RTT::ValueDataSource< boost::function_traits< DataType >::result_type >, and RTT::detail::FunctorDataSource0< F >.
virtual void* RTT::DataSourceBase::createBlob | ( | int | protocol | ) | [virtual] |
Creates a transportable data object with the current value of this DataSource.
This does not trigger the evaluation() of this data source.
Reimplemented in RTT::Corba::ExpressionProxy.
Referenced by RTT::Corba::CorbaDataObjectProxy< T >::Set().
bool RTT::DataSourceBase::decomposeType | ( | PropertyBag & | targetbag | ) |
Decompose the contents of this object into properties.
virtual bool RTT::DataSourceBase::evaluate | ( | ) | const [pure virtual] |
Force an evaluation of the DataSourceBase.
Implemented in RTT::Corba::ExpressionProxy, RTT::DataSource< T >, RTT::detail::DataSourceAdaptor< From, To >, RTT::detail::DataSourceAdaptor< TFrom &, TFrom >, RTT::detail::DataSourceAdaptor< const TFrom &, const TFrom >, RTT::detail::DataSourceAdaptor< TFrom &, TFrom & >, RTT::detail::DataSourceAdaptor< TFrom, const TFrom & >, RTT::detail::DataSourceAdaptor< const TFrom, const TFrom & >, RTT::detail::AssignableDataSourceAdaptor< From, To >, RTT::detail::AssignableDataSourceAdaptor< From, const From & >, RTT::detail::AssignableDataSourceAdaptor< To const &, To >, RTT::DataSource< Arg6T >, RTT::DataSource< fifth_arg_t >, RTT::DataSource< arg3_type >, RTT::DataSource< DataSourceType >, RTT::DataSource< T1 >, RTT::DataSource< F::arg2_type >, RTT::DataSource< double >, RTT::DataSource< T2 >, RTT::DataSource< Arg1T >, RTT::DataSource< A1 >, RTT::DataSource< T3 >, RTT::DataSource< Index >, RTT::DataSource< TimeService::Seconds >, RTT::DataSource< StateMachineWPtr >, RTT::DataSource< Arg2T >, RTT::DataSource< R >, RTT::DataSource< A2 >, RTT::DataSource< A >, RTT::DataSource< boost::function_traits< SignatureT >::result_type >, RTT::DataSource< third_arg_t >, RTT::DataSource< A3 >, RTT::DataSource< S >, RTT::DataSource< CORBA::Any_var >, RTT::DataSource< F::arg5_type >, RTT::DataSource< arg4_type >, RTT::DataSource< SetType >, RTT::DataSource< void >, RTT::DataSource< TFrom >, RTT::DataSource< const TFrom & >, RTT::DataSource< arg_t >, RTT::DataSource< boost::weak_ptr< ComponentT > >, RTT::DataSource< From >, RTT::DataSource< FunctorT::result_type >, RTT::DataSource< function::result_type >, RTT::DataSource< ProgramInterfaceWPtr >, RTT::DataSource< arg2_type >, RTT::DataSource< second_arg_t >, RTT::DataSource< F::arg1_type >, RTT::DataSource< F::result_type >, RTT::DataSource< arg1_type >, RTT::DataSource< boost::function_traits< S >::result_type >, RTT::DataSource< fourth_arg_t >, RTT::DataSource< boost::weak_ptr< CompT > >, RTT::DataSource< F::arg4_type >, RTT::DataSource< value_t >, RTT::DataSource< ProgramInterface * >, RTT::DataSource< bool >, RTT::DataSource< To >, RTT::DataSource< F::arg3_type >, RTT::DataSource< boost::function_traits< DataType >::result_type >, RTT::DataSource< F::arg6_type >, RTT::DataSource< Arg3T >, RTT::DataSource< const TFrom >, RTT::DataSource< TFrom & >, RTT::DataSource< const From & >, RTT::DataSource< Arg4T >, RTT::DataSource< sixth_arg_t >, RTT::DataSource< Arg5T >, RTT::DataSource< first_arg_t >, and RTT::DataSource< T >.
virtual void* RTT::DataSourceBase::getBlob | ( | int | protocol | ) | [virtual] |
Creates a transportable data object with the current value of this DataSource.
This does trigger the evaluation() of this data source. Equivalent to this->evaluate(); this->createBlob();
Reimplemented in RTT::Corba::ExpressionProxy.
virtual void* RTT::DataSourceBase::method | ( | int | protocol, | |
MethodC * | orig, | |||
void * | arg | |||
) | [virtual] |
Create an object server which 'mirrors' this DataSource.
Reimplemented in RTT::Corba::ExpressionProxy.
virtual void* RTT::DataSourceBase::server | ( | int | protocol, | |
void * | arg | |||
) | [virtual] |
Create an object server which 'mirrors' this DataSource.
Reimplemented in RTT::Corba::CORBAExpression< T >, RTT::Corba::CORBAExpression< void >, RTT::Corba::CORBAAssignableExpression< T >, RTT::Corba::ExpressionProxy, RTT::AssignableDataSource< T >, RTT::AssignableDataSource< arg3_type >, RTT::AssignableDataSource< DataSourceType >, RTT::AssignableDataSource< T1 >, RTT::AssignableDataSource< T2 >, RTT::AssignableDataSource< A1 >, RTT::AssignableDataSource< T3 >, RTT::AssignableDataSource< StateMachineWPtr >, RTT::AssignableDataSource< R >, RTT::AssignableDataSource< A2 >, RTT::AssignableDataSource< A >, RTT::AssignableDataSource< A3 >, RTT::AssignableDataSource< arg4_type >, RTT::AssignableDataSource< TFrom >, RTT::AssignableDataSource< From >, RTT::AssignableDataSource< ProgramInterfaceWPtr >, RTT::AssignableDataSource< arg2_type >, RTT::AssignableDataSource< arg1_type >, RTT::AssignableDataSource< ProgramInterface * >, RTT::AssignableDataSource< value_t >, RTT::AssignableDataSource< bool >, RTT::AssignableDataSource< To >, RTT::AssignableDataSource< boost::function_traits< DataType >::result_type >, and RTT::AssignableDataSource< TFrom & >.
virtual int RTT::DataSourceBase::serverProtocol | ( | ) | const [virtual] |
Inspect if this DataSource is a proxy for a remote server object.
Reimplemented in RTT::Corba::AnyDataSource, RTT::Corba::CORBAExpression< T >, RTT::Corba::CORBAExpression< void >, RTT::Corba::CORBAAssignableExpression< T >, and RTT::Corba::ExpressionProxy.
Referenced by RTT::AssignableDataSource< T >::narrow(), and RTT::DataSource< T >::narrow().
std::string RTT::DataSourceBase::toString | ( | ) |
Get the contents of this object as a string.
virtual bool RTT::DataSourceBase::update | ( | DataSourceBase * | other | ) | [virtual] |
Update the value of this DataSource with the value of an other DataSource.
Update does a full update of the value, adding extra information if necessary.
Reimplemented in RTT::AssignableDataSource< T >, RTT::AssignableDataSource< arg3_type >, RTT::AssignableDataSource< DataSourceType >, RTT::AssignableDataSource< T1 >, RTT::AssignableDataSource< T2 >, RTT::AssignableDataSource< A1 >, RTT::AssignableDataSource< T3 >, RTT::AssignableDataSource< StateMachineWPtr >, RTT::AssignableDataSource< R >, RTT::AssignableDataSource< A2 >, RTT::AssignableDataSource< A >, RTT::AssignableDataSource< A3 >, RTT::AssignableDataSource< arg4_type >, RTT::AssignableDataSource< TFrom >, RTT::AssignableDataSource< From >, RTT::AssignableDataSource< ProgramInterfaceWPtr >, RTT::AssignableDataSource< arg2_type >, RTT::AssignableDataSource< arg1_type >, RTT::AssignableDataSource< ProgramInterface * >, RTT::AssignableDataSource< value_t >, RTT::AssignableDataSource< bool >, RTT::AssignableDataSource< To >, RTT::AssignableDataSource< boost::function_traits< DataType >::result_type >, and RTT::AssignableDataSource< TFrom & >.
virtual bool RTT::DataSourceBase::updateBlob | ( | int | protocol, | |
const void * | data | |||
) | [virtual] |
Updates the value of this DataSource with the value of a transportable data object.
any | The value to update to. |
Reimplemented in RTT::AssignableDataSource< T >, RTT::AssignableDataSource< arg3_type >, RTT::AssignableDataSource< DataSourceType >, RTT::AssignableDataSource< T1 >, RTT::AssignableDataSource< T2 >, RTT::AssignableDataSource< A1 >, RTT::AssignableDataSource< T3 >, RTT::AssignableDataSource< StateMachineWPtr >, RTT::AssignableDataSource< R >, RTT::AssignableDataSource< A2 >, RTT::AssignableDataSource< A >, RTT::AssignableDataSource< A3 >, RTT::AssignableDataSource< arg4_type >, RTT::AssignableDataSource< TFrom >, RTT::AssignableDataSource< From >, RTT::AssignableDataSource< ProgramInterfaceWPtr >, RTT::AssignableDataSource< arg2_type >, RTT::AssignableDataSource< arg1_type >, RTT::AssignableDataSource< ProgramInterface * >, RTT::AssignableDataSource< value_t >, RTT::AssignableDataSource< bool >, RTT::AssignableDataSource< To >, RTT::AssignableDataSource< boost::function_traits< DataType >::result_type >, and RTT::AssignableDataSource< TFrom & >.
virtual CommandInterface* RTT::DataSourceBase::updateCommand | ( | DataSourceBase * | other | ) | [virtual] |
Generate a CommandInterface object which will update this DataSource with the value of another DataSource when execute()'ed.
Reimplemented in RTT::Corba::CORBAAssignableExpression< T >, RTT::AssignableDataSource< T >, RTT::IndexedValueDataSource< T, Index, SetType, IPred, APred >, RTT::AssignableDataSource< arg3_type >, RTT::AssignableDataSource< DataSourceType >, RTT::AssignableDataSource< T1 >, RTT::AssignableDataSource< T2 >, RTT::AssignableDataSource< A1 >, RTT::AssignableDataSource< T3 >, RTT::AssignableDataSource< StateMachineWPtr >, RTT::AssignableDataSource< R >, RTT::AssignableDataSource< A2 >, RTT::AssignableDataSource< A >, RTT::AssignableDataSource< A3 >, RTT::AssignableDataSource< arg4_type >, RTT::AssignableDataSource< TFrom >, RTT::AssignableDataSource< From >, RTT::AssignableDataSource< ProgramInterfaceWPtr >, RTT::AssignableDataSource< arg2_type >, RTT::AssignableDataSource< arg1_type >, RTT::AssignableDataSource< ProgramInterface * >, RTT::AssignableDataSource< value_t >, RTT::AssignableDataSource< bool >, RTT::AssignableDataSource< To >, RTT::AssignableDataSource< boost::function_traits< DataType >::result_type >, and RTT::AssignableDataSource< TFrom & >.
virtual bool RTT::DataSourceBase::updatePart | ( | DataSourceBase * | part, | |
DataSourceBase * | other | |||
) | [virtual] |
Update part of the value of this DataSource with the value of an other DataSource.
Update does a partial update of the value, according to part, which is most likely an index or hash value of some type.
Reimplemented in RTT::detail::AssignableDataSourceAdaptor< To const &, To >.
Referenced by RTT::detail::AssignableDataSourceAdaptor< To const &, To >::updatePart().
virtual CommandInterface* RTT::DataSourceBase::updatePartCommand | ( | DataSourceBase * | part, | |
DataSourceBase * | other | |||
) | [virtual] |
Generate a CommandInterface object which will partially update this DataSource with the value of another DataSource when execute()'ed.
part is an index or hash value of some type.
Reimplemented in RTT::Corba::CORBAAssignableExpression< T >, RTT::detail::AssignableDataSourceAdaptor< To const &, To >, and RTT::IndexedValueDataSource< T, Index, SetType, IPred, APred >.
Referenced by RTT::detail::AssignableDataSourceAdaptor< To const &, To >::updatePartCommand().
std::ostream& RTT::DataSourceBase::write | ( | std::ostream & | os | ) |
Stream the contents of this object.
OS::AtomicInt RTT::DataSourceBase::refcount [mutable, protected] |
We keep the refcount ourselves.
We aren't using boost::shared_ptr, because boost::intrusive_ptr is better, exactly because it can be used with refcounts that are stored in the class itself. Advantages are that the shared_ptr's for derived classes use the same refcount, which is of course very much desired, and that refcounting happens in an efficient way, which is also nice :)
Definition at line 89 of file DataSourceBase.hpp.