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
FEConfigLinInfo Class Reference

#include <FEConfigLinInfo.h>

Inheritance diagram for FEConfigLinInfo:
IODConfig IDBObject

Public Member Functions

 FEConfigLinInfo ()
 
int fetchID () throw (std::runtime_error)
 
int fetchNextId () throw (std::runtime_error)
 
Tm getDBTime () const
 
int getId () const
 
int getID ()
 
int getIOVId () const
 
std::string getTable ()
 
int getVersion () const
 
bool operator!= (const FEConfigLinInfo &r) const
 
bool operator== (const FEConfigLinInfo &r) const
 
void setByID (int id) throw (std::runtime_error)
 
void setDBTime (Tm x)
 
void setId (int id)
 
void setID (int id)
 
void setIOVId (int iov_id)
 
void setParameters (std::map< std::string, std::string > my_keys_map)
 
void setVersion (int id)
 
 ~FEConfigLinInfo ()
 
- 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 (FEConfigLinInfo *result) throw (std::runtime_error)
 
void fetchLastData (FEConfigLinInfo *result) throw (std::runtime_error)
 
void prepareWrite () throw (std::runtime_error)
 
void writeDB () throw (std::runtime_error)
 

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 () throw (std::runtime_error)
 
void createReadStatement () throw (std::runtime_error)
 
void populateClob (Clob &clob, std::string fname, unsigned int bufsize) throw (std::runtime_error)
 
unsigned char * readClob (Clob &clob, int size) throw (std::runtime_error)
 
void setPrefetchRowCount (int ncount) throw (std::runtime_error)
 
void terminateReadStatement () throw (std::runtime_error)
 
void terminateWriteStatement () throw (std::runtime_error)
 
- Protected Member Functions inherited from IDBObject
void checkConnection () const throw (std::runtime_error)
 
- 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 FEConfigLinInfo.h.

Constructor & Destructor Documentation

FEConfigLinInfo::FEConfigLinInfo ( )

Definition at line 13 of file FEConfigLinInfo.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
FEConfigLinInfo::~FEConfigLinInfo ( )

Definition at line 32 of file FEConfigLinInfo.cc.

33 {
34 }

Member Function Documentation

void FEConfigLinInfo::clear ( void  )
private

Definition at line 26 of file FEConfigLinInfo.cc.

26  {
27  m_iov_id=0;
28 }
void FEConfigLinInfo::fetchData ( FEConfigLinInfo result)
throw (std::runtime_error
)
private

Definition at line 128 of file FEConfigLinInfo.cc.

References DateHandler::dateToTm(), alignCSCRings::e, and query::result.

130 {
131  this->checkConnection();
132  result->clear();
133  if(result->getId()==0 && (result->getConfigTag()=="") ){
134  throw(std::runtime_error("FEConfigLinInfo::fetchData(): no Id defined for this FEConfigLinInfo "));
135  }
136 
137  try {
138  DateHandler dh(m_env, m_conn);
139 
140  m_readStmt->setSQL("SELECT * FROM " + getTable() +
141  " where ( lin_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->setIOVId(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("FEConfigLinInfo::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()
int getVersion() const
void setDBTime(Tm x)
void setIOVId(int iov_id)
oracle::occi::SQLException SQLException
Definition: HcalDbOmds.cc:22
void setId(int id)
void setVersion(int id)
oracle::occi::ResultSet ResultSet
Definition: HcalDbOmds.cc:21
void setConfigTag(std::string x)
Definition: IODConfig.h:31
Statement * m_readStmt
Definition: IODConfig.h:37
std::string getConfigTag()
Definition: IODConfig.h:32
int getId() const
void checkConnection() const
Definition: IDBObject.h:41
int FEConfigLinInfo::fetchID ( )
throw (std::runtime_error
)

Definition at line 189 of file FEConfigLinInfo.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 lin_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("FEConfigLinInfo::fetchID: "+e.getMessage()));
216  }
217 
218  return m_ID;
219 }
oracle::occi::Connection * m_conn
Definition: IDBObject.h:39
std::string getTable()
int getVersion() const
oracle::occi::SQLException SQLException
Definition: HcalDbOmds.cc:22
oracle::occi::Statement Statement
Definition: IODConfig.h:23
oracle::occi::ResultSet ResultSet
Definition: HcalDbOmds.cc:21
std::string getConfigTag()
Definition: IODConfig.h:32
void checkConnection() const
Definition: IDBObject.h:41
void FEConfigLinInfo::fetchLastData ( FEConfigLinInfo result)
throw (std::runtime_error
)
private

Definition at line 163 of file FEConfigLinInfo.cc.

References DateHandler::dateToTm(), alignCSCRings::e, and query::result.

165 {
166  this->checkConnection();
167  result->clear();
168  try {
169  DateHandler dh(m_env, m_conn);
170 
171  m_readStmt->setSQL("SELECT * FROM " + getTable() +
172  " where lin_conf_id = ( select max( lin_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->setIOVId(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("FEConfigLinInfo::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 setDBTime(Tm x)
void setIOVId(int iov_id)
oracle::occi::SQLException SQLException
Definition: HcalDbOmds.cc:22
void setId(int id)
void setVersion(int id)
oracle::occi::ResultSet ResultSet
Definition: HcalDbOmds.cc:21
void setConfigTag(std::string x)
Definition: IODConfig.h:31
Statement * m_readStmt
Definition: IODConfig.h:37
void checkConnection() const
Definition: IDBObject.h:41
int FEConfigLinInfo::fetchNextId ( )
throw (std::runtime_error
)

Definition at line 38 of file FEConfigLinInfo.cc.

References alignCSCRings::e, and query::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_LIN_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("FEConfigLinInfo::fetchNextId(): "+e.getMessage()));
56  }
57 
58 }
oracle::occi::Connection * m_conn
Definition: IDBObject.h:39
oracle::occi::SQLException SQLException
Definition: HcalDbOmds.cc:22
tuple result
Definition: query.py:137
oracle::occi::ResultSet ResultSet
Definition: HcalDbOmds.cc:21
Statement * m_readStmt
Definition: IODConfig.h:37
void checkConnection() const
Definition: IDBObject.h:41
Tm FEConfigLinInfo::getDBTime ( ) const
inline

Definition at line 35 of file FEConfigLinInfo.h.

References m_db_time.

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

Definition at line 26 of file FEConfigLinInfo.h.

References m_ID.

Referenced by getID().

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

Definition at line 29 of file FEConfigLinInfo.h.

References getId().

Referenced by EcalTPGDBApp::writeToConfDB_TPGLinearCoef().

29 { return getId() ;}
int getId() const
int FEConfigLinInfo::getIOVId ( ) const
inline

Definition at line 23 of file FEConfigLinInfo.h.

References m_iov_id.

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

Implements IODConfig.

Definition at line 19 of file FEConfigLinInfo.h.

19 { return "FE_CONFIG_LIN_INFO"; }
int FEConfigLinInfo::getVersion ( ) const
inline

Definition at line 32 of file FEConfigLinInfo.h.

References m_version.

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

Definition at line 47 of file FEConfigLinInfo.h.

References alignCSCRings::r.

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

Definition at line 46 of file FEConfigLinInfo.h.

References m_ID.

46 { return (m_ID == r.m_ID ); }
void FEConfigLinInfo::prepareWrite ( )
throw (std::runtime_error
)
privatevirtual

Implements IODConfig.

Definition at line 60 of file FEConfigLinInfo.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()+" ( lin_conf_id, tag, version, iov_id) "
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("FEConfigLinInfo::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()
oracle::occi::SQLException SQLException
Definition: HcalDbOmds.cc:22
int getId() const
void checkConnection() const
Definition: IDBObject.h:41
void FEConfigLinInfo::setByID ( int  id)
throw (std::runtime_error
)

Definition at line 223 of file FEConfigLinInfo.cc.

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

225 {
226  this->checkConnection();
227 
228  DateHandler dh(m_env, m_conn);
229 
230  try {
231  Statement* stmt = m_conn->createStatement();
232 
233  stmt->setSQL("SELECT * FROM fe_config_lin_info WHERE lin_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->setIOVId(rset->getInt(4));
242  Date dbdate = rset->getDate(5);
243  this->setDBTime( dh.dateToTm( dbdate ));
244  } else {
245  throw(std::runtime_error("FEConfigLinInfo::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("FEConfigLinInfo::setByID: "+e.getMessage()));
251  }
252 }
oracle::occi::Environment * m_env
Definition: IDBObject.h:38
oracle::occi::Connection * m_conn
Definition: IDBObject.h:39
void setDBTime(Tm x)
void setIOVId(int iov_id)
oracle::occi::SQLException SQLException
Definition: HcalDbOmds.cc:22
void setId(int id)
void setVersion(int id)
oracle::occi::Statement Statement
Definition: IODConfig.h:23
oracle::occi::ResultSet ResultSet
Definition: HcalDbOmds.cc:21
void setConfigTag(std::string x)
Definition: IODConfig.h:31
void checkConnection() const
Definition: IDBObject.h:41
void FEConfigLinInfo::setDBTime ( Tm  x)
inline

Definition at line 36 of file FEConfigLinInfo.h.

References m_db_time, and vdt::x.

36 { m_db_time=x; }
x
Definition: VDTMath.h:216
void FEConfigLinInfo::setId ( int  id)
inline
void FEConfigLinInfo::setID ( int  id)
inline

Definition at line 28 of file FEConfigLinInfo.h.

References setId().

28 {setId(id);}
void setId(int id)
void FEConfigLinInfo::setIOVId ( int  iov_id)
inline

Definition at line 22 of file FEConfigLinInfo.h.

References m_iov_id.

Referenced by EcalTPGDBApp::writeToConfDB_TPGLinearCoef().

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

Definition at line 84 of file FEConfigLinInfo.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 >::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== "IOV_ID") setIOVId(atoi(ci->second.c_str()) );
95 
96  }
97 
98 }
void setIOVId(int iov_id)
void setVersion(int id)
void setConfigTag(std::string x)
Definition: IODConfig.h:31
void FEConfigLinInfo::setVersion ( int  id)
inline
void FEConfigLinInfo::writeDB ( )
throw (std::runtime_error
)
private

Definition at line 100 of file FEConfigLinInfo.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->getIOVId());
112 
113  m_writeStmt->executeUpdate();
114 
115 
116  } catch (SQLException &e) {
117  throw(std::runtime_error("FEConfigLinInfo::writeDB(): "+e.getMessage()));
118  }
119  // Now get the ID
120  if (!this->fetchID()) {
121  throw(std::runtime_error("FEConfigLinInfo::writeDB: Failed to write"));
122  }
123 
124 
125 }
Statement * m_writeStmt
Definition: IODConfig.h:36
int getVersion() const
oracle::occi::SQLException SQLException
Definition: HcalDbOmds.cc:22
int getIOVId() const
void checkPrepare()
Definition: IODConfig.h:39
std::string getConfigTag()
Definition: IODConfig.h:32
void checkConnection() const
Definition: IDBObject.h:41

Friends And Related Function Documentation

friend class EcalCondDBInterface
friend

Definition at line 13 of file FEConfigLinInfo.h.

Member Data Documentation

Tm FEConfigLinInfo::m_db_time
private

Definition at line 53 of file FEConfigLinInfo.h.

Referenced by getDBTime(), and setDBTime().

int FEConfigLinInfo::m_ID
private

Definition at line 52 of file FEConfigLinInfo.h.

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

int FEConfigLinInfo::m_iov_id
private

Definition at line 51 of file FEConfigLinInfo.h.

Referenced by getIOVId(), and setIOVId().

int FEConfigLinInfo::m_version
private

Definition at line 54 of file FEConfigLinInfo.h.

Referenced by getVersion(), and setVersion().