Static Value-Flow Analysis
Loading...
Searching...
No Matches
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::BasicBlockGraph SVF::CDG SVF::CFLGraph SVF::CHGraph SVF::CallGraph SVF::ICFG SVF::TCT SVF::VFG

Public Types

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

Public Member Functions

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

Public Attributes

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

Protected Attributes

IDToNodeMapTy IDToNodeMap
 node map
 

Friends

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

Detailed Description

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

Definition at line 337 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 351 of file GenericGraph.h.

◆ EdgeType

Definition at line 344 of file GenericGraph.h.

◆ IDToNodeMapTy

NodeID to GenericNode map.

Definition at line 346 of file GenericGraph.h.

◆ iterator

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

Node Iterators.

Definition at line 350 of file GenericGraph.h.

◆ NodeType

Definition at line 343 of file GenericGraph.h.

Constructor & Destructor Documentation

◆ GenericGraph()

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

Constructor.

Definition at line 355 of file GenericGraph.h.

355: edgeNum(0), nodeNum(0) {}
u32_t edgeNum
total num of node
u32_t nodeNum
total num of edge

◆ ~GenericGraph()

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

Destructor.

Definition at line 358 of file GenericGraph.h.

359 {
360 destroy();
361 }
void destroy()
Release memory.

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 390 of file GenericGraph.h.

391 {
392 IDToNodeMap[id] = node;
393 nodeNum++;
394 }
IDToNodeMapTy IDToNodeMap
node map

◆ begin() [1/2]

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

Iterators.

Definition at line 371 of file GenericGraph.h.

372 {
373 return IDToNodeMap.begin();
374 }

◆ begin() [2/2]

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

Definition at line 379 of file GenericGraph.h.

380 {
381 return IDToNodeMap.begin();
382 }

◆ destroy()

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

Release memory.

Definition at line 364 of file GenericGraph.h.

365 {
366 for (auto &entry : IDToNodeMap)
367 delete entry.second;
368 }
llvm::IRBuilder IRBuilder
Definition BasicTypes.h:74

◆ end() [1/2]

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

Definition at line 375 of file GenericGraph.h.

376 {
377 return IDToNodeMap.end();
378 }

◆ end() [2/2]

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

Definition at line 383 of file GenericGraph.h.

384 {
385 return IDToNodeMap.end();
386 }

◆ getGNode()

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

Get a node.

Definition at line 397 of file GenericGraph.h.

398 {
399 const_iterator it = IDToNodeMap.find(id);
400 assert(it != IDToNodeMap.end() && "Node not found!");
401 return it->second;
402 }
IDToNodeMapTy::const_iterator const_iterator

◆ getTotalEdgeNum()

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

Definition at line 428 of file GenericGraph.h.

429 {
430 return edgeNum;
431 }

◆ getTotalNodeNum()

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

Get total number of node/edge.

Definition at line 424 of file GenericGraph.h.

425 {
426 return nodeNum;
427 }

◆ hasGNode()

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

Has a node.

Definition at line 405 of file GenericGraph.h.

406 {
407 const_iterator it = IDToNodeMap.find(id);
408 return it != IDToNodeMap.end();
409 }

◆ incEdgeNum()

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

Definition at line 437 of file GenericGraph.h.

438 {
439 edgeNum++;
440 }

◆ incNodeNum()

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

Increase number of node/edge.

Definition at line 433 of file GenericGraph.h.

434 {
435 nodeNum++;
436 }

◆ removeGNode()

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

Delete a node.

Definition at line 412 of file GenericGraph.h.

413 {
414 assert(node->hasIncomingEdge() == false
415 && node->hasOutgoingEdge() == false
416 && "node which have edges can't be deleted");
417 iterator it = IDToNodeMap.find(node->getId());
418 assert(it != IDToNodeMap.end() && "can not find the node");
419 IDToNodeMap.erase(it);
420 delete node;
421 }
IDToNodeMapTy::iterator iterator
Node Iterators.

Friends And Related Symbol Documentation

◆ GenericGraphReader< NodeTy, EdgeTy >

Definition at line 326 of file GenericGraph.h.

◆ GenericGraphWriter< NodeTy, EdgeTy >

Definition at line 326 of file GenericGraph.h.

Member Data Documentation

◆ edgeNum

total num of node

Definition at line 446 of file GenericGraph.h.

◆ IDToNodeMap

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

node map

Definition at line 443 of file GenericGraph.h.

◆ nodeNum

total num of edge

Definition at line 447 of file GenericGraph.h.


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