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
1.7.1