InterReachConsts.hpp

Go to the documentation of this file.
00001 
00016 #ifndef InterReachConsts_H
00017 #define InterReachConsts_H
00018 
00019 #include <OpenAnalysis/ReachConsts/Interface.hpp>
00020 #include <OpenAnalysis/ReachConsts/ReachConstsStandard.hpp>
00021 #include <OpenAnalysis/OABase/Annotation.hpp>
00022 #include <map>
00023 
00024 namespace OA {
00025   namespace ReachConsts {
00026 
00027     class InterReachConsts : public virtual Annotation {
00028   public:
00029     InterReachConsts() {}
00030     virtual ~InterReachConsts() {}
00031 
00033     OA_ptr<ReachConsts::Interface> getReachConsts(ProcHandle proc);
00034         
00035     //*****************************************************************
00036     // Annotation Interface
00037     //*****************************************************************
00038     void output(OA::IRHandlesIRInterface& ir);
00039 
00040     //*****************************************************************
00041     // Output
00042     //*****************************************************************
00044     void dump(std::ostream& os, OA_ptr<IRHandlesIRInterface> ir);
00045    
00046     //*****************************************************************
00047     // Construction methods 
00048     //*****************************************************************
00049 
00051     void mapProcToReachConsts(ProcHandle proc, 
00052                               OA_ptr<ReachConsts::Interface> rcs)
00053       { mProcToReachConstsMap[proc] = rcs; }
00054 
00056     //void mapCallToDep(ExprHandle call, OA_ptr<DepDFSet> dep)
00057     //  { mCallToDepDFSet[call] = dep; }
00058 
00059   private:
00060   std::map<ProcHandle,OA_ptr<ReachConsts::Interface> > 
00061       mProcToReachConstsMap;
00062   //std::map<ExprHandle,OA_ptr<DepDFSet> > mCallToDepDFSet;
00063 
00064 
00065 };
00066 
00067   } // end of Activity namespace
00068 } // end of OA namespace
00069 
00070 #endif
00071