InterSideEffectInterface.hpp

Go to the documentation of this file.
00001 
00016 #ifndef InterSideEffectInterface_hpp
00017 #define InterSideEffectInterface_hpp
00018 
00019 #include <OpenAnalysis/Utils/OA_ptr.hpp>
00020 #include <OpenAnalysis/IRInterface/IRHandles.hpp>
00021 #include <OpenAnalysis/Location/Locations.hpp>
00022 #include <OpenAnalysis/Alias/Interface.hpp>
00023 #include <OpenAnalysis/SideEffect/SideEffectInterface.hpp>
00024 
00025 
00026 namespace OA {
00027   namespace SideEffect {
00028 
00029 typedef ProcHandleIterator ProcIterator;
00030 
00032 class InterSideEffectInterface {
00033   public:
00034     InterSideEffectInterface() {}
00035     virtual ~InterSideEffectInterface() {}
00036 
00039     virtual OA_ptr<ProcIterator> getKnownProcIterator() = 0;
00040 
00041     //*************************************************************************
00042     
00047     virtual OA_ptr<LocIterator> getLMODIterator(CallHandle p) = 0;
00048 
00052     virtual OA_ptr<LocIterator> getMODIterator(CallHandle p) = 0;
00053 
00058     virtual OA_ptr<LocIterator> getLDEFIterator(CallHandle p) = 0;
00059 
00063     virtual OA_ptr<LocIterator> getDEFIterator(CallHandle p) = 0;
00064 
00070     virtual OA_ptr<LocIterator> getLUSEIterator(CallHandle p) = 0;
00071 
00075     virtual OA_ptr<LocIterator> getUSEIterator(CallHandle p) = 0;
00076 
00081     virtual OA_ptr<LocIterator> getLREFIterator(CallHandle p) = 0;
00082 
00086     virtual OA_ptr<LocIterator> getREFIterator(CallHandle p) = 0;
00087 
00088     //*************************************************************************
00089     
00094     virtual OA_ptr<LocIterator> getLMODIterator(ProcHandle p) = 0;
00095 
00099     virtual OA_ptr<LocIterator> getMODIterator(ProcHandle p) = 0;
00100 
00105     virtual OA_ptr<LocIterator> getLDEFIterator(ProcHandle p) = 0;
00106 
00110     virtual OA_ptr<LocIterator> getDEFIterator(ProcHandle p) = 0;
00111 
00117     virtual OA_ptr<LocIterator> getLUSEIterator(ProcHandle p) = 0;
00118 
00122     virtual OA_ptr<LocIterator> getUSEIterator(ProcHandle p) = 0;
00123 
00128     virtual OA_ptr<LocIterator> getLREFIterator(ProcHandle p) = 0;
00129 
00133     virtual OA_ptr<LocIterator> getREFIterator(ProcHandle p) = 0;
00134 
00135     //*****************************************************************
00136     // Output
00137     //*****************************************************************
00138 
00139     virtual void dump(std::ostream& os, OA_ptr<IRHandlesIRInterface> ir) = 0;
00140 
00141 };
00142 
00143 
00144   } // end of SideEffect namespace
00145 } // end of OA namespace
00146 
00147 #endif
00148 

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