CSFIActivity/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 
00039 class ManagerDUActive  {
00040 public:
00041   ManagerDUActive(OA_ptr<Activity::ActivityIRInterface>,
00042                   OA_ptr<OA::DUG::DUGStandard>);
00043   ~ManagerDUActive () {}
00044 
00045   OA_ptr<InterActiveFortran> performAnalysis(OA_ptr<DataFlow::ParamBindings> paramBind,
00046                                              bool activeWithVariedOnly=false);
00047 
00048   void markVaried(bool activeWithVariedOnly);
00049   void markUseful();
00050 
00052   bool isActive(SymHandle sym){ return mDUG->isActive(sym); }
00053 
00054 private:
00055   OA_ptr<Activity::ActivityIRInterface>        mIR;
00056   std::map<ProcHandle,OA_ptr<ActiveStandard> > mActiveMap;
00057   OA_ptr<InterActiveFortran> mInterActiveFortran;
00058 
00059   OA_ptr<DataFlow::ParamBindings>              mParamBind;
00060   OA_ptr<Alias::InterAliasInterface>           mInterAlias;
00061 
00062   OA_ptr<OA::DUG::DUGStandard>                 mDUG;
00063 };
00064 
00065   } // end of Activity namespace
00066 } // end of OA namespace
00067 
00068 #endif