00001 // $Header: /bes/bes/BossCvs/Calibration/calibUtil/src/dbIntegrity/Coverage.h,v 1.1.1.1 2005/10/17 06:12:26 maqm Exp $ 00002 #ifndef CALIBUTIL_COVERAGE_H 00003 #define CALIBUTIL_COVERAGE_H 00004 00007 #include <vector> 00008 #include <string> 00009 #include "facilities/Timestamp.h" 00010 00011 namespace rdbModel { 00012 class Rdb; 00013 class Connection; 00014 } 00015 namespace calibUtil { 00016 class Metadata; 00017 } 00018 00026 class Coverage { 00027 public: 00028 Coverage(calibUtil::Metadata* meta, 00029 const std::string& instr, const std::string& flavor, 00030 const std::string& level, const facilities::Timestamp& ts); 00031 00035 bool expandTypes(std::string& nickname, std::vector<std::string>& types); 00036 00037 ~Coverage() {}; 00038 00039 // raison d'etre of this class. Examine all db rows of type @calibType 00040 // and also matching flavor, instrument, level, etc., to see if there 00041 // is precisely one valid an any one time (with some tolerance for 00042 // small overlap) 00043 unsigned checkType(std::string calibtype); 00044 void setOverlap(unsigned seconds) {m_overlap = seconds;} 00045 private: 00046 rdbModel::Connection* m_conn; 00047 rdbModel::Rdb* m_rdb; 00048 std::string m_instr; 00049 std::string m_flavor; 00050 std::string m_level; 00051 std::string m_calib; 00052 00053 facilities::Timestamp m_ts; 00054 std::string m_table; 00055 unsigned m_overlap; 00056 std::vector<std::string> m_selects; 00057 std::vector<std::string> m_orderBy; 00058 00059 }; 00060 #endif