Orocos Real-Time Toolkit  2.5.0
Public Types | Public Member Functions | Protected Attributes
RTT::internal::RemoteOperationCallerImpl< OperationCallerT > Class Template Reference

A OperationCaller implementation which executes a remote function which is encapsulated in a OperationCallerC and SendHandleC object. More...

#include <rtt/internal/RemoteOperationCaller.hpp>

Inheritance diagram for RTT::internal::RemoteOperationCallerImpl< OperationCallerT >:
RTT::base::OperationCallerBase< OperationCallerT > RTT::internal::CollectBase< OperationCallerT > RTT::internal::InvokerBase< OperationCallerT > RTT::base::OperationCallerInterface RTT::base::DisposableInterface

List of all members.

Public Types

typedef OperationCallerT Signature
typedef boost::function_traits
< OperationCallerT >
::result_type 
result_type
typedef boost::shared_ptr
< OperationCallerBase
< OperationCallerT > > 
shared_ptr
 Use this type for shared pointer storage of an OperationCallerInterface object.
typedef boost::shared_ptr
< CollectBase
< OperationCallerT > > 
shared_ptr

Public Member Functions

 RemoteOperationCallerImpl ()
 The defaults are reset by the constructor.
 RemoteOperationCallerImpl (SendHandleC handle)
 Create from a sendhandle.
virtual void executeAndDispose ()
 Execute functionality and free this object.
virtual void dispose ()
 Just free this object without executing it.
virtual void setExecutor (ExecutionEngine *ee)
 Set an executor which will execute this method when it is called or sent.
virtual void setCaller (ExecutionEngine *ee)
 Sets the caller's engine of this operation.
result_type call_impl ()
 Call this operator if the RemoteOperationCaller takes no arguments.
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.
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().
virtual bool ready () const =0
 Available such that implementations have a way to expose their ready-ness, ie being able to do the call.
virtual bool setThread (ExecutionThread et, ExecutionEngine *executor)=0
 Sets the Thread execution policy of this object.

Protected Attributes

OperationCallerC mmeth
SendHandleC mhandle
DataSourceStorage
< OperationCallerT > 
sendargs
DataSourceStorage< typename
CollectType< OperationCallerT >
::type > 
collectargs

Detailed Description

template<class OperationCallerT>
class RTT::internal::RemoteOperationCallerImpl< OperationCallerT >

A OperationCaller implementation which executes a remote function which is encapsulated in a OperationCallerC and SendHandleC object.

Used as implementation class for RemoteOperationCaller.

Parameters:
OperationCallerTThe function signature of the method. For example, bool( int, Frame, double)

Definition at line 71 of file RemoteOperationCaller.hpp.


Member Function Documentation

template<class OperationCallerT >
result_type RTT::internal::RemoteOperationCallerImpl< OperationCallerT >::call_impl ( ) [inline]

Call this operator if the RemoteOperationCaller takes no arguments.

Returns:
true if ready and succesfully sent.

Definition at line 113 of file RemoteOperationCaller.hpp.

References RTT::internal::OperationCallerC::call().

virtual OperationCallerBase<OperationCallerT >* RTT::base::OperationCallerBase< OperationCallerT >::cloneI ( ExecutionEngine caller) const [pure virtual, inherited]

Creates a new clone of this method using operator new().

Parameters:
callerThe ExecutionEngine of the task that wishes to call this method.
Returns:
a clone.
template<class OperationCallerT >
virtual void RTT::internal::RemoteOperationCallerImpl< OperationCallerT >::executeAndDispose ( ) [inline, virtual]

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.

template<class OperationCallerT >
virtual void RTT::internal::RemoteOperationCallerImpl< OperationCallerT >::setCaller ( ExecutionEngine ee) [inline, virtual]

Sets the caller's engine of this operation.

This object will be used to test if asynchronous messaging is required.

Parameters:
eeThe ExecutionEngine of the component that is calling this operation.

Implements RTT::base::OperationCallerInterface.

Definition at line 104 of file RemoteOperationCaller.hpp.

template<class OperationCallerT >
virtual void RTT::internal::RemoteOperationCallerImpl< OperationCallerT >::setExecutor ( ExecutionEngine ee) [inline, virtual]

Set an executor which will execute this method when it is called or sent.

If ee is set to 0, the method will be executed in the client's thread or the GlobalExecutionEngine.

Parameters:
eeThe ExecutionEngine of the component that is executing this operation.

Implements RTT::base::OperationCallerInterface.

Definition at line 101 of file RemoteOperationCaller.hpp.

virtual bool RTT::base::OperationCallerInterface::setThread ( ExecutionThread  et,
ExecutionEngine executor 
) [pure virtual, inherited]

Sets the Thread execution policy of this object.

Parameters:
etOwnThread or ClientThread.
executorThe engine of the component owning this operation. In case it is not yet owned by a component, executor may be null.
Returns:
false if it may not be modified.

Implemented in RTT::internal::LocalOperationCallerImpl< FunctionT >.

Referenced by RTT::Service::setOperationThread().


The documentation for this class was generated from the following file: