#include <SmacqGraph.h>
Collaboration diagram for SmacqGraphContainer:
Public Member Functions | |
SmacqGraphContainer () | |
Default CTOR. | |
SmacqGraphContainer (ThreadSafeMultiSet< SmacqGraph_ptr > &children) | |
Construct from a vector of Children. | |
void | init (DTS *, SmacqScheduler *, bool do_optimize=true) |
This method must be called before the graphs are used. | |
void | shutdown () |
Shutdown all graphs. | |
void | clear () |
Erase container. | |
void | print (FILE *fh, int indent) |
Print the graphs. | |
std::string | print_query () |
Print the graph in re-parsable syntax. | |
SmacqGraphContainer * | clone (SmacqGraph *newParent) |
Recursively clone a graph. | |
void | add_clone (SmacqGraph_ptr x, SmacqGraph *newParent) |
Add a clone of a graph to this container. | |
SmacqGraph * | getInvariants (DTS *, SmacqScheduler *, DtsField &) |
Return a subgraph containing only invariants over the specified field. | |
void | optimize () |
Preoptimize graph (unnecessary after init). | |
Combining Graphs | |
A container can have multiple heads and tails and may even be disconnected. | |
void | join (SmacqGraph *) |
Attach the specified graph onto the tail(s) of the graph(s). | |
void | join (SmacqGraphContainer *, bool dofree=false) |
Attach the specified graph onto the tail(s) of the graph(s). | |
void | add_graph (SmacqGraph *) |
Add a new graph head. | |
void | add_graph (SmacqGraphContainer *, bool dofree=false) |
Add new graph heads. | |
void | share_children_of (SmacqGraph *) |
Children of the specified graph will also become children of this. |
|
Recursively clone a graph. The clone is made a child of newParent, unless newParent is NULL. |
|
Return a subgraph containing only invariants over the specified field. The subgraph will contain only boolean filters that are applied to all objects in the graph (e.g. not within an OR) and that do NOT use the specified field. The returned graph is newly allocated. |
|
Print the graph in re-parsable syntax. So much for polymorphism |