Orocos Real-Time Toolkit  2.9.0
Public Member Functions | List of all members
RTT::scripting::FunctionFactory Class Reference

A Factory which delivers operations which execute a FunctionGraph in an engine. More...

#include <rtt/scripting/FunctionFactory.hpp>

Inheritance diagram for RTT::scripting::FunctionFactory:
RTT::OperationInterfacePart

Public Member Functions

 FunctionFactory (ProgramInterfacePtr func, ExecutionEngine *procs)
 
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...
 
unsigned int collectArity () const
 Returns the number of collectable arguments of this operation's function. 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...
 
const types::TypeInfogetCollectType (unsigned int arg) const
 Returns the type information of the n'th collectable argument. More...
 
std::string getName () const
 Returns the name of this operation. More...
 
std::string description () const
 Returns the description of this operation. More...
 
std::vector< ArgumentDescriptiongetArgumentList () const
 Get a description of the desired arguments in the ArgumentDescription format. More...
 
base::DataSourceBase::shared_ptr produce (const std::vector< base::DataSourceBase::shared_ptr > &args, ExecutionEngine *caller) const
 Create a DataSource for a given callable operation. More...
 
base::DataSourceBase::shared_ptr produceHandle () const
 Create an empty SendHandle object for this operation. More...
 
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...
 
base::DataSourceBase::shared_ptr produceCollect (const std::vector< base::DataSourceBase::shared_ptr > &args, internal::DataSource< bool >::shared_ptr blocking) const
 Create a DataSource for collecting the results of a Send. More...
 
virtual RTT_API boost::shared_ptr< base::DisposableInterfacegetLocalOperation () const
 Returns any local operation associated with this operation. More...
 

Detailed Description

A Factory which delivers operations which execute a FunctionGraph in an engine.

Definition at line 57 of file FunctionFactory.hpp.

Constructor & Destructor Documentation

RTT::FunctionFactory::FunctionFactory ( ProgramInterfacePtr  func,
ExecutionEngine procs 
)

Definition at line 108 of file FunctionFactory.cpp.

Member Function Documentation

unsigned int RTT::FunctionFactory::arity ( ) const
virtual

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

See also
produce, produceSend

Implements RTT::OperationInterfacePart.

Definition at line 133 of file FunctionFactory.cpp.

unsigned int RTT::FunctionFactory::collectArity ( ) const
virtual

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 138 of file FunctionFactory.cpp.

Referenced by getCollectType().

std::string RTT::FunctionFactory::description ( ) const
virtual

Returns the description of this operation.

Returns

Implements RTT::OperationInterfacePart.

Definition at line 119 of file FunctionFactory.cpp.

std::vector< ArgumentDescription > RTT::FunctionFactory::getArgumentList ( ) const
virtual

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

Implements RTT::OperationInterfacePart.

Definition at line 123 of file FunctionFactory.cpp.

const types::TypeInfo * RTT::FunctionFactory::getArgumentType ( unsigned int  arg) const
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

Implements RTT::OperationInterfacePart.

Definition at line 143 of file FunctionFactory.cpp.

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

const types::TypeInfo * RTT::FunctionFactory::getCollectType ( unsigned int  arg) const
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

Implements RTT::OperationInterfacePart.

Definition at line 157 of file FunctionFactory.cpp.

References collectArity().

boost::shared_ptr< base::DisposableInterface > OperationInterfacePart::getLocalOperation ( ) const
virtualinherited
std::string RTT::FunctionFactory::getName ( ) const
virtual

Returns the name of this operation.

Returns

Implements RTT::OperationInterfacePart.

Definition at line 115 of file FunctionFactory.cpp.

DataSourceBase::shared_ptr RTT::FunctionFactory::produce ( const std::vector< base::DataSourceBase::shared_ptr > &  args,
ExecutionEngine caller 
) const
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

Implements RTT::OperationInterfacePart.

Definition at line 163 of file FunctionFactory.cpp.

References RTT::scripting::CommandComposite::add(), RTT::base::AttributeBase::getDataSource(), and RTT::internal::GlobalEngine::Instance().

base::DataSourceBase::shared_ptr RTT::FunctionFactory::produceCollect ( const std::vector< base::DataSourceBase::shared_ptr > &  args,
internal::DataSource< bool >::shared_ptr  blocking 
) const
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

Implements RTT::OperationInterfacePart.

Definition at line 241 of file FunctionFactory.cpp.

References RTT::Error, and RTT::internal::DataSource< T >::get().

base::DataSourceBase::shared_ptr RTT::FunctionFactory::produceHandle ( ) const
virtual

Create an empty SendHandle object for this operation.

Returns
a DataSource which contains an empty SendHandle.
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 234 of file FunctionFactory.cpp.

References RTT::SendNotReady.

base::DataSourceBase::shared_ptr RTT::FunctionFactory::produceSend ( const std::vector< base::DataSourceBase::shared_ptr > &  args,
ExecutionEngine caller 
) const
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

Implements RTT::OperationInterfacePart.

Definition at line 237 of file FunctionFactory.cpp.

std::string RTT::FunctionFactory::resultType ( ) const
virtual

Return the result (return) type of this operation.

Implements RTT::OperationInterfacePart.

Definition at line 111 of file FunctionFactory.cpp.


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