#include <rtt/corba/CORBAExpression.hpp>

Public Types | |
|
typedef boost::call_traits < value_t >::param_type | param_t |
|
typedef boost::call_traits < value_t >::reference | reference_t |
|
typedef boost::call_traits < value_t >::const_reference | const_reference_t |
|
typedef boost::remove_const < typename boost::call_traits < value_t >::param_type > ::type | copy_t |
|
typedef boost::intrusive_ptr < AssignableDataSource< T > > | shared_ptr |
| Use this type to store a pointer to an AssignableDataSource. | |
|
typedef boost::intrusive_ptr < const AssignableDataSource < T > > | const_ptr |
| Use this type to store a const pointer to a DataSourceBase. | |
| typedef T | result_t |
Public Member Functions | |
| CORBAAssignableExpression (Corba::AssignableExpression_ptr expr) | |
| void * | server (int p, void *arg) |
| Create an object server which 'mirrors' this DataSource. | |
| void * | server (int p, void *arg) const |
| DataSource< T >::result_t | value () const |
| Return the result of the last evaluate() function. | |
| AssignableDataSource< T > ::const_reference_t | rvalue () const |
| Get a const reference (or null) to the value of this DataSource. | |
| virtual DataSource< T >::result_t | get () const |
| Return the data as type T. | |
| virtual void | set (typename AssignableDataSource< T >::param_t t) |
| virtual AssignableDataSource < T >::reference_t | set () |
| Get a reference (or null) to the value of this DataSource. | |
| 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 (const CORBA::Any &any) |
| ::RTT::CommandInterface * | updateCommand (DataSourceBase *other) |
| Generate a CommandInterface object which will update this DataSource with the value of another DataSource when execute()'ed. | |
| virtual ::RTT::CommandInterface * | updatePartCommand (DataSourceBase *index, DataSourceBase *rhs) |
| Generate a CommandInterface object which will partially update this DataSource with the value of another DataSource when execute()'ed. | |
| virtual AssignableDataSource< T > * | clone () const |
| Return a shallow clone of this DataSource. | |
| virtual AssignableDataSource< T > * | copy (std::map< const DataSourceBase *, DataSourceBase * > &alreadyCloned) const |
| Create a deep copy of this DataSource, unless it is already cloned. | |
| virtual int | serverProtocol () const |
| Inspect if this DataSource is a proxy for a remote server object. | |
| virtual void | set (param_t t)=0 |
| Set this DataSource with a value. | |
| virtual bool | update (DataSourceBase *other) |
| Update the value of this DataSource with the value of an other DataSource. | |
| virtual bool | updateBlob (int protocol, const void *data) |
| Updates the value of this DataSource with the value of a transportable data object. | |
| virtual bool | evaluate () const |
| Force an evaluation of the DataSourceBase. | |
| virtual std::string | getType () const |
| Return useful type info in a human readable format. | |
| virtual const TypeInfo * | getTypeInfo () const |
| Return the Orocos type info object. | |
| virtual std::string | getTypeName () const |
| Return the Orocos type name, without const, pointer or reference qualifiers. | |
| 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 | updatePart (DataSourceBase *part, DataSourceBase *other) |
| Update part of the value of this DataSource with the value of an other DataSource. | |
| 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 void * | method (int protocol, MethodC *orig, void *arg) |
| Create an object server which 'mirrors' this DataSource. | |
Static Public Member Functions | |
| static AssignableDataSource< T > * | narrow (DataSourceBase *db) |
| This method narrows a DataSourceBase to a typeded AssignableDataSource, possibly returning a new object. | |
| static std::string | GetType () |
| Return usefull type info in a human readable format. | |
| static const TypeInfo * | GetTypeInfo () |
| Return the Orocos type info. | |
| static std::string | GetTypeName () |
| Return the Orocos type name, without const, pointer or reference qualifiers. | |
Protected Attributes | |
| oro_atomic_t | refcount |
| We keep the refcount ourselves. | |
Definition at line 197 of file CORBAExpression.hpp.
| virtual AssignableDataSource<T>* RTT::Corba::CORBAAssignableExpression< T >::clone | ( | ) | const [inline, 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.
Implements RTT::AssignableDataSource< T >.
Definition at line 291 of file CORBAExpression.hpp.
| bool RTT::DataSourceBase::composeType | ( | DataSourceBase::shared_ptr | source | ) | [inherited] |
| virtual AssignableDataSource<T>* RTT::Corba::CORBAAssignableExpression< T >::copy | ( | std::map< const DataSourceBase *, DataSourceBase * > & | alreadyCloned | ) | const [inline, 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.
Implements RTT::AssignableDataSource< T >.
Definition at line 295 of file CORBAExpression.hpp.
| virtual void* RTT::DataSourceBase::createBlob | ( | int | protocol | ) | [virtual, inherited] |
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 | ) | [inherited] |
| virtual bool RTT::DataSource< T >::evaluate | ( | ) | const [virtual, inherited] |
Force an evaluation of the DataSourceBase.
Implements RTT::DataSourceBase.
Referenced by RTT::detail::AssignableDataSourceAdaptor< To const &, To >::evaluate(), and RTT::detail::AssignableDataSourceAdaptor< From, const From & >::evaluate().
| virtual void* RTT::DataSourceBase::getBlob | ( | int | protocol | ) | [virtual, inherited] |
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, inherited] |
Create an object server which 'mirrors' this DataSource.
Reimplemented in RTT::Corba::ExpressionProxy.
| AssignableDataSource<T>::const_reference_t RTT::Corba::CORBAAssignableExpression< T >::rvalue | ( | ) | const [inline, virtual] |
Get a const reference (or null) to the value of this DataSource.
Getting a reference to an internal data structure is not thread-safe. DataSources which wish to protect their data from concurrent access may return the null reference with this method. All calls to rvalue() must first check whether they do not return null.
Implements RTT::AssignableDataSource< T >.
Definition at line 230 of file CORBAExpression.hpp.
References RTT::AssignableDataSource< T >::rvalue().
| void* RTT::Corba::CORBAAssignableExpression< T >::server | ( | int | protocol, | |
| void * | arg | |||
| ) | [inline, virtual] |
Create an object server which 'mirrors' this DataSource.
Reimplemented from RTT::AssignableDataSource< T >.
Definition at line 212 of file CORBAExpression.hpp.
| virtual int RTT::Corba::CORBAAssignableExpression< T >::serverProtocol | ( | ) | const [inline, virtual] |
Inspect if this DataSource is a proxy for a remote server object.
Reimplemented from RTT::DataSourceBase.
Definition at line 300 of file CORBAExpression.hpp.
| virtual AssignableDataSource<T>::reference_t RTT::Corba::CORBAAssignableExpression< T >::set | ( | ) | [inline, virtual] |
Get a reference (or null) to the value of this DataSource.
Getting a reference to an internal data structure is not thread-safe. DataSources which wish to protect their data from concurrent access may return the null reference with this method. All calls to set() must first check whether they do not return null.
Implements RTT::AssignableDataSource< T >.
Definition at line 252 of file CORBAExpression.hpp.
References RTT::AssignableDataSource< T >::set().
| std::string RTT::DataSourceBase::toString | ( | ) | [inherited] |
| virtual bool RTT::AssignableDataSource< T >::update | ( | DataSourceBase * | other | ) | [virtual, inherited] |
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 from RTT::DataSourceBase.
| virtual bool RTT::AssignableDataSource< T >::updateBlob | ( | int | protocol, | |
| const void * | data | |||
| ) | [virtual, inherited] |
Updates the value of this DataSource with the value of a transportable data object.
| any | The value to update to. |
Reimplemented from RTT::DataSourceBase.
Referenced by RTT::Corba::CorbaBufferProxy< T >::front(), RTT::Corba::CORBAExpression< T >::get(), RTT::Corba::CorbaDataObjectProxy< T >::Get(), RTT::Corba::ExpressionProxy::NarrowAssignableDataSource(), and RTT::Corba::ExpressionProxy::NarrowDataSource().
| ::RTT::CommandInterface* RTT::Corba::CORBAAssignableExpression< T >::updateCommand | ( | DataSourceBase * | other | ) | [inline, virtual] |
Generate a CommandInterface object which will update this DataSource with the value of another DataSource when execute()'ed.
Reimplemented from RTT::AssignableDataSource< T >.
Definition at line 275 of file CORBAExpression.hpp.
References RTT::AssignableDataSource< T >::updateCommand().
| virtual bool RTT::DataSourceBase::updatePart | ( | DataSourceBase * | part, | |
| DataSourceBase * | other | |||
| ) | [virtual, inherited] |
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 ::RTT::CommandInterface* RTT::Corba::CORBAAssignableExpression< T >::updatePartCommand | ( | DataSourceBase * | part, | |
| DataSourceBase * | other | |||
| ) | [inline, 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 from RTT::DataSourceBase.
Definition at line 283 of file CORBAExpression.hpp.
References RTT::DataSourceBase::updatePartCommand().
| std::ostream& RTT::DataSourceBase::write | ( | std::ostream & | os | ) | [inherited] |
oro_atomic_t RTT::DataSourceBase::refcount [mutable, protected, inherited] |
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.
1.5.8