CSFSActivity/ManagerDUActive.hpp

Go to the documentation of this file.
00001 
00017 #ifndef ManagerDUActive_h
00018 #define ManagerDUActive_h
00019 
00020 
00021 // OpenAnalysis headers
00022 #include <OpenAnalysis/Utils/OA_ptr.hpp>
00023 #include <OpenAnalysis/CSFIActivity/DUGStandard.hpp>
00024 #include <OpenAnalysis/Activity/InterActiveFortran.hpp>
00025 #include <OpenAnalysis/IRInterface/ActivityIRInterface.hpp>
00026 
00027 
00028 
00029 //--------------------------------------------------------------------
00030 // OpenAnalysis headers
00031 
00032 namespace OA {
00033   namespace Activity {
00034 
00035   typedef std::pair<IRHandle,SymHandle> IRSymHandle;
00036 
00037 
00041 class ManagerDUActive  {
00042 public:
00043   ManagerDUActive(OA_ptr<Activity::ActivityIRInterface>,
00044                   OA_ptr<OA::DUG::DUGStandard>);
00045   ~ManagerDUActive () {}
00046 
00047   OA_ptr<InterActiveFortran> performAnalysis(
00048     OA_ptr<DataFlow::ParamBindings> paramBind);
00049 
00050   void markVaried();
00051   void markUseful();
00052 
00054   bool isActive(SymHandle sym){ return mDUG->isActive(sym); }
00055 
00056 private:
00057   OA_ptr<Activity::ActivityIRInterface>        mIR;
00058   std::map<ProcHandle,OA_ptr<ActiveStandard> > mActiveMap;
00059   OA_ptr<InterActiveFortran> mInterActiveFortran;
00060 
00061   OA_ptr<DataFlow::ParamBindings>              mParamBind;
00062   OA_ptr<Alias::InterAliasInterface>           mInterAlias;
00063 
00064   OA_ptr<OA::DUG::DUGStandard>                 mDUG;
00065 };
00066 
00067   } // end of Activity namespace
00068 } // end of OA namespace
00069 
00070 #endif