GraphAlgorithms.h

Go to the documentation of this file.
00001 
00002 
00003 #ifndef __RoseBin_GraphAlgorithms__
00004 #define __RoseBin_GraphAlgorithms__
00005 
00006 #include "RoseBin_Graph.h"
00007 
00008 class GraphAlgorithms {
00009 private:
00010 
00011 public:
00012   //remove later!
00013    //typedef rose_hash::unordered_map <std::string, SgGraphNode*,rose_hash::hash_string,rose_hash::eqstr_string> nodeType;
00014   //    typedef rose_graph_node_edge_hash_multimap edgeType;
00015         //      typedef rose_graph_hash_multimap nodeType;
00016 
00017   VirtualBinCFG::AuxiliaryInformation* info;
00018 
00019   //VirtualBinCFG::AuxiliaryInformation* get_bininfo() {return info;}
00020   //void set_bininfo(VirtualBinCFG::AuxiliaryInformation* in) { info=in;}
00021 
00022  GraphAlgorithms(VirtualBinCFG::AuxiliaryInformation* info):
00023 #ifdef _MSC_VER
00024 //#define __builtin_constant_p(exp) (0)
00025 #endif
00026   info(info) {ROSE_ASSERT(info);}
00027   virtual ~GraphAlgorithms() {}
00028 
00029   SgGraphNode* getDefinitionForUsage(RoseBin_Graph* vizzGraph,SgGraphNode* def);
00030 
00031   void getDirectCFGSuccessors(RoseBin_Graph* vizzGraph,SgGraphNode* node, std::vector <SgGraphNode*>& vec );
00032   void getDirectCFGPredecessors(RoseBin_Graph* vizzGraph,SgGraphNode* node, std::vector <SgGraphNode*>& vec );
00033    bool isValidCFGEdge(SgGraphNode* sgNode, SgGraphNode* sgNodeBefore);
00034    bool isDirectCFGEdge(SgGraphNode* sgNode, SgGraphNode* sgNodeBefore);
00035 
00036 };
00037 
00038 
00039 #endif

Generated on Wed May 16 06:18:10 2012 for ROSE by  doxygen 1.4.7