00001 #ifndef DCSRADONLEVELFINDER_H 00002 #define DCSRADONLEVELFINDER_H 00003 00059 #include "Conventions/Detector.h" 00060 #include "DatabaseInterface/DbiResultPtr.h" 00061 #include "DcsUser/Dcs_Radon_Level.h" 00062 #include "Validity/VldContext.h" 00063 00064 class DbiValidityRec; 00065 00066 class DcsRadonLevelFinder 00067 { 00068 00069 public: 00070 // Constructors and destructors. 00071 DcsRadonLevelFinder(); 00072 DcsRadonLevelFinder(VldTimeStamp start, VldTimeStamp end, Detector::Detector_t detector); 00073 virtual ~DcsRadonLevelFinder(){ }; 00074 00075 static DcsRadonLevelFinder* Instance(); // Access to the Singleton for general use. 00076 00077 // Getters - GetRadonLevel may cause new query to be performed so is non-const. 00078 00079 const std::vector<const Dcs_Radon_Level*> GetRadonLevelTable() const {return fRadonLevelTable;} 00080 Float_t GetRadonLevel(VldContext context, Int_t numPoints = 0); 00081 Float_t GetRadonLevel(VldTimeStamp date, Detector::Detector_t detector, Int_t numPoints = 0); 00082 Bool_t HasGoodData(VldTimeStamp date, Detector::Detector_t detector) const; 00083 00084 // Setters 00085 void NewQuery(VldTimeStamp start, VldTimeStamp end, Detector::Detector_t detector); 00086 00087 private: 00088 00089 // Data members 00090 00091 // The singleton version 00092 static DcsRadonLevelFinder* fgDcsRadonLevelFinder; 00093 00094 // Current table of results both as query result and time ordered. 00095 DbiResultPtr<Dcs_Radon_Level>fQueryResults; 00096 std::vector<const Dcs_Radon_Level*> fRadonLevelTable; 00097 // Detector for current of table of results 00098 Detector::Detector_t fDetector; 00099 00100 // true if this is the singleton version, in which case GetRadonLevel may cause new data to be read. 00101 Bool_t IsGlobalVersion; 00102 00103 ClassDef(DcsRadonLevelFinder,0) 00104 00105 }; 00106 00107 #endif // DCSRADONLEVELFINDER_H
1.3.9.1