Orocos Real-Time Toolkit  2.9.0
Public Types | Public Member Functions | Protected Types | Protected Attributes | List of all members

Holds all exported operations of a component and is able to produce callers for these operations. More...

#include <rtt/OperationInterface.hpp>

Inheritance diagram for RTT::OperationInterface:
RTT::Service RTT::internal::GlobalService RTT::marsh::MarshallingService RTT::scripting::ProgramService RTT::scripting::ScriptingService RTT::scripting::StateMachineService

Public Types

typedef std::vector< base::DataSourceBase::shared_ptrArguments
 The arguments for an operation. More...
 
typedef std::vector< ArgumentDescriptionDescriptions
 The descriptions of an argumentlist. More...
 

Public Member Functions

void clear ()
 Remove and delete all added operations. More...
 
std::vector< std::string > getNames () const
 Get a list of all the names of the added operations. More...
 
bool hasMember (const std::string &name) const
 Query if an operation is present. More...
 
int getArity (const std::string &name) const
 Query the number of arguments of an operation. More...
 
int getCollectArity (const std::string &name) const
 Query the collectable number of arguments of an operation. More...
 
bool isSynchronous (const std::string &name) const
 Query if a given operation is limited to sychronous invocation (own component thread) only. More...
 
base::DataSourceBase::shared_ptr produce (const std::string &name, const Arguments &args, ExecutionEngine *caller) const
 Produce a DataSource that call()s an operation. More...
 
base::DataSourceBase::shared_ptr produceSend (const std::string &name, const Arguments &args, ExecutionEngine *caller) const
 Produce a DataSource that send()s an operation. More...
 
base::DataSourceBase::shared_ptr produceHandle (const std::string &name) const
 Produce an AssignableDataSource that contains a SendHandle, fit for the operation. More...
 
base::DataSourceBase::shared_ptr produceCollect (const std::string &name, const Arguments &args, internal::DataSource< bool >::shared_ptr blocking) const
 Produce a DataSource that collects a sent operation, The DataSource will return the SendStatus and store the results in the presented arguments. More...
 
Descriptions getArgumentList (const std::string &name) const
 Get the names and descriptions of all arguments of an operation. More...
 
std::string getResultType (const std::string &name) const
 Get the type name of the result type of an operation. More...
 
std::string getDescription (const std::string &name) const
 Get the description of an operation. More...
 
void add (const std::string &name, OperationInterfacePart *part)
 Add a new operation to the interface or replace an existing one. More...
 
void remove (const std::string &name)
 Remove an added operation from the interface. More...
 
OperationInterfacePartgetPart (const std::string &name)
 Get a previously added part of this factory. More...
 

Protected Types

typedef std::map< std::string, OperationInterfacePart * > map_t
 

Protected Attributes

map_t data
 

Detailed Description

Holds all exported operations of a component and is able to produce callers for these operations.

Definition at line 62 of file OperationInterface.hpp.

Member Typedef Documentation

The arguments for an operation.

Definition at line 71 of file OperationInterface.hpp.

The descriptions of an argumentlist.

Definition at line 204 of file OperationInterface.hpp.

typedef std::map<std::string, OperationInterfacePart*> RTT::OperationInterface::map_t
protected

Definition at line 65 of file OperationInterface.hpp.

Member Function Documentation

void OperationInterface::add ( const std::string &  name,
OperationInterfacePart part 
)

Add a new operation to the interface or replace an existing one.

Parameters
nameThe name of the operation
partA part which creates the operation.

Definition at line 170 of file OperationInterface.cpp.

void OperationInterface::clear ( )

Remove and delete all added operations.

Definition at line 58 of file OperationInterface.cpp.

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

OperationInterface::Descriptions OperationInterface::getArgumentList ( const std::string &  name) const

Get the names and descriptions of all arguments of an operation.

Parameters
nameThe name of the operation
Returns
A list of descriptions.
Exceptions
name_not_found_exception

Definition at line 146 of file OperationInterface.cpp.

References ORO_THROW_OR_RETURN.

int OperationInterface::getArity ( const std::string &  name) const

Query the number of arguments of an operation.

These are the number of function arguments, not counting the return value.

Parameters
nameThe name of the operation
Returns
The arity, or -1 if name is not found.

Definition at line 77 of file OperationInterface.cpp.

int OperationInterface::getCollectArity ( const std::string &  name) const

Query the collectable number of arguments of an operation.

These are the return value (if non void) and each non-const reference argument of the operation.

Parameters
nameThe name of the operation
Returns
The arity, or -1 if name is not found.

Definition at line 85 of file OperationInterface.cpp.

std::string OperationInterface::getDescription ( const std::string &  name) const

Get the description of an operation.

Parameters
nameThe name of the operation
Returns
A user readable description.
Exceptions
name_not_found_exception

Definition at line 162 of file OperationInterface.cpp.

References ORO_THROW_OR_RETURN.

std::vector< std::string > OperationInterface::getNames ( ) const

Get a list of all the names of the added operations.

Definition at line 65 of file OperationInterface.cpp.

Referenced by RTT_corba_COperationInterface_i::getOperations().

OperationInterfacePart * OperationInterface::getPart ( const std::string &  name)

Get a previously added part of this factory.

Parameters
name
Returns

Definition at line 188 of file OperationInterface.cpp.

Referenced by RTT::Service::create(), RTT::Service::getOperation(), and RTT_corba_COperationInterface_i::sendOperationOneway().

std::string OperationInterface::getResultType ( const std::string &  name) const

Get the type name of the result type of an operation.

Parameters
nameThe name of the operation
Returns
A name of a data type.
Exceptions
name_not_found_exception

Definition at line 154 of file OperationInterface.cpp.

References ORO_THROW_OR_RETURN.

bool OperationInterface::hasMember ( const std::string &  name) const

Query if an operation is present.

Definition at line 72 of file OperationInterface.cpp.

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

bool OperationInterface::isSynchronous ( const std::string &  name) const

Query if a given operation is limited to sychronous invocation (own component thread) only.

Returns
false if name not found or a normal operation, true if name exists but is synchronous.

Definition at line 93 of file OperationInterface.cpp.

Referenced by RTT_corba_COperationInterface_i::getOperations(), and RTT_corba_COperationInterface_i::sendOperationOneway().

base::DataSourceBase::shared_ptr OperationInterface::produce ( const std::string &  name,
const Arguments args,
ExecutionEngine caller 
) const

Produce a DataSource that call()s an operation.

The DataSource will return the result of call().

Parameters
nameThe name of the operation
argsThe arguments filled in as data sources.
Returns
a new object
Exceptions
wrong_number_of_args_exception
wrong_types_of_args_exception
name_not_found_exception

Definition at line 105 of file OperationInterface.cpp.

References ORO_THROW_OR_RETURN.

base::DataSourceBase::shared_ptr OperationInterface::produceCollect ( const std::string &  name,
const Arguments args,
internal::DataSource< bool >::shared_ptr  blocking 
) const

Produce a DataSource that collects a sent operation, The DataSource will return the SendStatus and store the results in the presented arguments.

Note that this function takes most of the time less arguments than its companions.

Parameters
nameThe name of the operation
argsThe arguments filled in as data sources.
blockingSet to true to block on the result.
Returns
a new object
Exceptions
wrong_number_of_args_exception
wrong_types_of_args_exception
name_not_found_exception
no_asynchronous_operation_exception

Definition at line 129 of file OperationInterface.cpp.

References ORO_THROW_OR_RETURN.

base::DataSourceBase::shared_ptr OperationInterface::produceHandle ( const std::string &  name) const

Produce an AssignableDataSource that contains a SendHandle, fit for the operation.

The DataSource will return the SendHandle.

Parameters
nameThe name of the operation
argsThe arguments filled in as data sources.
Returns
a new object
Exceptions
wrong_number_of_args_exception
wrong_types_of_args_exception
name_not_found_exception
no_asynchronous_operation_exception

Definition at line 121 of file OperationInterface.cpp.

References ORO_THROW_OR_RETURN.

base::DataSourceBase::shared_ptr OperationInterface::produceSend ( const std::string &  name,
const Arguments args,
ExecutionEngine caller 
) const

Produce a DataSource that send()s an operation.

The DataSource will return the SendHandle of that operation.

Parameters
nameThe name of the operation
argsThe arguments filled in as data sources.
Returns
a new object
Exceptions
wrong_number_of_args_exception
wrong_types_of_args_exception
name_not_found_exception
no_asynchronous_operation_exception

Definition at line 113 of file OperationInterface.cpp.

References ORO_THROW_OR_RETURN.

void OperationInterface::remove ( const std::string &  name)

Remove an added operation from the interface.

Parameters
nameThe name of the operation

Definition at line 178 of file OperationInterface.cpp.

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

Member Data Documentation

map_t RTT::OperationInterface::data
protected

Definition at line 66 of file OperationInterface.hpp.


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