Orocos Real-Time Toolkit
2.8.3
|
This class represents elements in a program tree. More...
#include <rtt/scripting/VertexNode.hpp>
Public Types | |
enum | NodeTypes { normal_node, prog_start_node, prog_exit_node, func_start_node, func_exit_node } |
The vertex_exec_t property values. More... | |
typedef boost::property< vertex_command_t, VertexNode, boost::property< vertex_exec_t, int, boost::property< boost::vertex_index_t, int > > > | VertProperty |
Public Member Functions | |
VertexNode () | |
Construct an empty program node with no command, no conditional branches and line number 0. More... | |
VertexNode (base::ActionInterface *cmd) | |
Construct a program node with given command, no conditional branches and line number 0. More... | |
VertexNode (const VertexNode &orig) | |
The copy constructor creates a shallow copy. More... | |
VertexNode | copy (std::map< const base::DataSourceBase *, base::DataSourceBase * > &rdss) const |
VertexNode & | operator= (const VertexNode &orig) |
~VertexNode () | |
Returns a special program node that contains no clauses and a special stopExecution command. More... | |
void | startExecution () |
This means that the execution engine has just started to execute this node, after some other node has sent it to this one. More... | |
bool | execute () |
Executes the command currently associated with this node. More... | |
bool | isValid () const |
Returns true if the node is in a valid state to be left. More... | |
base::ActionInterface * | setCommand (base::ActionInterface *c) |
Set the command associated with this program to the given command. More... | |
void | setLineNumber (int ln) |
Set line number of this program node to given line number. More... | |
base::ActionInterface * | getCommand () const |
Returns the command currently associated with this node. More... | |
int | getLineNumber () const |
Returns the program line number currently associated with this program node (default = zero). More... | |
This class represents elements in a program tree.
Definition at line 76 of file VertexNode.hpp.
typedef boost::property<vertex_command_t, VertexNode, boost::property<vertex_exec_t, int, boost::property<boost::vertex_index_t, int> > > RTT::scripting::VertexNode::VertProperty |
Definition at line 85 of file VertexNode.hpp.
The vertex_exec_t property values.
Enumerator | |
---|---|
normal_node | |
prog_start_node | |
prog_exit_node | |
func_start_node | |
func_exit_node |
Definition at line 82 of file VertexNode.hpp.
RTT::VertexNode::VertexNode | ( | ) |
Construct an empty program node with no command, no conditional branches and line number 0.
Definition at line 46 of file VertexNode.cpp.
|
explicit |
Construct a program node with given command, no conditional branches and line number 0.
Definition at line 58 of file VertexNode.cpp.
RTT::VertexNode::VertexNode | ( | const VertexNode & | orig | ) |
The copy constructor creates a shallow copy.
Definition at line 52 of file VertexNode.cpp.
RTT::VertexNode::~VertexNode | ( | ) |
Returns a special program node that contains no clauses and a special stopExecution command.
(all the leaves of a program tree are this type of program node.
proc | The engine executing this node (which will be stopped) |
Definition at line 64 of file VertexNode.cpp.
VertexNode RTT::VertexNode::copy | ( | std::map< const base::DataSourceBase *, base::DataSourceBase * > & | rdss | ) | const |
Definition at line 112 of file VertexNode.cpp.
References getCommand(), and setCommand().
bool RTT::VertexNode::execute | ( | ) |
Executes the command currently associated with this node.
Execute the command in any case. If the command is Asynch, this will do nothing.
Definition at line 70 of file VertexNode.cpp.
References RTT::base::ActionInterface::execute().
ActionInterface * RTT::VertexNode::getCommand | ( | ) | const |
Returns the command currently associated with this node.
Definition at line 83 of file VertexNode.cpp.
Referenced by copy(), and operator=().
int RTT::VertexNode::getLineNumber | ( | ) | const |
Returns the program line number currently associated with this program node (default = zero).
Definition at line 100 of file VertexNode.cpp.
Referenced by operator=().
bool RTT::VertexNode::isValid | ( | ) | const |
Returns true if the node is in a valid state to be left.
Definition at line 79 of file VertexNode.cpp.
References RTT::base::ActionInterface::valid().
VertexNode & RTT::VertexNode::operator= | ( | const VertexNode & | orig | ) |
Definition at line 119 of file VertexNode.cpp.
References RTT::base::ActionInterface::clone(), getCommand(), and getLineNumber().
ActionInterface * RTT::VertexNode::setCommand | ( | base::ActionInterface * | c | ) |
Set the command associated with this program to the given command.
c | The new command. |
Definition at line 88 of file VertexNode.cpp.
Referenced by copy().
void RTT::VertexNode::setLineNumber | ( | int | ln | ) |
Set line number of this program node to given line number.
ln | The new line number for this node |
Definition at line 95 of file VertexNode.cpp.
Referenced by RTT::scripting::FunctionGraphBuilder::breakLoop().
void RTT::VertexNode::startExecution | ( | ) |
This means that the execution engine has just started to execute this node, after some other node has sent it to this one.
If the node is simply executed again, because it returned itself from its execute() method, then this method will not be called. The reason this is here is because the node has to reset its termination conditions at this point. See the documentation of ConditionInterface::reset() for more information about this..
Definition at line 105 of file VertexNode.cpp.
References RTT::base::ActionInterface::readArguments(), and RTT::base::ActionInterface::reset().