Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Class Members

SmacqGraphContainer Class Reference

#include <SmacqGraph.h>

Collaboration diagram for SmacqGraphContainer:

Collaboration graph
[legend]
List of all members.

Detailed Description

This is a container for an SmacqGraph which may have multiple heads or tails.


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.

SmacqGraphContainerclone (SmacqGraph *newParent)
 Recursively clone a graph.

void add_clone (SmacqGraph_ptr x, SmacqGraph *newParent)
 Add a clone of a graph to this container.

SmacqGraphgetInvariants (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.


Member Function Documentation

SmacqGraphContainer * SmacqGraphContainer::clone SmacqGraph newParent  ) 
 

Recursively clone a graph.

The clone is made a child of newParent, unless newParent is NULL.

SmacqGraph * SmacqGraphContainer::getInvariants DTS ,
SmacqScheduler ,
DtsField
 

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.

std::string SmacqGraphContainer::print_query  ) 
 

Print the graph in re-parsable syntax.

So much for polymorphism


The documentation for this class was generated from the following files:
Generated on Mon Aug 28 23:37:12 2006 for SMACQ by doxygen 1.3.5