Template Class VirtualGraphCreateTemplate

Contents

Template Class VirtualGraphCreateTemplate#

Nested Relationships#

Nested Types#

Inheritance Relationships#

Base Types#

Derived Types#

Class Documentation#

template<class NodeImpl, class EdgeImpl>
class VirtualGraphCreateTemplate : public MultiGraphCreate, public GraphAccessTemplate<NodeImpl, EdgeImpl>#

Subclassed by CFGImplTemplate< Node, CFGEdgeImpl >, CFGImplTemplate< CFGNodeImpl, CFGEdgeImpl >, CFGImplTemplate< ReachingDefNode, CFGEdgeImpl >, DefUseChain< DefUseChainNode >, DefUseChain< ValuePropagateNode >, DepInfoGraphCreate< CompSliceDepGraphNode >, DepInfoGraphCreate< DepCompAstRefGraphNode >, DepInfoGraphCreate< LoopTreeDepGraphNode >

Public Types

typedef NodeImpl Node#
typedef EdgeImpl Edge#
typedef GraphAccess::EdgeDirection EdgeDirection#
typedef GraphAccessTemplate<NodeImpl, EdgeImpl>::NodeIterator NodeIterator#
typedef GraphAccessTemplate<NodeImpl, EdgeImpl>::EdgeIterator EdgeIterator#

Public Functions

virtual ~VirtualGraphCreateTemplate()#
VirtualGraphCreateTemplate(BaseGraphCreate *_impl = 0)#
inline BaseGraphCreate *GetBaseGraph()#
BaseGraphNode *AddNode(Node *idNode)#
BaseGraphEdge *AddEdge(Node *idSrc, Node *idSnk, Edge *idEdge)#
void AddNodeSet(typename GraphAccessTemplate<NodeImpl, EdgeImpl>::NodeIterator iter)#
void AddGraph(const GraphAccessTemplate<NodeImpl, EdgeImpl> *dg)#
bool DeleteNode(Node *n)#
bool DeleteEdge(Edge *e)#
void MoveEdgeEndPoint(Edge *e, EdgeDirection dir, Node *n)#
BaseGraphNode *GetBaseNode(const Node *id) const#
BaseGraphEdge *GetBaseEdge(const Edge *id) const#
Node *GetVirtualNode(const BaseGraphNode *base) const#
Edge *GetVirtualEdge(const BaseGraphEdge *base) const#
inline bool IsBaseNode(const BaseGraphNode *n) const#
inline bool IsBaseEdge(const BaseGraphEdge *e) const#
inline virtual bool ContainNode(const Node *n) const#
inline virtual bool ContainEdge(const Edge *e) const#
virtual Node *GetEdgeEndPoint(const Edge *e, EdgeDirection dir) const#
inline virtual EdgeIterator GetNodeEdgeIterator(const Node *id, EdgeDirection dir) const#
inline virtual NodeIterator GetNodeIterator() const#
class EdgeIteratorImpl : public IteratorImpl<EdgeImpl*>#

Public Functions

inline EdgeIteratorImpl(const EdgeIteratorImpl &that)#
inline EdgeIteratorImpl &operator=(const EdgeIteratorImpl &that)#
inline virtual void Reset()#
inline virtual void Advance()#
inline void operator++()#
inline void operator++(int)#
inline virtual Edge *Current() const#
inline Edge *operator*() const#
inline virtual IteratorImpl<EdgeImpl*> *Clone() const#
inline virtual bool ReachEnd() const#

Friends

friend class VirtualGraphCreateTemplate< NodeImpl, EdgeImpl >
class NodeIteratorImpl : public IteratorImpl<NodeImpl*>#

Public Functions

inline NodeIteratorImpl(const NodeIteratorImpl &that)#
inline NodeIteratorImpl &operator=(const NodeIteratorImpl &that)#
inline virtual void Reset()#
inline virtual void Advance()#
inline void operator++()#
inline void operator++(int)#
inline virtual Node *Current() const#
inline Node *operator*() const#
inline virtual bool ReachEnd() const#
inline virtual IteratorImpl<NodeImpl*> *Clone() const#

Friends

friend class VirtualGraphCreateTemplate< NodeImpl, EdgeImpl >