RTT::FunctionGraphBuilder Class Reference

This class builds a program consisting of data contained in a program graph tree, based on the Boost Graph Library. More...

#include <rtt/FunctionGraphBuilder.hpp>

List of all members.

Public Types

typedef EdgeCondition::EdgeProperty EdgeProperty
typedef VertexNode::VertProperty VertProperty
typedef boost::adjacency_list
< boost::vecS, boost::listS,
boost::directedS, VertProperty,
EdgeProperty > 
Graph
typedef boost::graph_traits
< Graph >::vertex_descriptor 
Vertex
typedef boost::graph_traits
< Graph >::edge_descriptor 
Edge
typedef FunctionGraph::Vertex CommandNode
 A CommandNode serves as a token to construct a vertex or node, containing a command.
typedef FunctionGraph::Edge ConditionEdge
 A ConditionEdge serves as a token to construct an edge, containing a condition.

Public Member Functions

 FunctionGraphBuilder ()
 Constructs a Function graph builder.
void setLineNumber (int ln)
 Set the line number of the build command node.
void setName (const std::string &_name)
FunctionGraphPtr startFunction (const std::string &fname)
 Start building a new function.
void returnFunction (ConditionInterface *cond, int line)
 Function return is detected inside the function.
FunctionGraphPtr endFunction (int line=0)
 Finish building the function and return the result.
FunctionGraphPtr getFunction ()
 Return a pointer to the function being built, zero if none.
void startIfStatement (ConditionInterface *cond, int linenumber)
void endIfBlock (int linenumber)
void endElseBlock (int linenumber)
void startWhileStatement (ConditionInterface *cond, int linenumber)
void endWhileBlock (int linenumber)
bool inLoop ()
bool breakLoop ()
CommandNode addCommand (ConditionInterface *cond, CommandInterface *com)
 Add a new command from the build CommandNode under a condition.
void addConditionEdge (ConditionInterface *cond, CommandNode vert)
 Add an edge from the build CommandNode to the given CommandNode without changing the build CommandNode.
void closeConditionEdge (CommandNode vert, ConditionInterface *cond)
 Add an edge between the given CommandNode and the build CommandNode.
CommandNode moveTo (CommandNode _build, CommandNode _next, int linenr)
 Select an already added CommandNode.
void setCommand (CommandInterface *comm)
 Sets a new Command on the build CommandNode.
CommandInterfacegetCommand (CommandNode cn)
 Get the Command on a given CommandNode.
void setCommand (CommandNode vert, CommandInterface *comm)
 Sets a (new) command on a given CommandNode.
CommandNode appendFunction (ConditionInterface *cond, FunctionGraphPtr fn, std::vector< DataSourceBase::shared_ptr > fnargs)
 Append a function to the build CommandNode.
CommandNode setFunction (FunctionGraphPtr fn, std::vector< DataSourceBase::shared_ptr > fnargs)
 Put a function in the build CommandNode.
CommandNode proceedToNext (int line_nr=0)
 Proceed to the 'next' CommandNode.
CommandNode proceedToNext (ConditionInterface *cond, int line_nr=0)
 Proceed to the 'next' CommandNode and add an edge with a condition.
void connectToNext (CommandNode v, ConditionInterface *cond)
 Connect the given CommandNode to the 'next' CommandNode.
CommandNode buildNode () const
 Return the build CommandNode.
size_t buildEdges () const
 Return the number of edges of the build CommandNode.
CommandNode nextNode () const
 Return the next CommandNode.

Public Attributes

CommandNode build
 The node which will be built next.
CommandNode next
 The node which will be built next.

Detailed Description

This class builds a program consisting of data contained in a program graph tree, based on the Boost Graph Library.

Definition at line 49 of file FunctionGraphBuilder.hpp.


Member Function Documentation

CommandNode RTT::FunctionGraphBuilder::addCommand ( ConditionInterface cond,
CommandInterface com 
)

Add a new command from the build CommandNode under a condition.

Returns:
the 'new' build CommandNode.
CommandNode RTT::FunctionGraphBuilder::appendFunction ( ConditionInterface cond,
FunctionGraphPtr  fn,
std::vector< DataSourceBase::shared_ptr fnargs 
)

Append a function to the build CommandNode.

Parameters:
fn The Function to append from the build CommandNode
cond The 'enter' condition
Returns:
the last CommandNode of the appended function.
FunctionGraphPtr RTT::FunctionGraphBuilder::endFunction ( int  line = 0  ) 

Finish building the function and return the result.

Returns:
the finished function.
CommandNode RTT::FunctionGraphBuilder::moveTo ( CommandNode  _build,
CommandNode  _next,
int  linenr 
)

Select an already added CommandNode.

Returns:
the previous CommandNode.
CommandNode RTT::FunctionGraphBuilder::proceedToNext ( ConditionInterface cond,
int  line_nr = 0 
)

Proceed to the 'next' CommandNode and add an edge with a condition.

Parameters:
cond The condition under which to proceed to the next node.
line_nr The line number of the 'build' command.
Returns:
The new build CommandNode.
CommandNode RTT::FunctionGraphBuilder::proceedToNext ( int  line_nr = 0  ) 

Proceed to the 'next' CommandNode.

Parameters:
line_nr The line number of the 'build' command.
Returns:
The new build CommandNode.
void RTT::FunctionGraphBuilder::returnFunction ( ConditionInterface cond,
int  line 
)

Function return is detected inside the function.

Do not confuse with endFunction().

Parameters:
cond The Condition under which to return.
line The line number of that line in the function.
void RTT::FunctionGraphBuilder::setCommand ( CommandNode  vert,
CommandInterface comm 
)

Sets a (new) command on a given CommandNode.

Parameters:
vert The CommandNode to be adapted
comm The new Command to be executed in that node.
CommandNode RTT::FunctionGraphBuilder::setFunction ( FunctionGraphPtr  fn,
std::vector< DataSourceBase::shared_ptr fnargs 
)

Put a function in the build CommandNode.

Parameters:
fn The Function to append from the build CommandNode
Returns:
the last CommandNode of the appended function.
void RTT::FunctionGraphBuilder::setLineNumber ( int  ln  ) 

Set the line number of the build command node.

Parameters:
ln The line number.

The documentation for this class was generated from the following file:
Generated on Thu Dec 23 13:22:43 2010 for Orocos Real-Time Toolkit by  doxygen 1.6.3