OA::DGraph::DGraphImplement Class Reference

#include <DGraphImplement.hpp>

Inheritance diagram for OA::DGraph::DGraphImplement:

Inheritance graph
[legend]
Collaboration diagram for OA::DGraph::DGraphImplement:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 DGraphImplement ()
 ~DGraphImplement ()
OA_ptr< NodesIteratorInterfacegetNodesIterator () const
OA_ptr< NodesIteratorInterfacegetEntryNodesIterator () const
OA_ptr< NodesIteratorInterfacegetExitNodesIterator () const
OA_ptr< NodesIteratorInterfacegetReversePostDFSIterator (DGraph::DGraphEdgeDirection pOrient)
OA_ptr< NodesIteratorInterfacegetDFSIterator (OA_ptr< NodeInterface > n)
OA_ptr< EdgesIteratorInterfacegetEdgesIterator () const
void addNode (OA_ptr< NodeInterface > n)
void addEdge (OA_ptr< EdgeInterface > e)
void removeEdge (OA_ptr< EdgeInterface > e)
void removeNode (OA_ptr< NodeInterface > n)
int getNumNodes ()
int getNumEdges ()
void output (IRHandlesIRInterface &ir)
virtual std::string getGraphName ()
OA_ptr< NodeInterfacegetExprGraphRootNode () const

Private Member Functions

void createDFSList (OA_ptr< NodeInterface > pNode, OA_ptr< std::list< OA_ptr< NodeInterface > > > pList)
OA_ptr< std::list< OA_ptr
< NodeInterface > > > 
create_entry_list () const
 returns a list of DGraph NodeInterface's that do not have incoming
OA_ptr< std::list< OA_ptr
< NodeInterface > > > 
create_exit_list () const
OA_ptr< std::list< OA_ptr
< NodeInterface > > > 
create_reverse_post_order_list (DGraphEdgeDirection pOrient)
void reverse_postorder_recurse (OA_ptr< NodeInterface > pNode, DGraphEdgeDirection pOrient, OA_ptr< std::list< OA_ptr< NodeInterface > > > pList)

Private Attributes

std::map< OA_ptr
< NodeInterface >, bool > 
mVisitMap
OA_ptr< std::set< OA_ptr
< NodeInterface > > > 
mNodeSet
OA_ptr< std::set< OA_ptr
< EdgeInterface > > > 
mEdgeSet

Friends

class NodesIteratorImplement


Detailed Description

Definition at line 204 of file DGraphImplement.hpp.


Constructor & Destructor Documentation

OA::DGraph::DGraphImplement::DGraphImplement (  ) 

Definition at line 688 of file DGraphImplement.cpp.

References mEdgeSet, and mNodeSet.

OA::DGraph::DGraphImplement::~DGraphImplement (  )  [inline]

Definition at line 209 of file DGraphImplement.hpp.


Member Function Documentation

void OA::DGraph::DGraphImplement::addEdge ( OA_ptr< EdgeInterface e  )  [virtual]

Implements OA::DGraph::DGraphInterface.

Definition at line 281 of file DGraphImplement.cpp.

References addNode(), OA::debug, OA::OA_ptr< T >::dump(), mEdgeSet, and mNodeSet.

Referenced by OA::CFG::CFG::connect(), and OA::CallGraph::CallGraph::connect().

Here is the call graph for this function:

void OA::DGraph::DGraphImplement::addNode ( OA_ptr< NodeInterface n  )  [virtual]

OA_ptr< std::list< OA_ptr< NodeInterface > > > OA::DGraph::DGraphImplement::create_entry_list (  )  const [private]

returns a list of DGraph NodeInterface's that do not have incoming

Definition at line 325 of file DGraphImplement.cpp.

References getNodesIterator().

Referenced by getEntryNodesIterator().

Here is the call graph for this function:

OA_ptr< std::list< OA_ptr< NodeInterface > > > OA::DGraph::DGraphImplement::create_exit_list (  )  const [private]

Definition at line 343 of file DGraphImplement.cpp.

References OA::debug, OA::OA_ptr< T >::dump(), and getNodesIterator().

Referenced by getExitNodesIterator().

Here is the call graph for this function:

OA_ptr< std::list< OA_ptr< NodeInterface > > > OA::DGraph::DGraphImplement::create_reverse_post_order_list ( DGraphEdgeDirection  pOrient  )  [private]

void OA::DGraph::DGraphImplement::createDFSList ( OA_ptr< NodeInterface pNode,
OA_ptr< std::list< OA_ptr< NodeInterface > > >  pList 
) [private]

Definition at line 144 of file DGraphImplement.cpp.

References mVisitMap, and OA::n.

Referenced by getDFSIterator().

OA_ptr< NodesIteratorInterface > OA::DGraph::DGraphImplement::getDFSIterator ( OA_ptr< NodeInterface n  )  [virtual]

commented out by PLM 09/13/06 nodeIter = getEntryNodesIterator(); for ( ; nodeIter->isValid(); (*nodeIter)++ ) { OA_ptr<NodeInterface> node = nodeIter->current(); createDFSList(node,templist); }

Implements OA::DGraph::DGraphInterface.

Definition at line 172 of file DGraphImplement.cpp.

References createDFSList(), getNodesIterator(), mVisitMap, and NodesIteratorImplement.

Referenced by OA::CallGraph::CallGraph::getCallGraphDFSIterator(), OA::CFG::CFG::getCFGDFSIterator(), and OA::ICFG::ICFG::getICFGDFSIterator().

Here is the call graph for this function:

OA_ptr< EdgesIteratorInterface > OA::DGraph::DGraphImplement::getEdgesIterator (  )  const [virtual]

OA_ptr< NodesIteratorInterface > OA::DGraph::DGraphImplement::getEntryNodesIterator (  )  const [virtual]

OA_ptr< NodesIteratorInterface > OA::DGraph::DGraphImplement::getExitNodesIterator (  )  const [virtual]

OA_ptr< NodeInterface > OA::DGraph::DGraphImplement::getExprGraphRootNode (  )  const

Definition at line 696 of file DGraphImplement.cpp.

References getExitNodesIterator(), and OA::OA_ptr< T >::ptrEqual().

Here is the call graph for this function:

std::string OA::DGraph::DGraphImplement::getGraphName (  )  [virtual]

Definition at line 313 of file DGraphImplement.cpp.

Referenced by output().

OA_ptr< NodesIteratorInterface > OA::DGraph::DGraphImplement::getNodesIterator (  )  const [virtual]

int OA::DGraph::DGraphImplement::getNumEdges (  )  [inline, virtual]

Implements OA::DGraph::DGraphInterface.

Definition at line 228 of file DGraphImplement.hpp.

References mEdgeSet.

int OA::DGraph::DGraphImplement::getNumNodes (  )  [inline, virtual]

Implements OA::DGraph::DGraphInterface.

Definition at line 227 of file DGraphImplement.hpp.

References mNodeSet.

OA_ptr< NodesIteratorInterface > OA::DGraph::DGraphImplement::getReversePostDFSIterator ( DGraph::DGraphEdgeDirection  pOrient  )  [virtual]

void OA::DGraph::DGraphImplement::output ( IRHandlesIRInterface ir  )  [virtual]

Implements OA::Annotation.

Reimplemented in OA::CallGraph::CallGraph, and OA::ICFG::ICFG.

Definition at line 225 of file DGraphImplement.cpp.

References OA::debug, getEdgesIterator(), getGraphName(), getNodesIterator(), and OA::Annotation::sOutBuild.

Here is the call graph for this function:

void OA::DGraph::DGraphImplement::removeEdge ( OA_ptr< EdgeInterface e  ) 

Remove this edge from the BaseGraph as well as from the list of incoming or outgoing edges of the two nodes that form this edge.

Definition at line 36 of file DGraphImplement.cpp.

References mEdgeSet.

Referenced by OA::CFG::CFG::disconnect(), and OA::CallGraph::CallGraph::disconnect().

void OA::DGraph::DGraphImplement::removeNode ( OA_ptr< NodeInterface n  ) 

Remove the given node and all the incoming and outgoing edges incident on it.

Definition at line 51 of file DGraphImplement.cpp.

References mEdgeSet, and mNodeSet.

Referenced by OA::CFG::CFG::disconnect().

void OA::DGraph::DGraphImplement::reverse_postorder_recurse ( OA_ptr< NodeInterface pNode,
DGraphEdgeDirection  pOrient,
OA_ptr< std::list< OA_ptr< NodeInterface > > >  pList 
) [private]

Definition at line 412 of file DGraphImplement.cpp.

References OA::debug, OA::DGraph::DEdgeOrg, OA::OA_ptr< T >::dump(), mVisitMap, and OA::n.

Referenced by create_reverse_post_order_list().

Here is the call graph for this function:


Friends And Related Function Documentation

friend class NodesIteratorImplement [friend]


Member Data Documentation


The documentation for this class was generated from the following files:

Generated on Fri Jul 24 05:41:26 2009 for OpenADFortTk (extended to Open64) by  doxygen 1.5.7.1