Static Value-Flow Analysis
Public Types | Public Member Functions | Public Attributes | Protected Attributes | Friends | List of all members
SVF::GenericGraph< NodeTy, EdgeTy > Class Template Reference

#include <GenericGraph.h>

Inheritance diagram for SVF::GenericGraph< NodeTy, EdgeTy >:
SVF::CDG SVF::CFLGraph SVF::CHGraph SVF::ICFG SVF::PTACallGraph SVF::TCT SVF::VFG SVF::ThreadCallGraph SVF::SVFG SVF::SVFGOPT

Public Types

typedef NodeTy NodeType
 
typedef EdgeTy EdgeType
 
typedef OrderedMap< NodeID, NodeType * > IDToNodeMapTy
 NodeID to GenericNode map. More...
 
typedef IDToNodeMapTy::iterator iterator
 Node Iterators. More...
 
typedef IDToNodeMapTy::const_iterator const_iterator
 

Public Member Functions

 GenericGraph ()
 Constructor. More...
 
virtual ~GenericGraph ()
 Destructor. More...
 
void destroy ()
 Release memory. More...
 
iterator begin ()
 Iterators. More...
 
iterator end ()
 
const_iterator begin () const
 
const_iterator end () const
 
void addGNode (NodeID id, NodeType *node)
 Add a Node. More...
 
NodeTypegetGNode (NodeID id) const
 Get a node. More...
 
bool hasGNode (NodeID id) const
 Has a node. More...
 
void removeGNode (NodeType *node)
 Delete a node. More...
 
u32_t getTotalNodeNum () const
 Get total number of node/edge. More...
 
u32_t getTotalEdgeNum () const
 
void incNodeNum ()
 Increase number of node/edge. More...
 
void incEdgeNum ()
 

Public Attributes

u32_t edgeNum
 total num of node More...
 
u32_t nodeNum
 total num of edge More...
 

Protected Attributes

IDToNodeMapTy IDToNodeMap
 node map More...
 

Friends

class SVFIRWriter
 
class SVFIRReader
 
class GenericGraphWriter< NodeTy, EdgeTy >
 
class GenericGraphReader< NodeTy, EdgeTy >
 

Detailed Description

template<class NodeTy, class EdgeTy>
class SVF::GenericGraph< NodeTy, EdgeTy >

Definition at line 591 of file GenericGraph.h.

Member Typedef Documentation

◆ const_iterator

template<class NodeTy , class EdgeTy >
typedef IDToNodeMapTy::const_iterator SVF::GenericGraph< NodeTy, EdgeTy >::const_iterator

Definition at line 607 of file GenericGraph.h.

◆ EdgeType

template<class NodeTy , class EdgeTy >
typedef EdgeTy SVF::GenericGraph< NodeTy, EdgeTy >::EdgeType

Definition at line 600 of file GenericGraph.h.

◆ IDToNodeMapTy

template<class NodeTy , class EdgeTy >
typedef OrderedMap<NodeID, NodeType*> SVF::GenericGraph< NodeTy, EdgeTy >::IDToNodeMapTy

NodeID to GenericNode map.

Definition at line 602 of file GenericGraph.h.

◆ iterator

template<class NodeTy , class EdgeTy >
typedef IDToNodeMapTy::iterator SVF::GenericGraph< NodeTy, EdgeTy >::iterator

Node Iterators.

Definition at line 606 of file GenericGraph.h.

◆ NodeType

template<class NodeTy , class EdgeTy >
typedef NodeTy SVF::GenericGraph< NodeTy, EdgeTy >::NodeType

Definition at line 599 of file GenericGraph.h.

Constructor & Destructor Documentation

◆ GenericGraph()

template<class NodeTy , class EdgeTy >
SVF::GenericGraph< NodeTy, EdgeTy >::GenericGraph ( )
inline

Constructor.

Definition at line 611 of file GenericGraph.h.

611 : edgeNum(0), nodeNum(0) {}
u32_t edgeNum
total num of node
Definition: GenericGraph.h:702
u32_t nodeNum
total num of edge
Definition: GenericGraph.h:703

◆ ~GenericGraph()

template<class NodeTy , class EdgeTy >
virtual SVF::GenericGraph< NodeTy, EdgeTy >::~GenericGraph ( )
inlinevirtual

Destructor.

Definition at line 614 of file GenericGraph.h.

615  {
616  destroy();
617  }
void destroy()
Release memory.
Definition: GenericGraph.h:620

Member Function Documentation

◆ addGNode()

template<class NodeTy , class EdgeTy >
void SVF::GenericGraph< NodeTy, EdgeTy >::addGNode ( NodeID  id,
NodeType node 
)
inline

Add a Node.

Definition at line 646 of file GenericGraph.h.

647  {
648  IDToNodeMap[id] = node;
649  nodeNum++;
650  }
IDToNodeMapTy IDToNodeMap
node map
Definition: GenericGraph.h:699

◆ begin() [1/2]

template<class NodeTy , class EdgeTy >
iterator SVF::GenericGraph< NodeTy, EdgeTy >::begin ( )
inline

Iterators.

Definition at line 627 of file GenericGraph.h.

628  {
629  return IDToNodeMap.begin();
630  }

◆ begin() [2/2]

template<class NodeTy , class EdgeTy >
const_iterator SVF::GenericGraph< NodeTy, EdgeTy >::begin ( ) const
inline

Definition at line 635 of file GenericGraph.h.

636  {
637  return IDToNodeMap.begin();
638  }

◆ destroy()

template<class NodeTy , class EdgeTy >
void SVF::GenericGraph< NodeTy, EdgeTy >::destroy ( )
inline

Release memory.

Definition at line 620 of file GenericGraph.h.

621  {
622  for (auto &entry : IDToNodeMap)
623  delete entry.second;
624  }

◆ end() [1/2]

template<class NodeTy , class EdgeTy >
iterator SVF::GenericGraph< NodeTy, EdgeTy >::end ( )
inline

Definition at line 631 of file GenericGraph.h.

632  {
633  return IDToNodeMap.end();
634  }

◆ end() [2/2]

template<class NodeTy , class EdgeTy >
const_iterator SVF::GenericGraph< NodeTy, EdgeTy >::end ( ) const
inline

Definition at line 639 of file GenericGraph.h.

640  {
641  return IDToNodeMap.end();
642  }

◆ getGNode()

template<class NodeTy , class EdgeTy >
NodeType* SVF::GenericGraph< NodeTy, EdgeTy >::getGNode ( NodeID  id) const
inline

Get a node.

Definition at line 653 of file GenericGraph.h.

654  {
655  const_iterator it = IDToNodeMap.find(id);
656  assert(it != IDToNodeMap.end() && "Node not found!");
657  return it->second;
658  }
IDToNodeMapTy::const_iterator const_iterator
Definition: GenericGraph.h:607

◆ getTotalEdgeNum()

template<class NodeTy , class EdgeTy >
u32_t SVF::GenericGraph< NodeTy, EdgeTy >::getTotalEdgeNum ( ) const
inline

Definition at line 684 of file GenericGraph.h.

685  {
686  return edgeNum;
687  }

◆ getTotalNodeNum()

template<class NodeTy , class EdgeTy >
u32_t SVF::GenericGraph< NodeTy, EdgeTy >::getTotalNodeNum ( ) const
inline

Get total number of node/edge.

Definition at line 680 of file GenericGraph.h.

681  {
682  return nodeNum;
683  }

◆ hasGNode()

template<class NodeTy , class EdgeTy >
bool SVF::GenericGraph< NodeTy, EdgeTy >::hasGNode ( NodeID  id) const
inline

Has a node.

Definition at line 661 of file GenericGraph.h.

662  {
663  const_iterator it = IDToNodeMap.find(id);
664  return it != IDToNodeMap.end();
665  }

◆ incEdgeNum()

template<class NodeTy , class EdgeTy >
void SVF::GenericGraph< NodeTy, EdgeTy >::incEdgeNum ( )
inline

Definition at line 693 of file GenericGraph.h.

694  {
695  edgeNum++;
696  }

◆ incNodeNum()

template<class NodeTy , class EdgeTy >
void SVF::GenericGraph< NodeTy, EdgeTy >::incNodeNum ( )
inline

Increase number of node/edge.

Definition at line 689 of file GenericGraph.h.

690  {
691  nodeNum++;
692  }

◆ removeGNode()

template<class NodeTy , class EdgeTy >
void SVF::GenericGraph< NodeTy, EdgeTy >::removeGNode ( NodeType node)
inline

Delete a node.

Definition at line 668 of file GenericGraph.h.

669  {
670  assert(node->hasIncomingEdge() == false
671  && node->hasOutgoingEdge() == false
672  && "node which have edges can't be deleted");
673  iterator it = IDToNodeMap.find(node->getId());
674  assert(it != IDToNodeMap.end() && "can not find the node");
675  IDToNodeMap.erase(it);
676  delete node;
677  }
IDToNodeMapTy::iterator iterator
Node Iterators.
Definition: GenericGraph.h:606

Friends And Related Function Documentation

◆ GenericGraphReader< NodeTy, EdgeTy >

template<class NodeTy , class EdgeTy >
friend class GenericGraphReader< NodeTy, EdgeTy >
friend

Definition at line 594 of file GenericGraph.h.

◆ GenericGraphWriter< NodeTy, EdgeTy >

template<class NodeTy , class EdgeTy >
friend class GenericGraphWriter< NodeTy, EdgeTy >
friend

Definition at line 594 of file GenericGraph.h.

◆ SVFIRReader

template<class NodeTy , class EdgeTy >
friend class SVFIRReader
friend

Definition at line 594 of file GenericGraph.h.

◆ SVFIRWriter

template<class NodeTy , class EdgeTy >
friend class SVFIRWriter
friend

Definition at line 593 of file GenericGraph.h.

Member Data Documentation

◆ edgeNum

template<class NodeTy , class EdgeTy >
u32_t SVF::GenericGraph< NodeTy, EdgeTy >::edgeNum

total num of node

Definition at line 702 of file GenericGraph.h.

◆ IDToNodeMap

template<class NodeTy , class EdgeTy >
IDToNodeMapTy SVF::GenericGraph< NodeTy, EdgeTy >::IDToNodeMap
protected

node map

Definition at line 699 of file GenericGraph.h.

◆ nodeNum

template<class NodeTy , class EdgeTy >
u32_t SVF::GenericGraph< NodeTy, EdgeTy >::nodeNum

total num of edge

Definition at line 703 of file GenericGraph.h.


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