00001 #ifndef FECONFIGSPIKE_H 00002 #define FECONFIGSPIKE_H 00003 00004 #include <map> 00005 #include <string> 00006 00007 #include "OnlineDB/EcalCondDB/interface/IODConfig.h" 00008 #include "OnlineDB/EcalCondDB/interface/Tm.h" 00009 #include "OnlineDB/EcalCondDB/interface/DateHandler.h" 00010 00011 class FEConfigSpikeInfo : public IODConfig { 00012 public: 00013 friend class EcalCondDBInterface; 00014 00015 FEConfigSpikeInfo(); 00016 ~FEConfigSpikeInfo(); 00017 00018 // Methods for user data 00019 inline std::string getTable() { return "FE_CONFIG_SPIKE_INFO"; } 00020 00021 inline void setId(int id) { m_ID = id; } 00022 inline int getId() const { return m_ID; } 00023 // for compatibility 00024 void setID(int id) {setId(id);} 00025 int getID() { return getId() ;} 00026 // the tag is already in IODConfig 00027 inline void setVersion(int id) { m_version = id; } 00028 inline int getVersion() const { return m_version; } 00029 00030 00031 Tm getDBTime() const{ return m_db_time;} 00032 void setDBTime(Tm x) { m_db_time=x; } 00033 00034 00035 // Methods from IUniqueDBObject 00036 int fetchID() throw(std::runtime_error); 00037 int fetchNextId() throw(std::runtime_error); 00038 void setByID(int id) throw(std::runtime_error); 00039 void setParameters(std::map<std::string,std::string> my_keys_map); 00040 00041 // operators 00042 inline bool operator==(const FEConfigSpikeInfo &r) const { return (m_ID == r.m_ID ); } 00043 inline bool operator!=(const FEConfigSpikeInfo &r) const { return !(*this == r); } 00044 00045 private: 00046 // User data for this IOV 00047 00048 int m_ID; 00049 Tm m_db_time; 00050 int m_version; 00051 00052 void prepareWrite() throw(std::runtime_error); 00053 void writeDB() throw(std::runtime_error); 00054 void clear(); 00055 void fetchData(FEConfigSpikeInfo * result) throw(std::runtime_error); 00056 void fetchLastData(FEConfigSpikeInfo * result) throw(std::runtime_error); 00057 00058 00059 }; 00060 00061 00062 #endif