Dispatch a CommandInterface to a CommandProcessor. More...
#include <rtt/CommandDispatch.hpp>
Public Types | |
enum | Status { NotReady, Ready, Sent, NotAccepted, Accepted, Executed, NotValid, Valid, Done } |
The status progressions of a Dispatchable Command. More... | |
typedef boost::shared_ptr < DispatchInterface > | shared_ptr |
If you want to share ownership of DispatchInterface instances, use this shared_ptr type. | |
typedef CommandInterface_ptr | _ptr_type |
typedef CommandInterface_var | _var_type |
typedef CommandInterface_out | _out_type |
Public Member Functions | |
CommandDispatch (CommandProcessor *p, CommandInterface *c, ConditionInterface *cn) | |
Create a command to dispatch another command c to a CommandProcessor p. | |
~CommandDispatch () | |
Be sure only to delete this command if the target processor is not processing the encapsulated command. | |
void | readArguments () |
bool | ready () const |
The command's effect is done. | |
bool | execute () |
bool | dispatch () |
Dispatch a command. | |
void | reset () |
After reset(), another attempt to dispatch the command will be made upon execute(). | |
bool | sent () const |
Returns true if the command was sent to the CommandProcessor. | |
bool | accepted () const |
Returns true if the command was accepted when sent to the CommandProcessor. | |
bool | executed () const |
Returns true if the command was executed by the CommandProcessor. | |
bool | valid () const |
Returns true if the command was valid, i.e. | |
bool | done () const |
Evaluate if the command is done. | |
virtual ConditionInterface * | createCondition () const |
DispatchInterface * | clone () const |
DispatchInterface * | copy (std::map< const DataSourceBase *, DataSourceBase * > &alreadyCloned) const |
virtual ::RTT::Corba::CommandList * | getCommands (void) |
virtual ::RTT::Corba::Descriptions * | getArguments (const char *command) |
virtual char * | getResultType (const char *command) |
virtual char * | getDescription (const char *command) |
virtual ::RTT::Corba::Command_ptr | createCommand (const char *command, const ::RTT::Corba::Arguments &args) |
virtual ::RTT::Corba::Command_ptr | createCommandAny (const char *command, const ::RTT::Corba::AnyArguments &args) |
virtual ::CORBA::Boolean | _is_a (const char *type_id) |
virtual const char * | _interface_repository_id (void) const |
virtual ::CORBA::Boolean | marshal (TAO_OutputCDR &cdr) |
Static Public Member Functions | |
static CommandInterface_ptr | _duplicate (CommandInterface_ptr obj) |
static void | _tao_release (CommandInterface_ptr obj) |
static CommandInterface_ptr | _narrow (::CORBA::Object_ptr obj) |
static CommandInterface_ptr | _unchecked_narrow (::CORBA::Object_ptr obj) |
static CommandInterface_ptr | _nil (void) |
static void | _tao_any_destructor (void *) |
Protected Member Functions | |
virtual void | RTT_Corba_CommandInterface_setup_collocation (void) |
Friends | |
class | TAO::Narrow_Utils< CommandInterface > |
Dispatch a CommandInterface to a CommandProcessor.
The execute() method will return false from the moment on that the dispatched command failed. Hence, this execute() must not wrapped in an AsyncCommandDecorator, but directly executed by the caller.
Definition at line 59 of file CommandDispatch.hpp.
enum RTT::DispatchInterface::Status [inherited] |
The status progressions of a Dispatchable Command.
The order of these enums is important and should not be altered.
Ready |
The command is not yet initialised. |
Sent |
The command is ready for execution. |
NotAccepted |
The command has been sent/dispatched to the CommandProcessor. |
Accepted |
The command was not accepted by the CommandProcessor. |
Executed |
The command was accepted by the CommandProcessor. |
NotValid |
The command was executed by the CommandProcessor. |
Valid |
The command's arguments were found to be invalid. |
Done |
The command's arguments were valid. |
Definition at line 65 of file DispatchInterface.hpp.
bool RTT::CommandDispatch::accepted | ( | ) | const [virtual] |
Returns true if the command was accepted when sent to the CommandProcessor.
A Command is accepted when the CommandProcessor was running and its queue was not full.
Implements RTT::DispatchInterface.
bool RTT::CommandDispatch::dispatch | ( | ) | [virtual] |
Dispatch a command.
If it is not accepted, fail, if it is accepted, return the dispatched command's result status.
Implements RTT::DispatchInterface.
bool RTT::CommandDispatch::done | ( | ) | const [virtual] |
Evaluate if the command is done.
true | if accepted(), valid() was true and the completion condition was true as well. | |
false | otherwise. |
Implements RTT::DispatchInterface.
bool RTT::CommandDispatch::executed | ( | ) | const [virtual] |
Returns true if the command was executed by the CommandProcessor.
When executed() is true, you can check its result().
Implements RTT::DispatchInterface.
bool RTT::CommandDispatch::ready | ( | ) | const [virtual] |
The command's effect is done.
Returns true if the command is ready for dispatch. If ready() returns true, dispatch() can be safely called, otherwise, dispatch() will fail.
Implements RTT::DispatchInterface.
bool RTT::CommandDispatch::sent | ( | ) | const [virtual] |
Returns true if the command was sent to the CommandProcessor.
You can use this flag to check whether execute() was invoked.
Implements RTT::DispatchInterface.
bool RTT::CommandDispatch::valid | ( | ) | const [virtual] |
Returns true if the command was valid, i.e.
the command itself was executed and returned true.
Implements RTT::DispatchInterface.