Orocos Real-Time Toolkit
2.9.0
|
A template-less SendHandle manager. More...
#include <rtt/internal/SendHandleC.hpp>
Public Member Functions | |
SendHandleC () | |
The default constructor. More... | |
SendHandleC (base::DataSourceBase::shared_ptr operation, base::DataSourceBase::shared_ptr handle, OperationInterfacePart *ofp, const std::string &name) | |
The constructor from a SendHandle data source and an operation part. More... | |
SendHandleC (const SendHandleC &other) | |
A SendHandleC is copyable by value. More... | |
SendHandleC & | operator= (const SendHandleC &other) |
A SendHandleC is assignable. More... | |
~SendHandleC () | |
SendHandleC & | arg (base::DataSourceBase::shared_ptr a) |
Add a datasource argument to the SendHandle. More... | |
template<class ArgT > | |
SendHandleC & | arg (ArgT &a) |
Add an argument by reference to the OperationCaller. More... | |
SendStatus | collect () |
Collect the contained method. More... | |
SendStatus | collectIfDone () |
Collect the contained method. More... | |
void | check () |
Checks if this handle is ready for collecting, will throw if not so. More... | |
bool | ready () const |
Returns true if this handle is ready for execution. More... | |
void | setAutoCollect (bool on_off) |
When set to 'on', the destruction of this SendHandleC will cause a call to collect() before all data in data sources is destroyed. More... | |
base::DataSourceBase::shared_ptr | getSendHandleDataSource () |
Get the contained data source for send handle. More... | |
OperationInterfacePart * | getOrp () |
Get the contained OperationInterfacePart for SendHandle. More... | |
A template-less SendHandle manager.
It is created using a SendHandle data source, obtained from a OperationFactoryPart::produceSend(), the part itself and any arguments that must be provided to collect the results.
It is used by OperationCallerC to pass on responsibility to collect results to a separate object.
Definition at line 61 of file SendHandleC.hpp.
RTT::internal::SendHandleC::SendHandleC | ( | ) |
The default constructor.
Make a copy from another SendHandleC object in order to make it usable.
Referenced by RTT::SendHandleC::D::~D().
RTT::internal::SendHandleC::SendHandleC | ( | base::DataSourceBase::shared_ptr | operation, |
base::DataSourceBase::shared_ptr | handle, | ||
OperationInterfacePart * | ofp, | ||
const std::string & | name | ||
) |
The constructor from a SendHandle data source and an operation part.
The SendHandle is obtained after a send.
RTT::internal::SendHandleC::SendHandleC | ( | const SendHandleC & | other | ) |
A SendHandleC is copyable by value.
RTT::internal::SendHandleC::~SendHandleC | ( | ) |
Referenced by RTT::SendHandleC::D::~D().
SendHandleC& RTT::internal::SendHandleC::arg | ( | base::DataSourceBase::shared_ptr | a | ) |
Add a datasource argument to the SendHandle.
a | A DataSource which contents are filled in in case of collect() or collectIfDone() |
Referenced by RTT_corba_CSendHandle_i::RTT_corba_CSendHandle_i(), and RTT::SendHandleC::D::~D().
|
inline |
Add an argument by reference to the OperationCaller.
a | A value of which the reference is used and re-read each time the method is called. Thus if the contents of the source of a changes, call() will use the new contents. |
Definition at line 115 of file SendHandleC.hpp.
void RTT::internal::SendHandleC::check | ( | ) |
Checks if this handle is ready for collecting, will throw if not so.
Otherwise, does nothing.
Referenced by RTT::SendHandleC::D::~D().
SendStatus RTT::internal::SendHandleC::collect | ( | ) |
Collect the contained method.
Referenced by RTT_corba_CSendHandle_i::collect(), RTT::internal::RemoteOperationCallerImpl< OperationCallerT >::collect_impl(), and RTT::SendHandleC::D::~D().
SendStatus RTT::internal::SendHandleC::collectIfDone | ( | ) |
Collect the contained method.
Referenced by RTT_corba_CSendHandle_i::checkStatus(), RTT_corba_CSendHandle_i::collectIfDone(), RTT::internal::RemoteOperationCallerImpl< OperationCallerT >::collectIfDone_impl(), RTT_corba_CSendHandle_i::ret(), RTT::internal::RemoteOperationCallerImpl< OperationCallerT >::ret_impl(), and RTT::SendHandleC::D::~D().
OperationInterfacePart* RTT::internal::SendHandleC::getOrp | ( | ) |
Get the contained OperationInterfacePart for SendHandle.
Referenced by RTT::SendHandleC::D::~D().
base::DataSourceBase::shared_ptr RTT::internal::SendHandleC::getSendHandleDataSource | ( | ) |
Get the contained data source for send handle.
Referenced by RTT::SendHandleC::D::~D().
SendHandleC& RTT::internal::SendHandleC::operator= | ( | const SendHandleC & | other | ) |
A SendHandleC is assignable.
Referenced by RTT::SendHandleC::D::~D().
bool RTT::internal::SendHandleC::ready | ( | ) | const |
Returns true if this handle is ready for execution.
Referenced by RTT_corba_CSendHandle_i::RTT_corba_CSendHandle_i(), and RTT::SendHandleC::D::~D().
void RTT::internal::SendHandleC::setAutoCollect | ( | bool | on_off | ) |
When set to 'on', the destruction of this SendHandleC will cause a call to collect() before all data in data sources is destroyed.
This is required for in-process operation calls, since destruction of the data sources would lead to memory corruption of the operation's arguments. When set to 'off', no such collection is done, which is useful in remote/inter-process communication, in which the data lives in a copy in the other process anyway. Since RTT uses this same class for both situations, we need a flag to distinguish.
Defaults to 'on', which is the safe default if unspecified.
Referenced by RTT_corba_COperationInterface_i::callOperation(), RTT::internal::RemoteOperationCaller< OperationCallerT >::RemoteOperationCaller(), and RTT::SendHandleC::D::~D().