CMS 3D CMS Logo

Public Member Functions | Private Member Functions | Private Attributes | Friends

FEConfigSlidingInfo Class Reference

#include <FEConfigSlidingInfo.h>

Inheritance diagram for FEConfigSlidingInfo:
IODConfig IDBObject

List of all members.

Public Member Functions

 FEConfigSlidingInfo ()
int fetchID () throw (std::runtime_error)
int fetchNextId () throw (std::runtime_error)
Tm getDBTime () const
int getID ()
int getId () const
int getIOVId () const
std::string getTable ()
int getVersion () const
bool operator!= (const FEConfigSlidingInfo &r) const
bool operator== (const FEConfigSlidingInfo &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)
 ~FEConfigSlidingInfo ()

Private Member Functions

void clear ()
void fetchData (FEConfigSlidingInfo *result) throw (std::runtime_error)
void fetchLastData (FEConfigSlidingInfo *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

Detailed Description

Definition at line 11 of file FEConfigSlidingInfo.h.


Constructor & Destructor Documentation

FEConfigSlidingInfo::FEConfigSlidingInfo ( )

Definition at line 13 of file FEConfigSlidingInfo.cc.

References hitfit::clear(), and NULL.

FEConfigSlidingInfo::~FEConfigSlidingInfo ( )

Definition at line 32 of file FEConfigSlidingInfo.cc.

{
}

Member Function Documentation

void FEConfigSlidingInfo::clear ( void  ) [private]

Definition at line 26 of file FEConfigSlidingInfo.cc.

                               {
   m_iov_id=0;
}
void FEConfigSlidingInfo::fetchData ( FEConfigSlidingInfo result) throw (std::runtime_error) [private]

Definition at line 128 of file FEConfigSlidingInfo.cc.

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

{
  this->checkConnection();
  result->clear();
  if(result->getId()==0 && (result->getConfigTag()=="") ){
    throw(std::runtime_error("FEConfigSlidingInfo::fetchData(): no Id defined for this FEConfigSlidingInfo "));
  }

  try {
    DateHandler dh(m_env, m_conn);

    m_readStmt->setSQL("SELECT * FROM " + getTable() +   
                       " where ( sli_conf_id= :1 or (tag=:2 AND version=:3 ) )" );
    m_readStmt->setInt(1, result->getId());
    m_readStmt->setString(2, result->getConfigTag());
    m_readStmt->setInt(3, result->getVersion());
    ResultSet* rset = m_readStmt->executeQuery();

    rset->next();

    // 1 is the id and 2 is the config tag and 3 is the version

    result->setId(rset->getInt(1));
    result->setConfigTag(rset->getString(2));
    result->setVersion(rset->getInt(3));
    result->setIOVId(rset->getInt(4));
    Date dbdate = rset->getDate(5);
    result->setDBTime( dh.dateToTm( dbdate ));

  } catch (SQLException &e) {
    throw(std::runtime_error("FEConfigSlidingInfo::fetchData():  "+e.getMessage()));
  }
}
int FEConfigSlidingInfo::fetchID ( ) throw (std::runtime_error)

Definition at line 189 of file FEConfigSlidingInfo.cc.

References alignCSCRings::e.

{
  // Return from memory if available
  if (m_ID!=0) {
    return m_ID;
  }

  this->checkConnection();

  try {
    Statement* stmt = m_conn->createStatement();
    stmt->setSQL("SELECT sli_conf_id FROM "+ getTable()+
                 " WHERE  tag=:1 and version=:2 " );

    stmt->setString(1, getConfigTag() );
    stmt->setInt(2, getVersion() );

    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("FEConfigSlidingInfo::fetchID:  "+e.getMessage()));
  }

  return m_ID;
}
void FEConfigSlidingInfo::fetchLastData ( FEConfigSlidingInfo result) throw (std::runtime_error) [private]

Definition at line 163 of file FEConfigSlidingInfo.cc.

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

{
  this->checkConnection();
  result->clear();
  try {
    DateHandler dh(m_env, m_conn);

    m_readStmt->setSQL("SELECT * FROM " + getTable() +   
                       " where   sli_conf_id = ( select max( sli_conf_id) from "+ getTable() +" ) " );
    ResultSet* rset = m_readStmt->executeQuery();

    rset->next();

    result->setId(rset->getInt(1));
    result->setConfigTag(rset->getString(2));
    result->setVersion(rset->getInt(3));
    result->setIOVId(rset->getInt(4));
    Date dbdate = rset->getDate(5);
    result->setDBTime( dh.dateToTm( dbdate ));

  } catch (SQLException &e) {
    throw(std::runtime_error("FEConfigSlidingInfo::fetchData():  "+e.getMessage()));
  }
}
int FEConfigSlidingInfo::fetchNextId ( ) throw (std::runtime_error)

Definition at line 38 of file FEConfigSlidingInfo.cc.

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

                                                              {

  int result=0;
  try {
    this->checkConnection();

    m_readStmt = m_conn->createStatement(); 
    m_readStmt->setSQL("select FE_CONFIG_SLI_SQ.NextVal from DUAL ");
    ResultSet* rset = m_readStmt->executeQuery();
    while (rset->next ()){
      result= rset->getInt(1);
    }
    result++;
    m_conn->terminateStatement(m_readStmt);
    return result; 

  } catch (SQLException &e) {
    throw(std::runtime_error("FEConfigSlidingInfo::fetchNextId():  "+e.getMessage()));
  }

}
Tm FEConfigSlidingInfo::getDBTime ( ) const [inline]

Definition at line 35 of file FEConfigSlidingInfo.h.

References m_db_time.

{  return m_db_time;}
int FEConfigSlidingInfo::getId ( ) const [inline]

Definition at line 26 of file FEConfigSlidingInfo.h.

References m_ID.

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

{ return m_ID; }
int FEConfigSlidingInfo::getID ( ) [inline]

Definition at line 29 of file FEConfigSlidingInfo.h.

References getId().

{ return getId() ;}
int FEConfigSlidingInfo::getIOVId ( ) const [inline]

Definition at line 23 of file FEConfigSlidingInfo.h.

References m_iov_id.

{return m_iov_id;  }
std::string FEConfigSlidingInfo::getTable ( ) [inline, virtual]

Implements IODConfig.

Definition at line 19 of file FEConfigSlidingInfo.h.

{ return "FE_CONFIG_SLIDING_INFO"; }
int FEConfigSlidingInfo::getVersion ( ) const [inline]

Definition at line 32 of file FEConfigSlidingInfo.h.

References m_version.

{ return m_version; }
bool FEConfigSlidingInfo::operator!= ( const FEConfigSlidingInfo r) const [inline]

Definition at line 47 of file FEConfigSlidingInfo.h.

References alignCSCRings::r.

{ return !(*this == r); }
bool FEConfigSlidingInfo::operator== ( const FEConfigSlidingInfo r) const [inline]

Definition at line 46 of file FEConfigSlidingInfo.h.

References m_ID.

{  return (m_ID   == r.m_ID ); }
void FEConfigSlidingInfo::prepareWrite ( ) throw (std::runtime_error) [private, virtual]

Implements IODConfig.

Definition at line 60 of file FEConfigSlidingInfo.cc.

References alignCSCRings::e, and getId().

{
  this->checkConnection();

  int next_id=0;
  if(getId()==0){
    next_id=fetchNextId();
  }

  try {
    m_writeStmt = m_conn->createStatement();
    m_writeStmt->setSQL("INSERT INTO "+getTable()+" ( sli_conf_id, tag, version, iov_id) " 
                        " VALUES ( :1, :2, :3 , :4) " );

    m_writeStmt->setInt(1, next_id);
    m_ID=next_id;

  } catch (SQLException &e) {
    throw(std::runtime_error("FEConfigSlidingInfo::prepareWrite():  "+e.getMessage()));
  }

}
void FEConfigSlidingInfo::setByID ( int  id) throw (std::runtime_error)

Definition at line 223 of file FEConfigSlidingInfo.cc.

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

{
   this->checkConnection();

   DateHandler dh(m_env, m_conn);

   try {
     Statement* stmt = m_conn->createStatement();

     stmt->setSQL("SELECT * FROM " + getTable() +" WHERE sli_conf_id = :1");
     stmt->setInt(1, id);
     
     ResultSet* rset = stmt->executeQuery();
     if (rset->next()) {
       this->setId(rset->getInt(1));
       this->setConfigTag(rset->getString(2));
       this->setVersion(rset->getInt(3));
       this->setIOVId(rset->getInt(4));
       Date dbdate = rset->getDate(5);
       this->setDBTime( dh.dateToTm( dbdate ));
     } else {
       throw(std::runtime_error("FEConfigSlidingInfo::setByID:  Given config_id is not in the database"));
     }
     
     m_conn->terminateStatement(stmt);
   } catch (SQLException &e) {
     throw(std::runtime_error("FEConfigSlidingInfo::setByID:  "+e.getMessage()));
   }
}
void FEConfigSlidingInfo::setDBTime ( Tm  x) [inline]

Definition at line 36 of file FEConfigSlidingInfo.h.

References m_db_time, and x.

{ m_db_time=x; } 
void FEConfigSlidingInfo::setId ( int  id) [inline]

Definition at line 25 of file FEConfigSlidingInfo.h.

References m_ID.

Referenced by popcon::EcalTPGSlidingWindowHandler::getNewObjects(), and setID().

{ m_ID = id; }
void FEConfigSlidingInfo::setID ( int  id) [inline]

Definition at line 28 of file FEConfigSlidingInfo.h.

References setId().

{setId(id);} 
void FEConfigSlidingInfo::setIOVId ( int  iov_id) [inline]

Definition at line 22 of file FEConfigSlidingInfo.h.

References m_iov_id.

Referenced by EcalTPGDBApp::writeToConfDB_TPGSliding().

{ m_iov_id = iov_id;  }
void FEConfigSlidingInfo::setParameters ( std::map< std::string, std::string >  my_keys_map)
void FEConfigSlidingInfo::setVersion ( int  id) [inline]

Definition at line 31 of file FEConfigSlidingInfo.h.

References m_version.

{ m_version = id; }
void FEConfigSlidingInfo::writeDB ( ) throw (std::runtime_error) [private]

Definition at line 100 of file FEConfigSlidingInfo.cc.

References alignCSCRings::e.

{
  this->checkConnection();
  this->checkPrepare();

  try {

    // number 1 is the id 
    m_writeStmt->setString(2, this->getConfigTag());
    m_writeStmt->setInt(3, this->getVersion());
    m_writeStmt->setInt(4, this->getIOVId());

    m_writeStmt->executeUpdate();


  } catch (SQLException &e) {
    throw(std::runtime_error("FEConfigSlidingInfo::writeDB():  "+e.getMessage()));
  }
  // Now get the ID
  if (!this->fetchID()) {
    throw(std::runtime_error("FEConfigSlidingInfo::writeDB:  Failed to write"));
  }


}

Friends And Related Function Documentation

friend class EcalCondDBInterface [friend]

Reimplemented from IDBObject.

Definition at line 13 of file FEConfigSlidingInfo.h.


Member Data Documentation

Definition at line 53 of file FEConfigSlidingInfo.h.

Referenced by getDBTime(), and setDBTime().

Definition at line 52 of file FEConfigSlidingInfo.h.

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

Definition at line 51 of file FEConfigSlidingInfo.h.

Referenced by getIOVId(), and setIOVId().

Definition at line 54 of file FEConfigSlidingInfo.h.

Referenced by getVersion(), and setVersion().