Orocos Real-Time Toolkit
2.9.0
|
A OperationCaller implementation which executes a remote function which is encapsulated in a OperationCallerC and SendHandleC object. More...
#include <rtt/internal/RemoteOperationCaller.hpp>
Public Types | |
typedef OperationCallerT | Signature |
typedef boost::function_traits< OperationCallerT >::result_type | result_type |
typedef boost::shared_ptr< OperationCallerBase< OperationCallerT > > | shared_ptr |
typedef boost::shared_ptr< CollectBase< OperationCallerT > > | shared_ptr |
Public Member Functions | |
RemoteOperationCallerImpl () | |
The defaults are reset by the constructor. More... | |
RemoteOperationCallerImpl (SendHandleC handle) | |
Create from a sendhandle. More... | |
virtual void | executeAndDispose () |
Execute functionality and free this object. More... | |
virtual bool | isError () const |
virtual void | dispose () |
Just free this object without executing it. More... | |
template<class Xignored > | |
result_type | call_impl () |
Call this operator if the RemoteOperationCaller takes no arguments. More... | |
template<class T1 > | |
result_type | call_impl (T1 a1) |
template<class T1 , class T2 > | |
result_type | call_impl (T1 a1, T2 a2) |
template<class T1 , class T2 , class T3 > | |
result_type | call_impl (T1 a1, T2 a2, T3 a3) |
template<class T1 , class T2 , class T3 , class T4 > | |
result_type | call_impl (T1 a1, T2 a2, T3 a3, T4 a4) |
template<class T1 , class T2 , class T3 , class T4 , class T5 , class T6 > | |
result_type | call_impl (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6) |
template<class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 > | |
result_type | call_impl (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7) |
template<class T1 , class T2 , class T3 , class T4 , class T5 > | |
result_type | call_impl (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5) |
SendHandle< Signature > | send_impl () |
template<class T1 > | |
SendHandle< Signature > | send_impl (T1 a1) |
template<class T1 , class T2 > | |
SendHandle< Signature > | send_impl (T1 a1, T2 a2) |
template<class T1 , class T2 , class T3 > | |
SendHandle< Signature > | send_impl (T1 a1, T2 a2, T3 a3) |
template<class T1 , class T2 , class T3 , class T4 > | |
SendHandle< Signature > | send_impl (T1 a1, T2 a2, T3 a3, T4 a4) |
template<class T1 , class T2 , class T3 , class T4 , class T5 > | |
SendHandle< Signature > | send_impl (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5) |
template<class T1 , class T2 , class T3 , class T4 , class T5 , class T6 > | |
SendHandle< Signature > | send_impl (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6) |
template<class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 > | |
SendHandle< Signature > | send_impl (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7) |
SendStatus | collectIfDone_impl () |
template<class T1 > | |
SendStatus | collectIfDone_impl (T1 &a1) |
template<class T1 , class T2 > | |
SendStatus | collectIfDone_impl (T1 &a1, T2 &a2) |
template<class T1 , class T2 , class T3 > | |
SendStatus | collectIfDone_impl (T1 &a1, T2 &a2, T3 &a3) |
template<class T1 , class T2 , class T3 , class T4 > | |
SendStatus | collectIfDone_impl (T1 &a1, T2 &a2, T3 &a3, T4 &a4) |
template<class T1 , class T2 , class T3 , class T4 , class T5 , class T6 > | |
SendStatus | collectIfDone_impl (T1 &a1, T2 &a2, T3 &a3, T4 &a4, T5 &a5, T6 &a6) |
template<class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 > | |
SendStatus | collectIfDone_impl (T1 &a1, T2 &a2, T3 &a3, T4 &a4, T5 &a5, T6 &a6, T7 &a7) |
template<class T1 , class T2 , class T3 , class T4 , class T5 > | |
SendStatus | collectIfDone_impl (T1 &a1, T2 &a2, T3 &a3, T4 &a4, T5 &a5) |
SendStatus | collect_impl () |
template<class T1 > | |
SendStatus | collect_impl (T1 &a1) |
template<class T1 , class T2 > | |
SendStatus | collect_impl (T1 &a1, T2 &a2) |
template<class T1 , class T2 , class T3 > | |
SendStatus | collect_impl (T1 &a1, T2 &a2, T3 &a3) |
template<class T1 , class T2 , class T3 , class T4 > | |
SendStatus | collect_impl (T1 &a1, T2 &a2, T3 &a3, T4 &a4) |
template<class T1 , class T2 , class T3 , class T4 , class T5 > | |
SendStatus | collect_impl (T1 &a1, T2 &a2, T3 &a3, T4 &a4, T5 &a5) |
result_type | ret_impl () |
template<class T1 > | |
result_type | ret_impl (T1 a1) |
This function has the same signature of call() and returns the stored return value, and tries to return all arguments. More... | |
template<class T1 , class T2 > | |
result_type | ret_impl (T1 a1, T2 a2) |
template<class T1 , class T2 , class T3 > | |
result_type | ret_impl (T1 a1, T2 a2, T3 a3) |
template<class T1 , class T2 , class T3 , class T4 > | |
result_type | ret_impl (T1 a1, T2 a2, T3 a3, T4 a4) |
template<class T1 , class T2 , class T3 , class T4 , class T5 , class T6 > | |
result_type | ret_impl (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6) |
template<class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 > | |
result_type | ret_impl (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7) |
template<class T1 , class T2 , class T3 , class T4 , class T5 > | |
result_type | ret_impl (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5) |
virtual OperationCallerBase< OperationCallerT > * | cloneI (ExecutionEngine *caller) const =0 |
Creates a new clone of this method using operator new(). More... | |
virtual bool | ready () const =0 |
Available such that implementations have a way to expose their ready-ness, ie being able to do the call. More... | |
virtual void | setOwner (ExecutionEngine *ee) |
Set the ExecutionEngine of the task which owns this method. More... | |
virtual void | setCaller (ExecutionEngine *ee) |
Sets the caller's engine of this operation. More... | |
bool | setThread (ExecutionThread et, ExecutionEngine *executor) |
Sets the Thread execution policy of this object. More... | |
ExecutionThread | getThread () const |
void | reportError () |
Executed when the operation execution resulted in a C++ exception. More... | |
bool | isSend () |
Helpful function to tell us if this operations is to be sent or not. More... | |
ExecutionEngine * | getMessageProcessor () const |
Protected Attributes | |
OperationCallerC | mmeth |
SendHandleC | mhandle |
DataSourceStorage< OperationCallerT > | sendargs |
DataSourceStorage< typename CollectType< OperationCallerT >::type > | collectargs |
ExecutionEngine * | myengine |
ExecutionEngine * | caller |
ExecutionThread | met |
A OperationCaller implementation which executes a remote function which is encapsulated in a OperationCallerC and SendHandleC object.
Used as implementation class for RemoteOperationCaller.
OperationCallerT | The function signature of the method. For example, bool( int, Frame, double) |
Definition at line 71 of file RemoteOperationCaller.hpp.
typedef boost::function_traits<OperationCallerT>::result_type RTT::internal::RemoteOperationCallerImpl< OperationCallerT >::result_type |
Definition at line 82 of file RemoteOperationCaller.hpp.
|
inherited |
Definition at line 60 of file OperationCallerBase.hpp.
|
inherited |
Definition at line 73 of file CollectBase.hpp.
typedef OperationCallerT RTT::internal::RemoteOperationCallerImpl< OperationCallerT >::Signature |
Definition at line 81 of file RemoteOperationCaller.hpp.
|
inline |
The defaults are reset by the constructor.
Definition at line 87 of file RemoteOperationCaller.hpp.
|
inline |
Create from a sendhandle.
Definition at line 94 of file RemoteOperationCaller.hpp.
|
inline |
Call this operator if the RemoteOperationCaller takes no arguments.
Definition at line 108 of file RemoteOperationCaller.hpp.
References RTT::internal::OperationCallerC::call().
|
inline |
Definition at line 114 of file RemoteOperationCaller.hpp.
References RTT::internal::OperationCallerC::call().
|
inline |
Definition at line 121 of file RemoteOperationCaller.hpp.
References RTT::internal::OperationCallerC::call().
|
inline |
Definition at line 128 of file RemoteOperationCaller.hpp.
References RTT::internal::OperationCallerC::call().
|
inline |
Definition at line 135 of file RemoteOperationCaller.hpp.
References RTT::internal::OperationCallerC::call().
|
inline |
Definition at line 142 of file RemoteOperationCaller.hpp.
References RTT::internal::OperationCallerC::call().
|
inline |
Definition at line 149 of file RemoteOperationCaller.hpp.
References RTT::internal::OperationCallerC::call().
|
inline |
Definition at line 156 of file RemoteOperationCaller.hpp.
References RTT::internal::OperationCallerC::call().
|
pure virtualinherited |
Creates a new clone of this method using operator new().
caller | The ExecutionEngine of the task that wishes to call this method. |
|
inline |
Definition at line 287 of file RemoteOperationCaller.hpp.
References RTT::internal::SendHandleC::collect().
|
inline |
Definition at line 291 of file RemoteOperationCaller.hpp.
References RTT::internal::SendHandleC::collect().
|
inline |
Definition at line 297 of file RemoteOperationCaller.hpp.
References RTT::internal::SendHandleC::collect().
|
inline |
Definition at line 303 of file RemoteOperationCaller.hpp.
References RTT::internal::SendHandleC::collect().
|
inline |
Definition at line 309 of file RemoteOperationCaller.hpp.
References RTT::internal::SendHandleC::collect().
|
inline |
Definition at line 315 of file RemoteOperationCaller.hpp.
References RTT::internal::SendHandleC::collect().
|
inline |
Definition at line 217 of file RemoteOperationCaller.hpp.
References RTT::internal::SendHandleC::collectIfDone(), RTT::SendNotReady, and RTT::SendSuccess.
|
inline |
Definition at line 225 of file RemoteOperationCaller.hpp.
References RTT::internal::SendHandleC::collectIfDone(), RTT::SendNotReady, and RTT::SendSuccess.
|
inline |
Definition at line 234 of file RemoteOperationCaller.hpp.
References RTT::internal::SendHandleC::collectIfDone(), RTT::SendNotReady, and RTT::SendSuccess.
|
inline |
Definition at line 243 of file RemoteOperationCaller.hpp.
References RTT::internal::SendHandleC::collectIfDone(), RTT::SendNotReady, and RTT::SendSuccess.
|
inline |
Definition at line 252 of file RemoteOperationCaller.hpp.
References RTT::internal::SendHandleC::collectIfDone(), RTT::SendNotReady, and RTT::SendSuccess.
|
inline |
Definition at line 261 of file RemoteOperationCaller.hpp.
References RTT::internal::SendHandleC::collectIfDone(), RTT::SendNotReady, and RTT::SendSuccess.
|
inline |
Definition at line 270 of file RemoteOperationCaller.hpp.
References RTT::internal::SendHandleC::collectIfDone(), RTT::SendNotReady, and RTT::SendSuccess.
|
inline |
Definition at line 279 of file RemoteOperationCaller.hpp.
References RTT::internal::SendHandleC::collectIfDone(), RTT::SendNotReady, and RTT::SendSuccess.
|
inlinevirtual |
Just free this object without executing it.
Implements RTT::base::DisposableInterface.
Definition at line 100 of file RemoteOperationCaller.hpp.
|
inlinevirtual |
Execute functionality and free this object.
You may no longer use this object after calling this method.
Implements RTT::base::DisposableInterface.
Definition at line 98 of file RemoteOperationCaller.hpp.
|
inherited |
Definition at line 42 of file OperationCallerInterface.cpp.
References RTT::internal::GlobalEngine::Instance(), RTT::base::OperationCallerInterface::met, RTT::base::OperationCallerInterface::myengine, and RTT::OwnThread.
Referenced by RTT::internal::LocalOperationCallerImpl< FunctionT >::do_send().
|
inlineinherited |
Definition at line 67 of file OperationCallerInterface.hpp.
|
inlinevirtual |
Definition at line 99 of file RemoteOperationCaller.hpp.
|
inherited |
Helpful function to tell us if this operations is to be sent or not.
Sending is only required if the operation is OwnThread and in a different thread than the caller.
Definition at line 34 of file OperationCallerInterface.cpp.
References RTT::ClientThread, RTT::ExecutionEngine::isSelf(), RTT::base::OperationCallerInterface::met, and RTT::base::OperationCallerInterface::myengine.
Referenced by RTT::internal::LocalOperationCallerImpl< FunctionT >::call_impl().
|
pure virtualinherited |
Available such that implementations have a way to expose their ready-ness, ie being able to do the call.
Implemented in RTT::internal::LocalOperationCallerImpl< FunctionT >.
|
inherited |
Executed when the operation execution resulted in a C++ exception.
Must report the error to the ExecutionEngine of the owner of this operation.
Definition at line 52 of file OperationCallerInterface.cpp.
References RTT::base::OperationCallerInterface::myengine, and RTT::ExecutionEngine::setExceptionTask().
Referenced by RTT::internal::FusedMCallDataSource< Signature >::evaluate(), and RTT::internal::LocalOperationCallerImpl< FunctionT >::executeAndDispose().
|
inline |
Definition at line 320 of file RemoteOperationCaller.hpp.
|
inline |
This function has the same signature of call() and returns the stored return value, and tries to return all arguments.
Definition at line 331 of file RemoteOperationCaller.hpp.
References RTT::internal::SendHandleC::collectIfDone().
|
inline |
Definition at line 339 of file RemoteOperationCaller.hpp.
References RTT::internal::SendHandleC::collectIfDone().
|
inline |
Definition at line 347 of file RemoteOperationCaller.hpp.
References RTT::internal::SendHandleC::collectIfDone().
|
inline |
Definition at line 355 of file RemoteOperationCaller.hpp.
References RTT::internal::SendHandleC::collectIfDone().
|
inline |
Definition at line 363 of file RemoteOperationCaller.hpp.
References RTT::internal::SendHandleC::collectIfDone().
|
inline |
Definition at line 371 of file RemoteOperationCaller.hpp.
References RTT::internal::SendHandleC::collectIfDone().
|
inline |
Definition at line 379 of file RemoteOperationCaller.hpp.
References RTT::internal::SendHandleC::collectIfDone().
|
inline |
Definition at line 162 of file RemoteOperationCaller.hpp.
References RTT::internal::RemoteOperationCallerImpl< OperationCallerT >::mhandle, and RTT::internal::OperationCallerC::send().
|
inline |
Definition at line 169 of file RemoteOperationCaller.hpp.
References RTT::internal::RemoteOperationCallerImpl< OperationCallerT >::mhandle, and RTT::internal::OperationCallerC::send().
|
inline |
Definition at line 176 of file RemoteOperationCaller.hpp.
References RTT::internal::RemoteOperationCallerImpl< OperationCallerT >::mhandle, and RTT::internal::OperationCallerC::send().
|
inline |
Definition at line 183 of file RemoteOperationCaller.hpp.
References RTT::internal::RemoteOperationCallerImpl< OperationCallerT >::mhandle, and RTT::internal::OperationCallerC::send().
|
inline |
Definition at line 190 of file RemoteOperationCaller.hpp.
References RTT::internal::RemoteOperationCallerImpl< OperationCallerT >::mhandle, and RTT::internal::OperationCallerC::send().
|
inline |
Definition at line 197 of file RemoteOperationCaller.hpp.
References RTT::internal::RemoteOperationCallerImpl< OperationCallerT >::mhandle, and RTT::internal::OperationCallerC::send().
|
inline |
Definition at line 204 of file RemoteOperationCaller.hpp.
References RTT::internal::RemoteOperationCallerImpl< OperationCallerT >::mhandle, and RTT::internal::OperationCallerC::send().
|
inline |
Definition at line 211 of file RemoteOperationCaller.hpp.
References RTT::internal::RemoteOperationCallerImpl< OperationCallerT >::mhandle, and RTT::internal::OperationCallerC::send().
|
virtualinherited |
Sets the caller's engine of this operation.
This object will be used to test if asynchronous messaging is required.
ee | The ExecutionEngine of the component that is calling this operation. |
Definition at line 24 of file OperationCallerInterface.cpp.
References RTT::base::OperationCallerInterface::caller.
Referenced by RTT::internal::LocalOperationCaller< bool(std::string) >::LocalOperationCaller(), RTT::internal::RemoteOperationCaller< OperationCallerT >::RemoteOperationCaller(), and RTT::internal::RemoteOperationCaller< OperationCallerT >::setCaller().
|
virtualinherited |
Set the ExecutionEngine of the task which owns this method.
ee | The ExecutionEngine of the component that owns this operation. |
Definition at line 20 of file OperationCallerInterface.cpp.
References RTT::base::OperationCallerInterface::myengine.
Referenced by RTT::internal::LocalOperationCaller< bool(std::string) >::LocalOperationCaller(), and RTT::base::OperationCallerInterface::setThread().
|
inherited |
Sets the Thread execution policy of this object.
et | OwnThread or ClientThread. |
executor | The engine of the component owning this operation. In case it is not yet owned by a component, executor may be null. |
Definition at line 28 of file OperationCallerInterface.cpp.
References RTT::base::OperationCallerInterface::met, and RTT::base::OperationCallerInterface::setOwner().
Referenced by RTT::internal::LocalOperationCaller< bool(std::string) >::LocalOperationCaller(), and RTT::Service::setOperationThread().
|
protectedinherited |
Definition at line 87 of file OperationCallerInterface.hpp.
Referenced by RTT::internal::LocalOperationCallerImpl< FunctionT >::checkCaller(), RTT::internal::RemoteOperationCaller< OperationCallerT >::cloneI(), RTT::internal::LocalOperationCallerImpl< FunctionT >::collect_impl(), RTT::internal::LocalOperationCallerImpl< FunctionT >::executeAndDispose(), RTT::internal::RemoteOperationCaller< OperationCallerT >::RemoteOperationCaller(), RTT::base::OperationCallerInterface::setCaller(), and RTT::base::OperationCallerBase< FunctionT >::~OperationCallerBase().
|
protected |
Definition at line 79 of file RemoteOperationCaller.hpp.
Referenced by RTT::internal::RemoteOperationCaller< OperationCallerT >::RemoteOperationCaller().
|
protectedinherited |
Definition at line 88 of file OperationCallerInterface.hpp.
Referenced by RTT::base::OperationCallerInterface::getMessageProcessor(), RTT::base::OperationCallerInterface::isSend(), and RTT::base::OperationCallerInterface::setThread().
|
protected |
Definition at line 77 of file RemoteOperationCaller.hpp.
Referenced by RTT::internal::RemoteOperationCaller< OperationCallerT >::RemoteOperationCaller(), and RTT::internal::RemoteOperationCallerImpl< OperationCallerT >::send_impl().
|
protected |
Definition at line 76 of file RemoteOperationCaller.hpp.
Referenced by RTT::internal::RemoteOperationCaller< OperationCallerT >::cloneI(), RTT::internal::RemoteOperationCaller< OperationCallerT >::ready(), RTT::internal::RemoteOperationCaller< OperationCallerT >::RemoteOperationCaller(), and RTT::internal::RemoteOperationCaller< OperationCallerT >::setCaller().
|
protectedinherited |
|
protected |
Definition at line 78 of file RemoteOperationCaller.hpp.
Referenced by RTT::internal::RemoteOperationCaller< OperationCallerT >::RemoteOperationCaller(), and RTT::internal::RemoteOperationCaller< OperationCallerT >::setCaller().