Go to the documentation of this file.00001 #ifndef LMFRUNIOV_H
00002 #define LMFRUNIOV_H
00003
00004 #include "OnlineDB/EcalCondDB/interface/LMFUnique.h"
00005 #include "OnlineDB/EcalCondDB/interface/LMFRunTag.h"
00006 #include "OnlineDB/EcalCondDB/interface/LMFSeqDat.h"
00007 #include "OnlineDB/EcalCondDB/interface/LMFTrigType.h"
00008 #include "OnlineDB/EcalCondDB/interface/LMFColor.h"
00009 #include "OnlineDB/EcalCondDB/interface/LMFDefFabric.h"
00010 #include "OnlineDB/EcalCondDB/interface/Tm.h"
00011
00012 #include <string>
00013
00014
00015
00016
00017
00018
00019 class LMFRunIOV : public LMFUnique {
00020 public:
00021 friend class EcalCondDBInterface;
00022
00023 LMFRunIOV();
00024 LMFRunIOV(oracle::occi::Environment* env,
00025 oracle::occi::Connection* conn);
00026 LMFRunIOV(EcalDBConnection *c);
00027 LMFRunIOV(const LMFRunIOV &r);
00028 ~LMFRunIOV();
00029
00030
00031 LMFRunIOV& setLMFRunTag(const LMFRunTag &tag);
00032 LMFRunIOV& setLMFRunTag(int tag_id);
00033 LMFRunIOV& setSequence(LMFSeqDat &seq);
00034 LMFRunIOV& setSequence(LMFSeqDat *seq);
00035 LMFRunIOV& setTriggerType(LMFTrigType &tt);
00036 LMFRunIOV& setTriggerType(int trigType_id);
00037 LMFRunIOV& setTriggerType(std::string trigShortName);
00038 LMFRunIOV& setLmr(int n);
00039 LMFRunIOV& setColor(const LMFColor &c);
00040 LMFRunIOV& setColor(std::string name);
00041 LMFRunIOV& setColor(int color_id);
00042 LMFRunIOV& setColorIndex(int color_index);
00043 LMFRunIOV& setSubRunStart(Tm start);
00044 LMFRunIOV& setSubRunEnd(Tm end);
00045 LMFRunIOV& setSubRunType(const std::string &x);
00046
00047 LMFRunTag getLMFRunTag() const;
00048 LMFSeqDat getSequence() const;
00049 LMFTrigType getTriggerType() const;
00050
00051 int getLmr() const;
00052 std::string getSubRunType() const;
00053 std::string getColorShortName() const;
00054 std::string getColorLongName() const;
00055 LMFColor getLMFColor() const;
00056 LMFColor getColor() const { return getLMFColor(); }
00057 Tm getSubRunStart() const;
00058 Tm getSubRunEnd() const;
00059 Tm getDBInsertionTime() const;
00060 bool isValid();
00061
00062 virtual void dump() const;
00063 virtual LMFRunIOV& operator=(const LMFRunIOV &r);
00064 std::list<LMFRunIOV> fetchBySequence(const LMFSeqDat &s);
00065 std::list<LMFRunIOV> fetchBySequence(const LMFSeqDat &s, int lmr);
00066 std::list<LMFRunIOV> fetchBySequence(const LMFSeqDat &s, int lmr, int type,
00067 int color);
00068 std::list<LMFRunIOV> fetchLastBeforeSequence(const LMFSeqDat &s, int lmr,
00069 int type, int color);
00070
00071
00072 bool operator==(const LMFRunIOV &m) const
00073 {
00074 return ( getLMFRunTag() == m.getLMFRunTag() &&
00075 getSequence() == m.getSequence() &&
00076 getLmr() == m.getLmr() &&
00077 getLMFColor() == m.getLMFColor() &&
00078 getTriggerType() == m.getTriggerType() &&
00079 getSubRunType() == m.getSubRunType() &&
00080 getSubRunStart() == m.getSubRunStart() &&
00081 getSubRunEnd() == m.getSubRunEnd() );
00082 }
00083
00084 bool operator!=(const LMFRunIOV &m) const { return !(*this == m); }
00085
00086 std::string fetchIdSql(Statement *stmt);
00087 std::string setByIDSql(Statement *stmt, int id);
00088 std::string writeDBSql(Statement *stmt);
00089 void getParameters(ResultSet *rset);
00090
00091 private:
00092 void checkFabric();
00093 void initialize();
00094 std::list<LMFRunIOV> fetchBySequence(std::vector<int> par,
00095 const std::string &sql,
00096 const std::string &method)
00097 throw (std::runtime_error);
00098
00099 LMFDefFabric *_fabric;
00100 };
00101
00102 #endif