InterSideEffectIRInterface.hpp

Go to the documentation of this file.
00001 
00015 #ifndef InterSideEffectIRInterface_h
00016 #define InterSideEffectIRInterface_h
00017 
00018 #include <OpenAnalysis/IRInterface/SideEffectIRInterface.hpp>
00019 #include <OpenAnalysis/IRInterface/CallGraphDFProblemIRInterface.hpp>
00020 #include <OpenAnalysis/SideEffect/SideEffectStandard.hpp>
00021 
00022 namespace OA {
00023 
00024   namespace SideEffect {
00025 
00026 
00032 class InterSideEffectIRInterface : public virtual SideEffectIRInterface,
00033                            public virtual DataFlow::CallGraphDFProblemIRInterface 
00034 {
00035  public:
00036   InterSideEffectIRInterface() { }
00037   virtual ~InterSideEffectIRInterface() { }
00038 
00048   virtual OA_ptr<SideEffect::SideEffectStandard> 
00049       getSideEffect(ProcHandle caller, SymHandle calleesym) = 0;
00050 
00051   // need all for full override, just want ProcHandle and can't inherit
00052   // from IRHandlesIRInterface as well as other two
00053   virtual std::string toString(const ProcHandle h) = 0;
00054   virtual std::string toString(const StmtHandle h) = 0;
00055   virtual std::string toString(const ExprHandle h) = 0;
00056   virtual std::string toString(const OpHandle h) = 0;
00057   virtual std::string toString(const MemRefHandle h) = 0;
00058   virtual std::string toString(const SymHandle h) = 0;
00059   virtual std::string toString(const ConstSymHandle h) = 0;
00060   virtual std::string toString(const ConstValHandle h) = 0;
00061 };  
00062 
00063   } // end of namespace SideEffect
00064 } // end of namespace OA
00065 
00066 #endif 

Generated on Sat Oct 31 05:21:22 2009 for OpenAnalysis by  doxygen 1.6.1