Orocos Real-Time Toolkit  2.8.3
Public Types | Public Member Functions | List of all members
RTT::internal::OperationInterfacePartFusedDS< Signature, ObjT > Class Template Referenceabstract

OperationInterfacePart implementation that uses boost::fusion to produce items. More...

#include <rtt/internal/OperationInterfacePartFused.hpp>

Inheritance diagram for RTT::internal::OperationInterfacePartFusedDS< Signature, ObjT >:
RTT::OperationInterfacePart

Public Types

typedef std::vector< base::DataSourceBase::shared_ptrArgList
 

Public Member Functions

 OperationInterfacePartFusedDS (DataSource< boost::shared_ptr< ObjT > > *wp, Operation< Signature > *o)
 
std::string resultType () const
 Return the result (return) type of this operation. More...
 
unsigned int arity () const
 Returns the arity (number of arguments) of this operation. More...
 
const types::TypeInfogetArgumentType (unsigned int arg) const
 Returns the type information of the n'th argument, with argument zero being the return value. More...
 
unsigned int collectArity () const
 Returns the number of collectable arguments of this operation's function. More...
 
const types::TypeInfogetCollectType (unsigned int arg) const
 Returns the type information of the n'th collectable argument. More...
 
virtual std::string getName () const
 Returns the name of this operation. More...
 
virtual std::string description () const
 Returns the description of this operation. More...
 
virtual std::vector< ArgumentDescriptiongetArgumentList () const
 Get a description of the desired arguments in the ArgumentDescription format. More...
 
base::DataSourceBase::shared_ptr produce (ArgList const &args, ExecutionEngine *caller) const
 
virtual base::DataSourceBase::shared_ptr produceSend (const std::vector< base::DataSourceBase::shared_ptr > &args, ExecutionEngine *caller) const
 Create a DataSource for a given send operation. More...
 
virtual base::DataSourceBase::shared_ptr produceHandle () const
 Create an empty SendHandle object for this operation. More...
 
virtual base::DataSourceBase::shared_ptr produceCollect (const std::vector< base::DataSourceBase::shared_ptr > &args, DataSource< bool >::shared_ptr blocking) const
 Create a DataSource for collecting the results of a Send. More...
 
boost::shared_ptr< base::DisposableInterfacegetLocalOperation () const
 Returns any local operation associated with this operation. More...
 
virtual base::DataSourceBase::shared_ptr produce (const std::vector< base::DataSourceBase::shared_ptr > &args, ExecutionEngine *caller) const =0
 Create a DataSource for a given callable operation. More...
 

Detailed Description

template<typename Signature, typename ObjT>
class RTT::internal::OperationInterfacePartFusedDS< Signature, ObjT >

OperationInterfacePart implementation that uses boost::fusion to produce items.

The methods invoked get their object pointer from the first data source, which contains a shared_ptr.

Parameters
SignatureThe full signature, with the object pointer as the first argument.
ObjTThe object pointer type used in Signature.

Definition at line 335 of file OperationInterfacePartFused.hpp.

Member Typedef Documentation

template<typename Signature, typename ObjT>
typedef std::vector<base::DataSourceBase::shared_ptr> RTT::internal::OperationInterfacePartFusedDS< Signature, ObjT >::ArgList

Definition at line 350 of file OperationInterfacePartFused.hpp.

Constructor & Destructor Documentation

template<typename Signature, typename ObjT>
RTT::internal::OperationInterfacePartFusedDS< Signature, ObjT >::OperationInterfacePartFusedDS ( DataSource< boost::shared_ptr< ObjT > > *  wp,
Operation< Signature > *  o 
)
inline

Definition at line 345 of file OperationInterfacePartFused.hpp.

Member Function Documentation

template<typename Signature, typename ObjT>
unsigned int RTT::internal::OperationInterfacePartFusedDS< Signature, ObjT >::arity ( ) const
inlinevirtual

Returns the arity (number of arguments) of this operation.

See also
produce, produceSend

Implements RTT::OperationInterfacePart.

Definition at line 357 of file OperationInterfacePartFused.hpp.

template<typename Signature, typename ObjT>
unsigned int RTT::internal::OperationInterfacePartFusedDS< Signature, ObjT >::collectArity ( ) const
inlinevirtual

Returns the number of collectable arguments of this operation's function.

These consist of the return value and the reference arguments.

See also
produceCollect

Implements RTT::OperationInterfacePart.

Definition at line 366 of file OperationInterfacePartFused.hpp.

template<typename Signature, typename ObjT>
virtual std::string RTT::internal::OperationInterfacePartFusedDS< Signature, ObjT >::description ( ) const
inlinevirtual

Returns the description of this operation.

Returns

Implements RTT::OperationInterfacePart.

Definition at line 377 of file OperationInterfacePartFused.hpp.

References RTT::base::OperationBase::getDescriptions().

template<typename Signature, typename ObjT>
virtual std::vector<ArgumentDescription> RTT::internal::OperationInterfacePartFusedDS< Signature, ObjT >::getArgumentList ( ) const
inlinevirtual

Get a description of the desired arguments in the ArgumentDescription format.

Implements RTT::OperationInterfacePart.

Definition at line 381 of file OperationInterfacePartFused.hpp.

References RTT::base::OperationBase::getDescriptions().

template<typename Signature, typename ObjT>
const types::TypeInfo* RTT::internal::OperationInterfacePartFusedDS< Signature, ObjT >::getArgumentType ( unsigned int  arg) const
inlinevirtual

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

Implements RTT::OperationInterfacePart.

Definition at line 359 of file OperationInterfacePartFused.hpp.

References RTT::internal::DataSourceTypeInfo< T >::getTypeInfo().

template<typename Signature, typename ObjT>
const types::TypeInfo* RTT::internal::OperationInterfacePartFusedDS< Signature, ObjT >::getCollectType ( unsigned int  arg) const
inlinevirtual

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

Implements RTT::OperationInterfacePart.

Definition at line 368 of file OperationInterfacePartFused.hpp.

template<typename Signature, typename ObjT>
boost::shared_ptr<base::DisposableInterface> RTT::internal::OperationInterfacePartFusedDS< Signature, ObjT >::getLocalOperation ( ) const
inlinevirtual

Returns any local operation associated with this operation.

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

Reimplemented from RTT::OperationInterfacePart.

Definition at line 466 of file OperationInterfacePartFused.hpp.

References RTT::Operation< Signature >::getImplementation().

template<typename Signature, typename ObjT>
virtual std::string RTT::internal::OperationInterfacePartFusedDS< Signature, ObjT >::getName ( ) const
inlinevirtual

Returns the name of this operation.

Returns

Implements RTT::OperationInterfacePart.

Definition at line 373 of file OperationInterfacePartFused.hpp.

References RTT::base::OperationBase::getName().

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

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.

Referenced by RTT::internal::OperationCallerC::check(), and RTT::internal::OperationCallerC::D::checkAndCreate().

template<typename Signature, typename ObjT>
base::DataSourceBase::shared_ptr RTT::internal::OperationInterfacePartFusedDS< Signature, ObjT >::produce ( ArgList const &  args,
ExecutionEngine caller 
) const
inline
template<typename Signature, typename ObjT>
virtual base::DataSourceBase::shared_ptr RTT::internal::OperationInterfacePartFusedDS< Signature, ObjT >::produceCollect ( const std::vector< base::DataSourceBase::shared_ptr > &  args,
DataSource< bool >::shared_ptr  blocking 
) const
inlinevirtual

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

Implements RTT::OperationInterfacePart.

Definition at line 418 of file OperationInterfacePartFused.hpp.

References RTT::Operation< Signature >::getOperationCaller().

template<typename Signature, typename ObjT>
virtual base::DataSourceBase::shared_ptr RTT::internal::OperationInterfacePartFusedDS< Signature, ObjT >::produceHandle ( ) const
inlinevirtual
template<typename Signature, typename ObjT>
virtual base::DataSourceBase::shared_ptr RTT::internal::OperationInterfacePartFusedDS< Signature, ObjT >::produceSend ( const std::vector< base::DataSourceBase::shared_ptr > &  args,
ExecutionEngine caller 
) const
inlinevirtual

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

Implements RTT::OperationInterfacePart.

Definition at line 402 of file OperationInterfacePartFused.hpp.

References RTT::Operation< Signature >::getOperationCaller().

template<typename Signature, typename ObjT>
std::string RTT::internal::OperationInterfacePartFusedDS< Signature, ObjT >::resultType ( ) const
inlinevirtual

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