RTT::OperationCaller< SignatureT > Class Template Reference
[Task Context InterfaceOperation Interface]

#include <OperationCaller.hpp>

Inheritance diagram for RTT::OperationCaller< SignatureT >:
Inheritance graph
[legend]

List of all members.

Public Types

typedef
internal::InvokerSignature
< boost::function_traits
< Signature >::arity,
Signature, boost::shared_ptr
< base::OperationCallerBase
< Signature > > > 
Base
typedef
internal::InvokerSignature
< boost::function_traits
< Signature >::arity,
Signature, boost::shared_ptr
< base::OperationCallerBase
< Signature > > > 
Base
typedef boost::shared_ptr
< base::OperationCallerBase
< Signature > > 
OperationCallerBasePtr
typedef boost::shared_ptr
< base::OperationCallerBase
< Signature > > 
OperationCallerBasePtr
typedef boost::function_traits
< Signature >::result_type 
result_type
typedef boost::function_traits
< Signature >::result_type 
result_type
typedef SignatureT Signature
typedef SignatureT Signature
typedef boost::function_traits
< Signature
traits
typedef boost::function_traits
< Signature
traits

Public Member Functions

void disconnect ()
void disconnect ()
std::string const & getName () const
std::string const & getName () const
const OperationCallerBasePtr getOperationCallerImpl () const
const OperationCallerBasePtr getOperationCallerImpl () const
 OperationCaller (const std::string &name, ServicePtr service, ExecutionEngine *caller=0)
 OperationCaller (OperationInterfacePart *part, ExecutionEngine *caller=0)
 OperationCaller (boost::shared_ptr< base::DisposableInterface > implementation, ExecutionEngine *caller=0)
 OperationCaller (const OperationCaller &m)
 OperationCaller (std::string name, ExecutionEngine *caller=0)
 OperationCaller ()
 OperationCaller (const std::string &name, ServicePtr service, ExecutionEngine *caller=0)
 OperationCaller (OperationInterfacePart *part, ExecutionEngine *caller=0)
 OperationCaller (boost::shared_ptr< base::DisposableInterface > implementation, ExecutionEngine *caller=0)
 OperationCaller (const OperationCaller &m)
 OperationCaller (std::string name, ExecutionEngine *caller=0)
 OperationCaller ()
OperationCalleroperator= (ServicePtr service)
OperationCalleroperator= (OperationInterfacePart *part)
OperationCalleroperator= (boost::shared_ptr< base::DisposableInterface > implementation)
OperationCalleroperator= (const OperationCaller &m)
OperationCalleroperator= (ServicePtr service)
OperationCalleroperator= (OperationInterfacePart *part)
OperationCalleroperator= (boost::shared_ptr< base::DisposableInterface > implementation)
OperationCalleroperator= (const OperationCaller &m)
bool ready () const
bool ready () const
void setCaller (ExecutionEngine *caller)
void setCaller (ExecutionEngine *caller)
bool setImplementation (boost::shared_ptr< base::DisposableInterface > implementation, ExecutionEngine *caller=0)
bool setImplementation (boost::shared_ptr< base::DisposableInterface > implementation, ExecutionEngine *caller=0)
bool setImplementationPart (OperationInterfacePart *orp, ExecutionEngine *caller=0)
bool setImplementationPart (OperationInterfacePart *orp, ExecutionEngine *caller=0)
void setOperationCallerImpl (OperationCallerBasePtr new_impl) const
void setOperationCallerImpl (OperationCallerBasePtr new_impl) const
 ~OperationCaller ()
 ~OperationCaller ()

Protected Member Functions

void setupOperationCaller (OperationInterfacePart *part)
void setupOperationCaller (OperationInterfacePart *part)

Private Attributes

ExecutionEnginemcaller
std::string mname

Detailed Description

template<class SignatureT>
class RTT::OperationCaller< SignatureT >

A OperationCaller serves as a placeholder (aka 'proxy') for a remote Operation. If you want to call an operation, you need a method to do it.

The OperationCaller has the exact same signature template argument as the operation it wishes to call.

Asynchronous methods need a caller's ExecutionEngine to be able to process the completion message. In case the caller has no ExecutionEngine, the GlobalExecutionEngine is used instead.

Definition at line 74 of file install/include/rtt/OperationCaller.hpp.


Member Typedef Documentation

template<class SignatureT>
typedef internal::InvokerSignature<boost::function_traits<Signature>::arity, Signature, boost::shared_ptr< base::OperationCallerBase<Signature> > > RTT::OperationCaller< SignatureT >::Base

Definition at line 85 of file rtt/OperationCaller.hpp.

template<class SignatureT>
typedef internal::InvokerSignature<boost::function_traits<Signature>::arity, Signature, boost::shared_ptr< base::OperationCallerBase<Signature> > > RTT::OperationCaller< SignatureT >::Base

Definition at line 86 of file install/include/rtt/OperationCaller.hpp.

template<class SignatureT>
typedef boost::shared_ptr< base::OperationCallerBase<Signature> > RTT::OperationCaller< SignatureT >::OperationCallerBasePtr

Definition at line 88 of file rtt/OperationCaller.hpp.

template<class SignatureT>
typedef boost::shared_ptr< base::OperationCallerBase<Signature> > RTT::OperationCaller< SignatureT >::OperationCallerBasePtr

Definition at line 89 of file install/include/rtt/OperationCaller.hpp.

template<class SignatureT>
typedef boost::function_traits<Signature>::result_type RTT::OperationCaller< SignatureT >::result_type

Definition at line 86 of file rtt/OperationCaller.hpp.

template<class SignatureT>
typedef boost::function_traits<Signature>::result_type RTT::OperationCaller< SignatureT >::result_type

Definition at line 87 of file install/include/rtt/OperationCaller.hpp.

template<class SignatureT>
typedef SignatureT RTT::OperationCaller< SignatureT >::Signature

Definition at line 82 of file rtt/OperationCaller.hpp.

template<class SignatureT>
typedef SignatureT RTT::OperationCaller< SignatureT >::Signature

Definition at line 83 of file install/include/rtt/OperationCaller.hpp.

template<class SignatureT>
typedef boost::function_traits<Signature> RTT::OperationCaller< SignatureT >::traits

Definition at line 87 of file rtt/OperationCaller.hpp.

template<class SignatureT>
typedef boost::function_traits<Signature> RTT::OperationCaller< SignatureT >::traits

Definition at line 88 of file install/include/rtt/OperationCaller.hpp.


Constructor & Destructor Documentation

template<class SignatureT>
RTT::OperationCaller< SignatureT >::OperationCaller (  )  [inline]

Create an empty OperationCaller object. Use assignment to initialise it.

Definition at line 95 of file install/include/rtt/OperationCaller.hpp.

template<class SignatureT>
RTT::OperationCaller< SignatureT >::OperationCaller ( std::string  name,
ExecutionEngine caller = 0 
) [inline]

Create an empty OperationCaller object. Use assignment to initialise it.

Definition at line 103 of file install/include/rtt/OperationCaller.hpp.

template<class SignatureT>
RTT::OperationCaller< SignatureT >::OperationCaller ( const OperationCaller< SignatureT > &  m  )  [inline]

OperationCaller objects may be copied. A deep copy is made of the implementation object such that using this object does not interfere when using the original, m.

Parameters:
m the original

Definition at line 114 of file install/include/rtt/OperationCaller.hpp.

template<class SignatureT>
RTT::OperationCaller< SignatureT >::OperationCaller ( boost::shared_ptr< base::DisposableInterface implementation,
ExecutionEngine caller = 0 
) [inline]

Initialise a nameless OperationCaller object from a local Operation.

Parameters:
implementation The implementation of the operation which is to be used by the OperationCaller object. This object will be cloned such that the method uses its own implementation.
caller The ExecutionEngine which will be used to call us back in case of asynchronous communication. If zero, the global Engine is used.

Definition at line 150 of file install/include/rtt/OperationCaller.hpp.

template<class SignatureT>
RTT::OperationCaller< SignatureT >::OperationCaller ( OperationInterfacePart part,
ExecutionEngine caller = 0 
) [inline]

Initialise a nameless OperationCaller object from an operation factory.

Parameters:
part The OperationInterfacePart which is used by the OperationCaller object to get the implementation.
caller The ExecutionEngine which will be used to call us back in case of asynchronous communication. If zero, the global Engine is used.

Definition at line 171 of file install/include/rtt/OperationCaller.hpp.

template<class SignatureT>
RTT::OperationCaller< SignatureT >::OperationCaller ( const std::string &  name,
ServicePtr  service,
ExecutionEngine caller = 0 
) [inline]

Initialise a named OperationCaller object from a Service.

Parameters:
name The name of the operation to look for.
service The Service where the operation will be looked up.
caller The ExecutionEngine which will be used to call us back in case of asynchronous communication. If zero, the global Engine is used.

Definition at line 190 of file install/include/rtt/OperationCaller.hpp.

template<class SignatureT>
RTT::OperationCaller< SignatureT >::~OperationCaller (  )  [inline]

Clean up the OperationCaller object.

Definition at line 306 of file install/include/rtt/OperationCaller.hpp.

template<class SignatureT>
RTT::OperationCaller< SignatureT >::OperationCaller (  )  [inline]

Create an empty OperationCaller object. Use assignment to initialise it.

Definition at line 94 of file rtt/OperationCaller.hpp.

template<class SignatureT>
RTT::OperationCaller< SignatureT >::OperationCaller ( std::string  name,
ExecutionEngine caller = 0 
) [inline]

Create an empty OperationCaller object. Use assignment to initialise it.

Definition at line 102 of file rtt/OperationCaller.hpp.

template<class SignatureT>
RTT::OperationCaller< SignatureT >::OperationCaller ( const OperationCaller< SignatureT > &  m  )  [inline]

OperationCaller objects may be copied. A deep copy is made of the implementation object such that using this object does not interfere when using the original, m.

Parameters:
m the original

Definition at line 113 of file rtt/OperationCaller.hpp.

template<class SignatureT>
RTT::OperationCaller< SignatureT >::OperationCaller ( boost::shared_ptr< base::DisposableInterface implementation,
ExecutionEngine caller = 0 
) [inline]

Initialise a nameless OperationCaller object from a local Operation.

Parameters:
implementation The implementation of the operation which is to be used by the OperationCaller object. This object will be cloned such that the method uses its own implementation.
caller The ExecutionEngine which will be used to call us back in case of asynchronous communication. If zero, the global Engine is used.

Definition at line 149 of file rtt/OperationCaller.hpp.

template<class SignatureT>
RTT::OperationCaller< SignatureT >::OperationCaller ( OperationInterfacePart part,
ExecutionEngine caller = 0 
) [inline]

Initialise a nameless OperationCaller object from an operation factory.

Parameters:
part The OperationInterfacePart which is used by the OperationCaller object to get the implementation.
caller The ExecutionEngine which will be used to call us back in case of asynchronous communication. If zero, the global Engine is used.

Definition at line 170 of file rtt/OperationCaller.hpp.

template<class SignatureT>
RTT::OperationCaller< SignatureT >::OperationCaller ( const std::string &  name,
ServicePtr  service,
ExecutionEngine caller = 0 
) [inline]

Initialise a named OperationCaller object from a Service.

Parameters:
name The name of the operation to look for.
service The Service where the operation will be looked up.
caller The ExecutionEngine which will be used to call us back in case of asynchronous communication. If zero, the global Engine is used.

Definition at line 189 of file rtt/OperationCaller.hpp.

template<class SignatureT>
RTT::OperationCaller< SignatureT >::~OperationCaller (  )  [inline]

Clean up the OperationCaller object.

Definition at line 305 of file rtt/OperationCaller.hpp.


Member Function Documentation

template<class SignatureT>
void RTT::OperationCaller< SignatureT >::disconnect (  )  [inline, virtual]

Disconnects this caller from the operation it was connected to. If this OperationCaller had a name, the name is still kept.

Postcondition:
this->ready() == false

Implements RTT::base::OperationCallerBaseInvoker.

Definition at line 362 of file rtt/OperationCaller.hpp.

template<class SignatureT>
void RTT::OperationCaller< SignatureT >::disconnect (  )  [inline, virtual]

Disconnects this caller from the operation it was connected to. If this OperationCaller had a name, the name is still kept.

Postcondition:
this->ready() == false

Implements RTT::base::OperationCallerBaseInvoker.

Definition at line 363 of file install/include/rtt/OperationCaller.hpp.

template<class SignatureT>
std::string const& RTT::OperationCaller< SignatureT >::getName ( void   )  const [inline, virtual]

Get the name of this method.

Implements RTT::base::OperationCallerBaseInvoker.

Definition at line 322 of file rtt/OperationCaller.hpp.

template<class SignatureT>
std::string const& RTT::OperationCaller< SignatureT >::getName (  )  const [inline, virtual]

Get the name of this method.

Implements RTT::base::OperationCallerBaseInvoker.

Definition at line 323 of file install/include/rtt/OperationCaller.hpp.

template<class SignatureT>
const OperationCallerBasePtr RTT::OperationCaller< SignatureT >::getOperationCallerImpl (  )  const [inline]

Returns the internal implementation of the OperationCaller object.

Definition at line 345 of file rtt/OperationCaller.hpp.

template<class SignatureT>
const OperationCallerBasePtr RTT::OperationCaller< SignatureT >::getOperationCallerImpl (  )  const [inline]

Returns the internal implementation of the OperationCaller object.

Definition at line 346 of file install/include/rtt/OperationCaller.hpp.

template<class SignatureT>
OperationCaller& RTT::OperationCaller< SignatureT >::operator= ( ServicePtr  service  )  [inline]

Named OperationCaller objects may be looked up in a Service.

Parameters:
service The Service where the operation will be looked up.
Returns:
*this

Definition at line 246 of file rtt/OperationCaller.hpp.

template<class SignatureT>
OperationCaller& RTT::OperationCaller< SignatureT >::operator= ( OperationInterfacePart part  )  [inline]

OperationCaller objects may be assigned to a part responsible for production of an implementation. This variant is used when a only a remote implementation is available.

Parameters:
part The part used by the OperationCaller to produce an implementation.
Returns:
*this

Definition at line 226 of file rtt/OperationCaller.hpp.

template<class SignatureT>
OperationCaller& RTT::OperationCaller< SignatureT >::operator= ( boost::shared_ptr< base::DisposableInterface implementation  )  [inline]

OperationCaller objects may be assigned to an implementation. This variant is used when a local implementation is available.

Parameters:
implementation the implementation.
Returns:
*this

Definition at line 208 of file rtt/OperationCaller.hpp.

template<class SignatureT>
OperationCaller& RTT::OperationCaller< SignatureT >::operator= ( const OperationCaller< SignatureT > &  m  )  [inline]

OperationCaller objects may be assigned. A deep copy is made of the implementation object such that using this object does not interfere when using the original, m.

Parameters:
m the original
Returns:
*this

Definition at line 127 of file rtt/OperationCaller.hpp.

template<class SignatureT>
OperationCaller& RTT::OperationCaller< SignatureT >::operator= ( ServicePtr  service  )  [inline]

Named OperationCaller objects may be looked up in a Service.

Parameters:
service The Service where the operation will be looked up.
Returns:
*this

Definition at line 247 of file install/include/rtt/OperationCaller.hpp.

template<class SignatureT>
OperationCaller& RTT::OperationCaller< SignatureT >::operator= ( OperationInterfacePart part  )  [inline]

OperationCaller objects may be assigned to a part responsible for production of an implementation. This variant is used when a only a remote implementation is available.

Parameters:
part The part used by the OperationCaller to produce an implementation.
Returns:
*this

Definition at line 227 of file install/include/rtt/OperationCaller.hpp.

template<class SignatureT>
OperationCaller& RTT::OperationCaller< SignatureT >::operator= ( boost::shared_ptr< base::DisposableInterface implementation  )  [inline]

OperationCaller objects may be assigned to an implementation. This variant is used when a local implementation is available.

Parameters:
implementation the implementation.
Returns:
*this

Definition at line 209 of file install/include/rtt/OperationCaller.hpp.

template<class SignatureT>
OperationCaller& RTT::OperationCaller< SignatureT >::operator= ( const OperationCaller< SignatureT > &  m  )  [inline]

OperationCaller objects may be assigned. A deep copy is made of the implementation object such that using this object does not interfere when using the original, m.

Parameters:
m the original
Returns:
*this

Definition at line 128 of file install/include/rtt/OperationCaller.hpp.

template<class SignatureT>
bool RTT::OperationCaller< SignatureT >::ready ( void   )  const [inline, virtual]

Check if this OperationCaller is ready for execution.

Returns:
true if so.

Implements RTT::base::OperationCallerBaseInvoker.

Definition at line 314 of file rtt/OperationCaller.hpp.

template<class SignatureT>
bool RTT::OperationCaller< SignatureT >::ready (  )  const [inline, virtual]

Check if this OperationCaller is ready for execution.

Returns:
true if so.

Implements RTT::base::OperationCallerBaseInvoker.

Definition at line 315 of file install/include/rtt/OperationCaller.hpp.

template<class SignatureT>
void RTT::OperationCaller< SignatureT >::setCaller ( ExecutionEngine caller  )  [inline, virtual]

Sets the caller of this method after the implementation was set.

Parameters:
caller 

Implements RTT::base::OperationCallerBaseInvoker.

Definition at line 356 of file rtt/OperationCaller.hpp.

template<class SignatureT>
void RTT::OperationCaller< SignatureT >::setCaller ( ExecutionEngine caller  )  [inline, virtual]

Sets the caller of this method after the implementation was set.

Parameters:
caller 

Implements RTT::base::OperationCallerBaseInvoker.

Definition at line 357 of file install/include/rtt/OperationCaller.hpp.

template<class SignatureT>
bool RTT::OperationCaller< SignatureT >::setImplementation ( boost::shared_ptr< base::DisposableInterface impl,
ExecutionEngine caller = 0 
) [inline, virtual]

Sets a new implementation for this method.

Parameters:
impl An implementation object that can be upcast to the OperationCallerBase class type of this method.
caller The engine of the calling TaskContext.
Returns:
true if the impl could be upcast to a matching OperationCallerBase type, false otherwise.

Implements RTT::base::OperationCallerBaseInvoker.

Definition at line 324 of file rtt/OperationCaller.hpp.

template<class SignatureT>
bool RTT::OperationCaller< SignatureT >::setImplementation ( boost::shared_ptr< base::DisposableInterface impl,
ExecutionEngine caller = 0 
) [inline, virtual]

Sets a new implementation for this method.

Parameters:
impl An implementation object that can be upcast to the OperationCallerBase class type of this method.
caller The engine of the calling TaskContext.
Returns:
true if the impl could be upcast to a matching OperationCallerBase type, false otherwise.

Implements RTT::base::OperationCallerBaseInvoker.

Definition at line 325 of file install/include/rtt/OperationCaller.hpp.

template<class SignatureT>
bool RTT::OperationCaller< SignatureT >::setImplementationPart ( OperationInterfacePart orp,
ExecutionEngine caller = 0 
) [inline, virtual]

Sets a new implementation for this method by using a service part.

Parameters:
orp A part obtained from a service's OperationInterface.
caller The engine of the calling TaskContext.
Returns:
true if the part could produce the correct OperationCallerBase type, false otherwise.

Implements RTT::base::OperationCallerBaseInvoker.

Definition at line 333 of file rtt/OperationCaller.hpp.

template<class SignatureT>
bool RTT::OperationCaller< SignatureT >::setImplementationPart ( OperationInterfacePart orp,
ExecutionEngine caller = 0 
) [inline, virtual]

Sets a new implementation for this method by using a service part.

Parameters:
orp A part obtained from a service's OperationInterface.
caller The engine of the calling TaskContext.
Returns:
true if the part could produce the correct OperationCallerBase type, false otherwise.

Implements RTT::base::OperationCallerBaseInvoker.

Definition at line 334 of file install/include/rtt/OperationCaller.hpp.

template<class SignatureT>
void RTT::OperationCaller< SignatureT >::setOperationCallerImpl ( OperationCallerBasePtr  new_impl  )  const [inline]

Sets the internal implementation of the OperationCaller object.

Definition at line 352 of file rtt/OperationCaller.hpp.

template<class SignatureT>
void RTT::OperationCaller< SignatureT >::setOperationCallerImpl ( OperationCallerBasePtr  new_impl  )  const [inline]

Sets the internal implementation of the OperationCaller object.

Definition at line 353 of file install/include/rtt/OperationCaller.hpp.

template<class SignatureT>
void RTT::OperationCaller< SignatureT >::setupOperationCaller ( OperationInterfacePart part  )  [inline, protected]

If no local implementation of an operation could be found, this method tries it using the operationrepository factories.

Parameters:
part 

Definition at line 372 of file rtt/OperationCaller.hpp.

template<class SignatureT>
void RTT::OperationCaller< SignatureT >::setupOperationCaller ( OperationInterfacePart part  )  [inline, protected]

If no local implementation of an operation could be found, this method tries it using the operationrepository factories.

Parameters:
part 

Definition at line 373 of file install/include/rtt/OperationCaller.hpp.


Member Data Documentation

template<class SignatureT>
ExecutionEngine * RTT::OperationCaller< SignatureT >::mcaller [private]

Definition at line 81 of file install/include/rtt/OperationCaller.hpp.

template<class SignatureT>
std::string RTT::OperationCaller< SignatureT >::mname [private]

Definition at line 80 of file install/include/rtt/OperationCaller.hpp.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


rtt
Author(s): RTT Developers
autogenerated on Fri Jan 11 09:49:47 2013