Public Member Functions | List of all members
RTT::OperationInterfacePart Class Referenceabstract

#include <OperationInterfacePart.hpp>

Inheritance diagram for RTT::OperationInterfacePart:
Inheritance graph
[legend]

Public Member Functions

virtual unsigned int arity () const =0
 
virtual unsigned int collectArity () const =0
 
virtual std::string description () const =0
 
virtual std::vector< ArgumentDescriptiongetArgumentList () const =0
 
virtual const types::TypeInfogetArgumentType (unsigned int arg) const =0
 
virtual const types::TypeInfogetCollectType (unsigned int arg) const =0
 
virtual RTT_API boost::shared_ptr< base::DisposableInterfacegetLocalOperation () const
 
virtual std::string getName () const =0
 
virtual base::DataSourceBase::shared_ptr produce (const std::vector< base::DataSourceBase::shared_ptr > &args, ExecutionEngine *caller) const =0
 
virtual base::DataSourceBase::shared_ptr produceCollect (const std::vector< base::DataSourceBase::shared_ptr > &args, internal::DataSource< bool >::shared_ptr blocking) const =0
 
virtual base::DataSourceBase::shared_ptr produceHandle () const =0
 
virtual base::DataSourceBase::shared_ptr produceSend (const std::vector< base::DataSourceBase::shared_ptr > &args, ExecutionEngine *caller) const =0
 
virtual std::string resultType () const =0
 
virtual RTT_API ~OperationInterfacePart ()
 

Detailed Description

This class defines the interface for creating operation objects without using C++ templates.

The OperationInterface offers the same interface as this class, but with operation names as first argument of each function.

It is most used in conjunction with the OperationCallerC/SendHandleC classes to create objects that manage calling/sending methods and collecting results of method invocations.

A Part must be interpreted as one single operation of an OperationInterface.

This class serves as a base class for the template based classes that implement the produce and query logic for a given operation.

Definition at line 69 of file OperationInterfacePart.hpp.

Constructor & Destructor Documentation

OperationInterfacePart::~OperationInterfacePart ( )
virtual

Definition at line 49 of file OperationInterface.cpp.

Member Function Documentation

virtual unsigned int RTT::OperationInterfacePart::arity ( ) const
pure virtual
virtual unsigned int RTT::OperationInterfacePart::collectArity ( ) const
pure virtual
virtual std::string RTT::OperationInterfacePart::description ( ) const
pure virtual
virtual std::vector<ArgumentDescription> RTT::OperationInterfacePart::getArgumentList ( ) const
pure virtual
virtual const types::TypeInfo* RTT::OperationInterfacePart::getArgumentType ( unsigned int  arg) const
pure virtual

Returns the type information of the n'th argument, with argument zero being the return value.

Parameters
arg0: get return value type, 1..arity(): get n'th argument type.
Returns
A TypeInfo Object or null if
  • is out of range

Implemented in RTT::internal::OperationInterfacePartFusedDS< Signature, ObjT >, RTT::internal::SynchronousOperationInterfacePartFused< Signature >, RTT::internal::OperationInterfacePartFused< Signature >, RTT::internal::OperationInterfacePartFused< bool(std::string)>, RTT::corba::CorbaOperationCallerFactory, and RTT::scripting::FunctionFactory.

virtual const types::TypeInfo* RTT::OperationInterfacePart::getCollectType ( unsigned int  arg) const
pure virtual

Returns the type information of the n'th collectable argument. The numbering of arg starts from 1.

Parameters
arg1..collectArity(): get n'th argument type.
Returns
A TypeInfo Object or null if
  • is out of range

Implemented in RTT::internal::OperationInterfacePartFusedDS< Signature, ObjT >, RTT::internal::SynchronousOperationInterfacePartFused< Signature >, RTT::internal::OperationInterfacePartFused< Signature >, RTT::internal::OperationInterfacePartFused< bool(std::string)>, RTT::corba::CorbaOperationCallerFactory, and RTT::scripting::FunctionFactory.

boost::shared_ptr< base::DisposableInterface > OperationInterfacePart::getLocalOperation ( ) const
virtual

Returns any local operation associated with this operation.

Returns
null if no such operation exists, the operation's implementation otherwise.

Reimplemented in RTT::internal::OperationInterfacePartFusedDS< Signature, ObjT >, RTT::internal::SynchronousOperationInterfacePartFused< Signature >, RTT::internal::OperationInterfacePartFused< Signature >, and RTT::internal::OperationInterfacePartFused< bool(std::string)>.

Definition at line 53 of file OperationInterface.cpp.

virtual std::string RTT::OperationInterfacePart::getName ( ) const
pure virtual
virtual base::DataSourceBase::shared_ptr RTT::OperationInterfacePart::produce ( const std::vector< base::DataSourceBase::shared_ptr > &  args,
ExecutionEngine caller 
) const
pure virtual

Create a DataSource for a given callable operation.

Parameters
argsThe arguments for the target object's function. The number of arguments must be identical to this->arity()
callerThe Engine that will receive notifications when the method has been executed, in case it runs in the owner's thread. Normally, this is the engine of the caller's TaskContext.
Returns
a DataSource which will return the result of this operation.
Exceptions
wrong_number_of_args_exception
wrong_types_of_args_exception
name_not_found_exception

Implemented in RTT::internal::SynchronousOperationInterfacePartFused< Signature >, RTT::internal::OperationInterfacePartFused< Signature >, RTT::internal::OperationInterfacePartFused< bool(std::string)>, RTT::corba::CorbaOperationCallerFactory, and RTT::scripting::FunctionFactory.

virtual base::DataSourceBase::shared_ptr RTT::OperationInterfacePart::produceCollect ( const std::vector< base::DataSourceBase::shared_ptr > &  args,
internal::DataSource< bool >::shared_ptr  blocking 
) const
pure virtual

Create a DataSource for collecting the results of a Send.

Parameters
argsA vector of data sources of which the first element contains a properly initialised sendhandle and the remainder of the elements contains datasources for collecting the return value and reference arguments. The total number of items in args must be collectArity() + 1
blockingSet to true to do a blocking collect, false for a polling version.
Returns
A DataSource which collects the results when evaluated and which returns the SendStatus.
Exceptions
wrong_number_of_args_exception
wrong_types_of_args_exception
name_not_found_exception
no_asynchronous_operation_exception

Implemented in RTT::internal::OperationInterfacePartFusedDS< Signature, ObjT >, RTT::internal::SynchronousOperationInterfacePartFused< Signature >, RTT::internal::OperationInterfacePartFused< Signature >, RTT::internal::OperationInterfacePartFused< bool(std::string)>, RTT::corba::CorbaOperationCallerFactory, and RTT::scripting::FunctionFactory.

virtual base::DataSourceBase::shared_ptr RTT::OperationInterfacePart::produceHandle ( ) const
pure virtual
virtual base::DataSourceBase::shared_ptr RTT::OperationInterfacePart::produceSend ( const std::vector< base::DataSourceBase::shared_ptr > &  args,
ExecutionEngine caller 
) const
pure virtual

Create a DataSource for a given send operation.

Parameters
argsThe arguments for the target object's function. The number of arguments must be identical to this->arity()
callerThe Engine that will receive notifications when the method has been executed. Normally, this is the engine of the caller's TaskContext.
Returns
a DataSource which contains the SendHandle of this operation.
See also
produceHandle
Exceptions
wrong_number_of_args_exception
wrong_types_of_args_exception
name_not_found_exception
no_asynchronous_operation_exception

Implemented in RTT::internal::OperationInterfacePartFusedDS< Signature, ObjT >, RTT::internal::SynchronousOperationInterfacePartFused< Signature >, RTT::internal::OperationInterfacePartFused< Signature >, RTT::internal::OperationInterfacePartFused< bool(std::string)>, RTT::corba::CorbaOperationCallerFactory, and RTT::scripting::FunctionFactory.

virtual std::string RTT::OperationInterfacePart::resultType ( ) const
pure virtual

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


rtt
Author(s): RTT Developers
autogenerated on Tue Jun 25 2019 19:33:41