Static Value-Flow Analysis
Public Member Functions | Private Attributes | List of all members
SVF::ICFGReader Class Reference

#include <SVFFileSystem.h>

Inheritance diagram for SVF::ICFGReader:
SVF::GenericGraphReader< NodeTy, EdgeTy >

Public Member Functions

template<typename NodeCreator , typename EdgeCreator , typename SVFLoopCreator >
void createObjs (const cJSON *icfgJson, NodeCreator nodeCreator, EdgeCreator edgeCreator, SVFLoopCreator svfLoopCreator)
 
SVFLoopgetSVFLoopPtr (size_t id) const
 
template<typename NodeFiller , typename EdgeFiller , typename LoopFiller >
void fillObjs (NodeFiller nodeFiller, EdgeFiller edgeFiller, LoopFiller loopFiller)
 
- Public Member Functions inherited from SVF::GenericGraphReader< NodeTy, EdgeTy >
template<typename NodeCreator , typename EdgeCreator >
void createObjs (const cJSON *graphJson, NodeCreator nodeCreator, EdgeCreator edgeCreator)
 
NodeTy * getNodePtr (unsigned id) const
 
EdgeTy * getEdgePtr (unsigned id) const
 
template<typename NodeFiller , typename EdgeFiller >
void fillObjs (NodeFiller nodeFiller, EdgeFiller edgeFiller)
 
void saveToGenericGraph (GenericGraph< NodeTy, EdgeTy > *graph) const
 
const cJSONgetFieldJson () const
 

Private Attributes

ReaderPtrPool< SVFLoopsvfLoopPool
 

Additional Inherited Members

- Protected Attributes inherited from SVF::GenericGraphReader< NodeTy, EdgeTy >
const cJSONgraphFieldJson = nullptr
 

Detailed Description

Definition at line 935 of file SVFFileSystem.h.

Member Function Documentation

◆ createObjs()

template<typename NodeCreator , typename EdgeCreator , typename SVFLoopCreator >
void SVF::ICFGReader::createObjs ( const cJSON icfgJson,
NodeCreator  nodeCreator,
EdgeCreator  edgeCreator,
SVFLoopCreator  svfLoopCreator 
)
inline

Definition at line 944 of file SVFFileSystem.h.

946  {
947  GenericICFGReader::createObjs(icfgJson, nodeCreator, edgeCreator);
948 
949  const cJSON* const allSvfLoop = graphFieldJson;
950  CHECK_JSON_KEY(allSvfLoop);
951  svfLoopPool.createObjs(graphFieldJson, svfLoopCreator);
952  graphFieldJson = allSvfLoop->next;
953  }
#define CHECK_JSON_KEY(obj)
Definition: SVFFileSystem.h:96
const cJSON * graphFieldJson
void createObjs(const cJSON *graphJson, NodeCreator nodeCreator, EdgeCreator edgeCreator)
ReaderPtrPool< SVFLoop > svfLoopPool
Definition: cJSON.h:104
struct cJSON * next
Definition: cJSON.h:106

◆ fillObjs()

template<typename NodeFiller , typename EdgeFiller , typename LoopFiller >
void SVF::ICFGReader::fillObjs ( NodeFiller  nodeFiller,
EdgeFiller  edgeFiller,
LoopFiller  loopFiller 
)
inline

Definition at line 961 of file SVFFileSystem.h.

963  {
964  GenericICFGReader::fillObjs(nodeFiller, edgeFiller);
965  svfLoopPool.fillObjs(loopFiller);
966  }
void fillObjs(NodeFiller nodeFiller, EdgeFiller edgeFiller)

◆ getSVFLoopPtr()

SVFLoop* SVF::ICFGReader::getSVFLoopPtr ( size_t  id) const
inline

Definition at line 955 of file SVFFileSystem.h.

956  {
957  return svfLoopPool.getPtr(id);
958  }

Member Data Documentation

◆ svfLoopPool

ReaderPtrPool<SVFLoop> SVF::ICFGReader::svfLoopPool
private

Definition at line 940 of file SVFFileSystem.h.


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