#include <ODSRPConfig.h>
Public Member Functions | |
int | getAutomaticMasks () const |
int | getAutomaticSrpSelect () const |
std::string | getConfigFile () const |
int | getDebugMode () const |
int | getDummyMode () const |
int | getId () const |
std::string | getPatternDirectory () const |
int | getSRP0BunchAdjustPosition () const |
unsigned char * | getSRPClob () const |
unsigned int | getSRPClobSize () const |
std::string | getTable () |
ODSRPConfig () | |
void | setAutomaticMasks (int x) |
void | setAutomaticSrpSelect (int x) |
void | setConfigFile (std::string x) |
void | setDebugMode (int x) |
void | setDummyMode (int x) |
void | setId (int id) |
void | setParameters (std::map< std::string, std::string > my_keys_map) |
void | setPatternDirectory (std::string x) |
void | setSRP0BunchAdjustPosition (int x) |
void | setSRPClob (unsigned char *x) |
~ODSRPConfig () | |
Private Member Functions | |
void | clear () |
void | fetchData (ODSRPConfig *result) throw (std::runtime_error) |
int | fetchID () throw (std::runtime_error) |
int | fetchNextId () throw (std::runtime_error) |
void | prepareWrite () throw (std::runtime_error) |
void | writeDB () throw (std::runtime_error) |
Private Attributes | |
int | m_auto |
int | m_auto_srp |
int | m_bnch |
int | m_debug |
int | m_dummy |
std::string | m_file |
int | m_ID |
std::string | m_patdir |
unsigned int | m_size |
unsigned char * | m_srp_clob |
Friends | |
class | EcalCondDBInterface |
Definition at line 17 of file ODSRPConfig.h.
ODSRPConfig::ODSRPConfig | ( | ) |
Definition at line 13 of file ODSRPConfig.cc.
References NULL.
{ m_env = NULL; m_conn = NULL; m_writeStmt = NULL; m_readStmt = NULL; m_config_tag=""; m_ID=0; clear(); m_size=0; }
ODSRPConfig::~ODSRPConfig | ( | ) |
Definition at line 37 of file ODSRPConfig.cc.
{ }
void ODSRPConfig::clear | ( | void | ) | [private] |
void ODSRPConfig::fetchData | ( | ODSRPConfig * | result | ) | throw (std::runtime_error) [private] |
Definition at line 203 of file ODSRPConfig.cc.
References query::result.
{ this->checkConnection(); // result->clear(); int idid=0; if(result->getId()==0 && (result->getConfigTag()=="") ){ // throw(std::runtime_error("ODSRPConfig::fetchData(): no Id defined for this ODSRPConfig ")); idid=result->fetchID(); } try { m_readStmt->setSQL("SELECT * " " FROM ECAL_SRP_CONFIGURATION " " where (srp_configuration_id = :1 or srp_tag=:2 )" ); m_readStmt->setInt(1, result->getId()); m_readStmt->setString(2, result->getConfigTag()); ResultSet* rset = m_readStmt->executeQuery(); rset->next(); // 1 is the id and 2 is the config tag result->setId(rset->getInt(1)); result->setConfigTag(rset->getString(2)); result->setDebugMode(rset->getInt(3)); result->setDummyMode(rset->getInt(4)); result->setPatternDirectory(rset->getString(5)); result->setAutomaticMasks(rset->getInt(6)); result->setSRP0BunchAdjustPosition(rset->getInt(7)); result->setConfigFile(rset->getString(8)); Clob clob = rset->getClob(9); m_size = clob.length(); Stream *instream = clob.getStream (1,0); unsigned char *buffer = new unsigned char[m_size]; memset (buffer, 0, m_size); instream->readBuffer ((char*)buffer, m_size); /* cout << "Opening the clob in Read only mode" << endl; clob.open (OCCI_LOB_READONLY); int clobLength=clob.length (); cout << "Length of the clob is: " << clobLength << endl; unsigned char* buffer = readClob (clob, clobLength); clob.close (); cout<< "the clob buffer is:"<<endl; for (int i = 0; i < clobLength; ++i) cout << (char) buffer[i]; cout << endl; */ result->setSRPClob(buffer ); result->setAutomaticSrpSelect(rset->getInt(10)); } catch (SQLException &e) { throw(std::runtime_error("ODSRPConfig::fetchData(): "+e.getMessage())); } }
int ODSRPConfig::fetchID | ( | ) | throw (std::runtime_error) [private] |
Definition at line 266 of file ODSRPConfig.cc.
{ // Return from memory if available if (m_ID!=0) { return m_ID; } this->checkConnection(); try { Statement* stmt = m_conn->createStatement(); stmt->setSQL("SELECT srp_configuration_id FROM ecal_srp_configuration " "WHERE srp_tag=:srp_tag " ); stmt->setString(1, getConfigTag() ); ResultSet* rset = stmt->executeQuery(); if (rset->next()) { m_ID = rset->getInt(1); } else { m_ID = 0; } m_conn->terminateStatement(stmt); } catch (SQLException &e) { throw(std::runtime_error("ODSRPConfig::fetchID: "+e.getMessage())); } return m_ID; }
int ODSRPConfig::fetchNextId | ( | ) | throw (std::runtime_error) [private] |
Definition at line 41 of file ODSRPConfig.cc.
References query::result.
{ int result=0; try { this->checkConnection(); m_readStmt = m_conn->createStatement(); m_readStmt->setSQL("select ecal_srp_config_sq.NextVal from dual"); ResultSet* rset = m_readStmt->executeQuery(); while (rset->next ()){ result= rset->getInt(1); } m_conn->terminateStatement(m_readStmt); return result; } catch (SQLException &e) { throw(std::runtime_error("ODSRPConfig::fetchNextId(): "+e.getMessage())); } }
int ODSRPConfig::getAutomaticMasks | ( | ) | const [inline] |
int ODSRPConfig::getAutomaticSrpSelect | ( | ) | const [inline] |
std::string ODSRPConfig::getConfigFile | ( | ) | const [inline] |
int ODSRPConfig::getDebugMode | ( | ) | const [inline] |
int ODSRPConfig::getDummyMode | ( | ) | const [inline] |
int ODSRPConfig::getId | ( | ) | const [inline] |
std::string ODSRPConfig::getPatternDirectory | ( | ) | const [inline] |
int ODSRPConfig::getSRP0BunchAdjustPosition | ( | ) | const [inline] |
unsigned char* ODSRPConfig::getSRPClob | ( | ) | const [inline] |
unsigned int ODSRPConfig::getSRPClobSize | ( | ) | const [inline] |
std::string ODSRPConfig::getTable | ( | ) | [inline, virtual] |
Implements IODConfig.
Definition at line 24 of file ODSRPConfig.h.
{ return "ECAL_SRP_CONFIGURATION"; }
void ODSRPConfig::prepareWrite | ( | ) | throw (std::runtime_error) [private, virtual] |
Implements IODConfig.
Definition at line 116 of file ODSRPConfig.cc.
References gather_cfg::cout.
{ this->checkConnection(); int next_id=fetchNextId(); try { m_writeStmt = m_conn->createStatement(); m_writeStmt->setSQL("INSERT INTO ECAL_SRP_CONFIGURATION (srp_configuration_id, srp_tag, " " DEBUGMODE, DUMMYMODE, PATTERN_DIRECTORY, AUTOMATIC_MASKS," " SRP0BUNCHADJUSTPOSITION, SRP_CONFIG_FILE, SRP_CONFIGURATION, AUTOMATICSRPSELECT ) " "VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10 )"); m_writeStmt->setInt(1, next_id); m_writeStmt->setString(2, getConfigTag()); m_writeStmt->setInt(3, getDebugMode()); m_writeStmt->setInt(4, getDummyMode()); m_writeStmt->setString(5, getPatternDirectory()); m_writeStmt->setInt(6, getAutomaticMasks()); m_writeStmt->setInt(10, getAutomaticSrpSelect()); m_writeStmt->setInt(7, getSRP0BunchAdjustPosition()); m_writeStmt->setString(8, getConfigFile()); // and now the clob oracle::occi::Clob clob(m_conn); clob.setEmpty(); m_writeStmt->setClob(9,clob); m_writeStmt->executeUpdate (); m_ID=next_id; m_conn->terminateStatement(m_writeStmt); std::cout<<"SRP Clob inserted into CONFIGURATION with id="<<next_id<<std::endl; // now we read and update it m_writeStmt = m_conn->createStatement(); m_writeStmt->setSQL ("SELECT srp_configuration FROM ECAL_SRP_CONFIGURATION WHERE" " srp_configuration_id=:1 FOR UPDATE"); std::cout<<"updating the clob 0"<<std::endl; } catch (SQLException &e) { throw(std::runtime_error("ODSRPConfig::prepareWrite(): "+e.getMessage())); } std::cout<<"updating the clob 1 "<<std::endl; }
void ODSRPConfig::setAutomaticMasks | ( | int | x | ) | [inline] |
void ODSRPConfig::setAutomaticSrpSelect | ( | int | x | ) | [inline] |
void ODSRPConfig::setConfigFile | ( | std::string | x | ) | [inline] |
void ODSRPConfig::setDebugMode | ( | int | x | ) | [inline] |
void ODSRPConfig::setDummyMode | ( | int | x | ) | [inline] |
void ODSRPConfig::setId | ( | int | id | ) | [inline] |
void ODSRPConfig::setParameters | ( | std::map< std::string, std::string > | my_keys_map | ) |
void ODSRPConfig::setPatternDirectory | ( | std::string | x | ) | [inline] |
void ODSRPConfig::setSRP0BunchAdjustPosition | ( | int | x | ) | [inline] |
void ODSRPConfig::setSRPClob | ( | unsigned char * | x | ) | [inline] |
void ODSRPConfig::writeDB | ( | ) | throw (std::runtime_error) [private] |
Definition at line 166 of file ODSRPConfig.cc.
References gather_cfg::cout.
{ std::cout<<"updating the clob 2"<<std::endl; try { m_writeStmt->setInt(1, m_ID); ResultSet* rset = m_writeStmt->executeQuery(); while (rset->next ()) { oracle::occi::Clob clob = rset->getClob (1); cout << "Opening the clob in read write mode" << endl; cout << "Populating the clob" << endl; populateClob (clob, getConfigFile(), m_size ); int clobLength=clob.length (); cout << "Length of the clob after writing is: " << clobLength << endl; } m_writeStmt->executeUpdate(); m_writeStmt->closeResultSet (rset); } catch (SQLException &e) { throw(std::runtime_error("ODSRPConfig::writeDB(): "+e.getMessage())); } // Now get the ID if (!this->fetchID()) { throw(std::runtime_error("ODSRPConfig::writeDB: Failed to write")); } }
friend class EcalCondDBInterface [friend] |
Reimplemented from IDBObject.
Definition at line 19 of file ODSRPConfig.h.
int ODSRPConfig::m_auto [private] |
Definition at line 73 of file ODSRPConfig.h.
Referenced by getAutomaticMasks(), and setAutomaticMasks().
int ODSRPConfig::m_auto_srp [private] |
Definition at line 73 of file ODSRPConfig.h.
Referenced by getAutomaticSrpSelect(), and setAutomaticSrpSelect().
int ODSRPConfig::m_bnch [private] |
Definition at line 74 of file ODSRPConfig.h.
Referenced by getSRP0BunchAdjustPosition(), and setSRP0BunchAdjustPosition().
int ODSRPConfig::m_debug [private] |
Definition at line 69 of file ODSRPConfig.h.
Referenced by getDebugMode(), and setDebugMode().
int ODSRPConfig::m_dummy [private] |
Definition at line 70 of file ODSRPConfig.h.
Referenced by getDummyMode(), and setDummyMode().
std::string ODSRPConfig::m_file [private] |
Definition at line 71 of file ODSRPConfig.h.
Referenced by getConfigFile(), and setConfigFile().
int ODSRPConfig::m_ID [private] |
Definition at line 67 of file ODSRPConfig.h.
std::string ODSRPConfig::m_patdir [private] |
Definition at line 72 of file ODSRPConfig.h.
Referenced by getPatternDirectory(), and setPatternDirectory().
unsigned int ODSRPConfig::m_size [private] |
Definition at line 75 of file ODSRPConfig.h.
Referenced by getSRPClobSize().
unsigned char* ODSRPConfig::m_srp_clob [private] |
Definition at line 68 of file ODSRPConfig.h.
Referenced by getSRPClob(), and setSRPClob().