CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes | Friends
FEConfigLUTInfo Class Reference

#include <FEConfigLUTInfo.h>

Inheritance diagram for FEConfigLUTInfo:
IODConfig IDBObject

Public Member Functions

 FEConfigLUTInfo ()
 
int fetchID () noexcept(false)
 
int fetchNextId () noexcept(false)
 
Tm getDBTime () const
 
int getId () const
 
int getID ()
 
int getNumberOfGroups () const
 
std::string getTable ()
 
int getVersion () const
 
bool operator!= (const FEConfigLUTInfo &r) const
 
bool operator== (const FEConfigLUTInfo &r) const
 
void setByID (int id) noexcept(false)
 
void setDBTime (const Tm &x)
 
void setId (int id)
 
void setID (int id)
 
void setNumberOfGroups (int iov_id)
 
void setParameters (const std::map< std::string, std::string > &my_keys_map)
 
void setVersion (int id)
 
 ~FEConfigLUTInfo ()
 
- Public Member Functions inherited from IODConfig
std::string getConfigTag ()
 
void setConfigTag (std::string x)
 
- Public Member Functions inherited from IDBObject
oracle::occi::Connection * getConn () const
 
oracle::occi::Environment * getEnv () const
 
void setConnection (oracle::occi::Environment *env, oracle::occi::Connection *conn)
 
virtual ~IDBObject ()
 

Private Member Functions

void clear ()
 
void fetchData (FEConfigLUTInfo *result) noexcept(false)
 
void fetchLastData (FEConfigLUTInfo *result) noexcept(false)
 
void prepareWrite () noexcept(false)
 
void writeDB () noexcept(false)
 

Private Attributes

Tm m_db_time
 
int m_ID
 
int m_iov_id
 
int m_version
 

Friends

class EcalCondDBInterface
 

Additional Inherited Members

- Public Types inherited from IODConfig
typedef oracle::occi::Clob Clob
 
typedef oracle::occi::SQLException SQLException
 
typedef oracle::occi::Statement Statement
 
typedef oracle::occi::Stream Stream
 
- Public Attributes inherited from IODConfig
std::string m_config_tag
 
- Static Public Attributes inherited from IDBObject
static int const ECALDB_NROWS =1024
 
- Protected Member Functions inherited from IODConfig
void checkPrepare () noexcept(false)
 
void createReadStatement () noexcept(false)
 
void populateClob (Clob &clob, std::string fname, unsigned int bufsize) noexcept(false)
 
unsigned char * readClob (Clob &clob, int size) noexcept(false)
 
void setPrefetchRowCount (int ncount) noexcept(false)
 
void terminateReadStatement () noexcept(false)
 
void terminateWriteStatement () noexcept(false)
 
- Protected Member Functions inherited from IDBObject
void checkConnection () const noexcept(false)
 
- Protected Attributes inherited from IODConfig
Statementm_readStmt
 
Statementm_writeStmt
 
- Protected Attributes inherited from IDBObject
oracle::occi::Connection * m_conn
 
oracle::occi::Environment * m_env
 

Detailed Description

Definition at line 11 of file FEConfigLUTInfo.h.

Constructor & Destructor Documentation

FEConfigLUTInfo::FEConfigLUTInfo ( )

Definition at line 13 of file FEConfigLUTInfo.cc.

References hitfit::clear(), and NULL.

14 {
15  m_env = NULL;
16  m_conn = NULL;
17  m_writeStmt = NULL;
18  m_readStmt = NULL;
19  m_config_tag="";
20  m_version=0;
21  m_ID=0;
22  clear();
23 }
oracle::occi::Environment * m_env
Definition: IDBObject.h:38
oracle::occi::Connection * m_conn
Definition: IDBObject.h:39
Statement * m_writeStmt
Definition: IODConfig.h:36
#define NULL
Definition: scimark2.h:8
std::string m_config_tag
Definition: IODConfig.h:27
Statement * m_readStmt
Definition: IODConfig.h:37
FEConfigLUTInfo::~FEConfigLUTInfo ( )

Definition at line 32 of file FEConfigLUTInfo.cc.

33 {
34 }

Member Function Documentation

void FEConfigLUTInfo::clear ( void  )
private

Definition at line 26 of file FEConfigLUTInfo.cc.

26  {
27  m_iov_id=0;
28 }
void FEConfigLUTInfo::fetchData ( FEConfigLUTInfo result)
privatenoexcept

Definition at line 128 of file FEConfigLUTInfo.cc.

References DateHandler::dateToTm(), cuy::dh, alignCSCRings::e, and mps_fire::result.

130 {
131  this->checkConnection();
132  result->clear();
133  if(result->getId()==0 && (result->getConfigTag()=="") ){
134  throw(std::runtime_error("FEConfigLUTInfo::fetchData(): no Id defined for this FEConfigLUTInfo "));
135  }
136 
137  try {
139 
140  m_readStmt->setSQL("SELECT * FROM " + getTable() +
141  " where ( lut_conf_id= :1 or (tag=:2 AND version=:3 ) )" );
142  m_readStmt->setInt(1, result->getId());
143  m_readStmt->setString(2, result->getConfigTag());
144  m_readStmt->setInt(3, result->getVersion());
145  ResultSet* rset = m_readStmt->executeQuery();
146 
147  rset->next();
148 
149  // 1 is the id and 2 is the config tag and 3 is the version
150 
151  result->setId(rset->getInt(1));
152  result->setConfigTag(rset->getString(2));
153  result->setVersion(rset->getInt(3));
154  result->setNumberOfGroups(rset->getInt(4));
155  Date dbdate = rset->getDate(5);
156  result->setDBTime( dh.dateToTm( dbdate ));
157 
158  } catch (SQLException &e) {
159  throw(std::runtime_error("FEConfigLUTInfo::fetchData(): "+e.getMessage()));
160  }
161 }
oracle::occi::Environment * m_env
Definition: IDBObject.h:38
oracle::occi::Connection * m_conn
Definition: IDBObject.h:39
std::string getTable()
void checkConnection() const noexcept(false)
Definition: IDBObject.h:41
void setVersion(int id)
oracle::occi::SQLException SQLException
Definition: HcalDbOmds.cc:27
void setNumberOfGroups(int iov_id)
int getId() const
int getVersion() const
oracle::occi::ResultSet ResultSet
Definition: HcalDbOmds.cc:26
void setConfigTag(std::string x)
Definition: IODConfig.h:31
Statement * m_readStmt
Definition: IODConfig.h:37
std::string getConfigTag()
Definition: IODConfig.h:32
void setDBTime(const Tm &x)
void setId(int id)
tuple dh
Definition: cuy.py:353
int FEConfigLUTInfo::fetchID ( )
noexcept

Definition at line 189 of file FEConfigLUTInfo.cc.

References alignCSCRings::e.

190 {
191  // Return from memory if available
192  if (m_ID!=0) {
193  return m_ID;
194  }
195 
196  this->checkConnection();
197 
198  try {
199  Statement* stmt = m_conn->createStatement();
200  stmt->setSQL("SELECT lut_conf_id FROM "+ getTable()+
201  " WHERE tag=:1 and version=:2 " );
202 
203  stmt->setString(1, getConfigTag() );
204  stmt->setInt(2, getVersion() );
205 
206  ResultSet* rset = stmt->executeQuery();
207 
208  if (rset->next()) {
209  m_ID = rset->getInt(1);
210  } else {
211  m_ID = 0;
212  }
213  m_conn->terminateStatement(stmt);
214  } catch (SQLException &e) {
215  throw(std::runtime_error("FEConfigLUTInfo::fetchID: "+e.getMessage()));
216  }
217 
218  return m_ID;
219 }
oracle::occi::Connection * m_conn
Definition: IDBObject.h:39
std::string getTable()
void checkConnection() const noexcept(false)
Definition: IDBObject.h:41
oracle::occi::SQLException SQLException
Definition: HcalDbOmds.cc:27
oracle::occi::Statement Statement
Definition: IODConfig.h:23
int getVersion() const
oracle::occi::ResultSet ResultSet
Definition: HcalDbOmds.cc:26
std::string getConfigTag()
Definition: IODConfig.h:32
void FEConfigLUTInfo::fetchLastData ( FEConfigLUTInfo result)
privatenoexcept

Definition at line 163 of file FEConfigLUTInfo.cc.

References DateHandler::dateToTm(), cuy::dh, alignCSCRings::e, and mps_fire::result.

165 {
166  this->checkConnection();
167  result->clear();
168  try {
170 
171  m_readStmt->setSQL("SELECT * FROM " + getTable() +
172  " where lut_conf_id = ( select max( lut_conf_id) from "+ getTable() +" ) " );
173  ResultSet* rset = m_readStmt->executeQuery();
174 
175  rset->next();
176 
177  result->setId(rset->getInt(1));
178  result->setConfigTag(rset->getString(2));
179  result->setVersion(rset->getInt(3));
180  result->setNumberOfGroups(rset->getInt(4));
181  Date dbdate = rset->getDate(5);
182  result->setDBTime( dh.dateToTm( dbdate ));
183 
184  } catch (SQLException &e) {
185  throw(std::runtime_error("FEConfigLUTInfo::fetchData(): "+e.getMessage()));
186  }
187 }
oracle::occi::Environment * m_env
Definition: IDBObject.h:38
oracle::occi::Connection * m_conn
Definition: IDBObject.h:39
std::string getTable()
void checkConnection() const noexcept(false)
Definition: IDBObject.h:41
void setVersion(int id)
oracle::occi::SQLException SQLException
Definition: HcalDbOmds.cc:27
void setNumberOfGroups(int iov_id)
oracle::occi::ResultSet ResultSet
Definition: HcalDbOmds.cc:26
void setConfigTag(std::string x)
Definition: IODConfig.h:31
Statement * m_readStmt
Definition: IODConfig.h:37
void setDBTime(const Tm &x)
void setId(int id)
tuple dh
Definition: cuy.py:353
int FEConfigLUTInfo::fetchNextId ( )
noexcept

Definition at line 38 of file FEConfigLUTInfo.cc.

References alignCSCRings::e, and mps_fire::result.

38  {
39 
40  int result=0;
41  try {
42  this->checkConnection();
43 
44  m_readStmt = m_conn->createStatement();
45  m_readStmt->setSQL("select FE_CONFIG_LUT_SQ.NextVal from DUAL ");
46  ResultSet* rset = m_readStmt->executeQuery();
47  while (rset->next ()){
48  result= rset->getInt(1);
49  }
50  result++;
51  m_conn->terminateStatement(m_readStmt);
52  return result;
53 
54  } catch (SQLException &e) {
55  throw(std::runtime_error("FEConfigLUTInfo::fetchNextId(): "+e.getMessage()));
56  }
57 
58 }
oracle::occi::Connection * m_conn
Definition: IDBObject.h:39
void checkConnection() const noexcept(false)
Definition: IDBObject.h:41
oracle::occi::SQLException SQLException
Definition: HcalDbOmds.cc:27
tuple result
Definition: mps_fire.py:84
oracle::occi::ResultSet ResultSet
Definition: HcalDbOmds.cc:26
Statement * m_readStmt
Definition: IODConfig.h:37
Tm FEConfigLUTInfo::getDBTime ( ) const
inline

Definition at line 35 of file FEConfigLUTInfo.h.

References m_db_time.

35 { return m_db_time;}
int FEConfigLUTInfo::getId ( ) const
inline

Definition at line 26 of file FEConfigLUTInfo.h.

References m_ID.

Referenced by getID(), and EcalTPGDBApp::writeToConfDB_TPGLUT().

26 { return m_ID; }
int FEConfigLUTInfo::getID ( )
inline

Definition at line 29 of file FEConfigLUTInfo.h.

References getId().

29 { return getId() ;}
int getId() const
int FEConfigLUTInfo::getNumberOfGroups ( ) const
inline

Definition at line 23 of file FEConfigLUTInfo.h.

References m_iov_id.

23 {return m_iov_id; }
std::string FEConfigLUTInfo::getTable ( )
inlinevirtual

Implements IODConfig.

Definition at line 19 of file FEConfigLUTInfo.h.

19 { return "FE_CONFIG_LUT_INFO"; }
int FEConfigLUTInfo::getVersion ( ) const
inline

Definition at line 32 of file FEConfigLUTInfo.h.

References m_version.

32 { return m_version; }
bool FEConfigLUTInfo::operator!= ( const FEConfigLUTInfo r) const
inline

Definition at line 47 of file FEConfigLUTInfo.h.

References alignCSCRings::r.

47 { return !(*this == r); }
bool FEConfigLUTInfo::operator== ( const FEConfigLUTInfo r) const
inline

Definition at line 46 of file FEConfigLUTInfo.h.

References m_ID.

46 { return (m_ID == r.m_ID ); }
void FEConfigLUTInfo::prepareWrite ( )
privatevirtualnoexcept

Implements IODConfig.

Definition at line 60 of file FEConfigLUTInfo.cc.

References alignCSCRings::e, and getId().

62 {
63  this->checkConnection();
64 
65  int next_id=0;
66  if(getId()==0){
67  next_id=fetchNextId();
68  }
69 
70  try {
71  m_writeStmt = m_conn->createStatement();
72  m_writeStmt->setSQL("INSERT INTO "+getTable()+" ( lut_conf_id, tag, version, number_of_groups) "
73  " VALUES ( :1, :2, :3 , :4) " );
74 
75  m_writeStmt->setInt(1, next_id);
76  m_ID=next_id;
77 
78  } catch (SQLException &e) {
79  throw(std::runtime_error("FEConfigLUTInfo::prepareWrite(): "+e.getMessage()));
80  }
81 
82 }
oracle::occi::Connection * m_conn
Definition: IDBObject.h:39
Statement * m_writeStmt
Definition: IODConfig.h:36
std::string getTable()
void checkConnection() const noexcept(false)
Definition: IDBObject.h:41
oracle::occi::SQLException SQLException
Definition: HcalDbOmds.cc:27
int getId() const
int fetchNextId() noexcept(false)
void FEConfigLUTInfo::setByID ( int  id)
noexcept

Definition at line 223 of file FEConfigLUTInfo.cc.

References DateHandler::dateToTm(), cuy::dh, and alignCSCRings::e.

225 {
226  this->checkConnection();
227 
229 
230  try {
231  Statement* stmt = m_conn->createStatement();
232 
233  stmt->setSQL("SELECT * FROM fe_config_lut_info WHERE lut_conf_id = :1");
234  stmt->setInt(1, id);
235 
236  ResultSet* rset = stmt->executeQuery();
237  if (rset->next()) {
238  this->setId(rset->getInt(1));
239  this->setConfigTag(rset->getString(2));
240  this->setVersion(rset->getInt(3));
241  this->setNumberOfGroups(rset->getInt(4));
242  Date dbdate = rset->getDate(5);
243  this->setDBTime( dh.dateToTm( dbdate ));
244  } else {
245  throw(std::runtime_error("FEConfigLUTInfo::setByID: Given config_id is not in the database"));
246  }
247 
248  m_conn->terminateStatement(stmt);
249  } catch (SQLException &e) {
250  throw(std::runtime_error("FEConfigLUTInfo::setByID: "+e.getMessage()));
251  }
252 }
oracle::occi::Environment * m_env
Definition: IDBObject.h:38
oracle::occi::Connection * m_conn
Definition: IDBObject.h:39
void checkConnection() const noexcept(false)
Definition: IDBObject.h:41
void setVersion(int id)
oracle::occi::SQLException SQLException
Definition: HcalDbOmds.cc:27
void setNumberOfGroups(int iov_id)
oracle::occi::Statement Statement
Definition: IODConfig.h:23
oracle::occi::ResultSet ResultSet
Definition: HcalDbOmds.cc:26
void setConfigTag(std::string x)
Definition: IODConfig.h:31
void setDBTime(const Tm &x)
void setId(int id)
tuple dh
Definition: cuy.py:353
void FEConfigLUTInfo::setDBTime ( const Tm x)
inline

Definition at line 36 of file FEConfigLUTInfo.h.

References m_db_time, and x.

void FEConfigLUTInfo::setId ( int  id)
inline
void FEConfigLUTInfo::setID ( int  id)
inline

Definition at line 28 of file FEConfigLUTInfo.h.

References setId().

28 {setId(id);}
void setId(int id)
void FEConfigLUTInfo::setNumberOfGroups ( int  iov_id)
inline

Definition at line 22 of file FEConfigLUTInfo.h.

References m_iov_id.

Referenced by EcalTPGDBApp::writeToConfDB_TPGLUT().

22 { m_iov_id = iov_id; }
void FEConfigLUTInfo::setParameters ( const std::map< std::string, std::string > &  my_keys_map)

Definition at line 84 of file FEConfigLUTInfo.cc.

84  {
85 
86  // parses the result of the XML parser that is a map of
87  // string string with variable name variable value
88 
89  for( std::map<std::string, std::string >::const_iterator ci=
90  my_keys_map.begin(); ci!=my_keys_map.end(); ci++ ) {
91 
92  if(ci->first== "VERSION") setVersion(atoi(ci->second.c_str()) );
93  if(ci->first== "TAG") setConfigTag(ci->second);
94  if(ci->first== "NUMBER_OF_GROUPS") setNumberOfGroups(atoi(ci->second.c_str()) );
95 
96  }
97 
98 }
void setVersion(int id)
void setNumberOfGroups(int iov_id)
void setConfigTag(std::string x)
Definition: IODConfig.h:31
void FEConfigLUTInfo::setVersion ( int  id)
inline

Definition at line 31 of file FEConfigLUTInfo.h.

References m_version.

31 { m_version = id; }
void FEConfigLUTInfo::writeDB ( )
privatenoexcept

Definition at line 100 of file FEConfigLUTInfo.cc.

References alignCSCRings::e.

102 {
103  this->checkConnection();
104  this->checkPrepare();
105 
106  try {
107 
108  // number 1 is the id
109  m_writeStmt->setString(2, this->getConfigTag());
110  m_writeStmt->setInt(3, this->getVersion());
111  m_writeStmt->setInt(4, this->getNumberOfGroups());
112 
113  m_writeStmt->executeUpdate();
114 
115 
116  } catch (SQLException &e) {
117  throw(std::runtime_error("FEConfigLUTInfo::writeDB(): "+e.getMessage()));
118  }
119  // Now get the ID
120  if (!this->fetchID()) {
121  throw(std::runtime_error("FEConfigLUTInfo::writeDB: Failed to write"));
122  }
123 
124 
125 }
Statement * m_writeStmt
Definition: IODConfig.h:36
void checkConnection() const noexcept(false)
Definition: IDBObject.h:41
oracle::occi::SQLException SQLException
Definition: HcalDbOmds.cc:27
int getVersion() const
int fetchID() noexcept(false)
std::string getConfigTag()
Definition: IODConfig.h:32
int getNumberOfGroups() const
void checkPrepare() noexcept(false)
Definition: IODConfig.h:39

Friends And Related Function Documentation

friend class EcalCondDBInterface
friend

Definition at line 13 of file FEConfigLUTInfo.h.

Member Data Documentation

Tm FEConfigLUTInfo::m_db_time
private

Definition at line 53 of file FEConfigLUTInfo.h.

Referenced by getDBTime(), and setDBTime().

int FEConfigLUTInfo::m_ID
private

Definition at line 52 of file FEConfigLUTInfo.h.

Referenced by getId(), operator==(), and setId().

int FEConfigLUTInfo::m_iov_id
private

Definition at line 51 of file FEConfigLUTInfo.h.

Referenced by getNumberOfGroups(), and setNumberOfGroups().

int FEConfigLUTInfo::m_version
private

Definition at line 54 of file FEConfigLUTInfo.h.

Referenced by getVersion(), and setVersion().