#include <DbSession.h>
Public Member Functions | |
const std::string & | blobStreamingService () const |
void | close () |
const DbConnection & | connection () const |
const std::string & | connectionString () const |
DbSession (const DbConnection &connection) | |
DbSession (const DbSession &rhs) | |
DbSession () | |
bool | deleteMapping (const std::string &mappingVersion) |
bool | deleteObject (const std::string &objectId) |
void | flush () |
ora::Object | getObject (const std::string &objectId) |
template<typename T > | |
boost::shared_ptr< T > | getTypedObject (const std::string &objectId) |
bool | importMapping (const std::string &sourceConnectionString, const std::string &contName) |
std::string | importObject (cond::DbSession &fromDatabase, const std::string &objectId) |
bool | isOpen () const |
bool | isTransactional () const |
coral::ISchema & | nominalSchema () |
void | open (const std::string &connectionString, bool readOnly=false) |
DbSession & | operator= (const DbSession &rhs) |
coral::ISchema & | schema (const std::string &schemaName) |
ora::Database & | storage () |
template<typename T > | |
std::string | storeObject (const T *object, const std::string &containerName) |
DbTransaction & | transaction () |
template<typename T > | |
bool | updateObject (const T *object, const std::string &objectId) |
virtual | ~DbSession () |
Private Member Functions | |
std::string | storeObject (const ora::Object &objectRef, const std::string &containerName) |
Private Attributes | |
boost::shared_ptr< SessionImpl > | m_implementation |
Definition at line 36 of file DbSession.h.
DbSession::DbSession | ( | ) |
Definition at line 99 of file DbSession.cc.
: m_implementation( new SessionImpl ){ }
DbSession::DbSession | ( | const DbConnection & | connection | ) | [explicit] |
Definition at line 103 of file DbSession.cc.
: m_implementation( new SessionImpl ( connection ) ){ }
DbSession::DbSession | ( | const DbSession & | rhs | ) |
Definition at line 107 of file DbSession.cc.
: m_implementation( rhs.m_implementation ){ }
DbSession::~DbSession | ( | ) | [virtual] |
Definition at line 111 of file DbSession.cc.
{ }
const std::string & DbSession::blobStreamingService | ( | ) | const |
Definition at line 148 of file DbSession.cc.
{ return m_implementation->blobStreamingService; }
void DbSession::close | ( | void | ) |
Definition at line 124 of file DbSession.cc.
Referenced by DTKeyedConfigHandler::getNewObjects(), DTLVStatusHandler::getNewObjects(), DTUserKeyedConfigHandler::getNewObjects(), DTHVStatusHandler::getNewObjects(), cond::PayLoadInspector< DataT >::summary(), cond::PayLoadInspector< DataT >::trend_plot(), and l1t::DataManager::~DataManager().
{ m_implementation->close(); }
cond::DbConnection const & DbSession::connection | ( | ) | const |
Definition at line 139 of file DbSession.cc.
{ return *(m_implementation->connection); }
const std::string & DbSession::connectionString | ( | ) | const |
Definition at line 133 of file DbSession.cc.
Referenced by cond::IOVEditor::debugInfo().
{ if(!m_implementation->database.get()) throw cond::Exception("DbSession::connectionString: cannot get connection string. Session has not been open."); return m_implementation->database->connectionString(); }
bool DbSession::deleteMapping | ( | const std::string & | mappingVersion | ) |
Definition at line 180 of file DbSession.cc.
References ora::DatabaseUtility::eraseMapping().
{ ora::DatabaseUtility utility = storage().utility(); utility.eraseMapping( mappingVersion ); return true; }
bool DbSession::deleteObject | ( | const std::string & | objectId | ) |
Definition at line 207 of file DbSession.cc.
References cont, ora::Container::erase(), ora::Container::flush(), and cond::parseToken().
Referenced by cond::IOVEditor::deleteEntries(), and cond::IOVEditor::truncate().
{ std::pair<std::string,int> oidData = parseToken( objectId ); ora::Container cont = storage().containerHandle( oidData.first ); cont.erase( oidData.second ); cont.flush(); return true; }
void DbSession::flush | ( | ) |
Definition at line 223 of file DbSession.cc.
ora::Object DbSession::getObject | ( | const std::string & | objectId | ) |
Definition at line 201 of file DbSession.cc.
References cont, ora::Container::fetchItem(), and cond::parseToken().
Referenced by importObject(), and cond::PayLoadInspector< DataT >::load().
{ std::pair<std::string,int> oidData = parseToken( objectId ); ora::Container cont = storage().containerHandle( oidData.first ); return cont.fetchItem( oidData.second ); }
boost::shared_ptr< T > DbSession::getTypedObject | ( | const std::string & | objectId | ) | [inline] |
Definition at line 98 of file DbSession.h.
References cont, ora::Database::containerHandle(), ora::Container::fetch(), cond::parseToken(), and storage().
Referenced by cond::IOVService::exportIOVRangeWithPayload(), cond::IOVEditor::import(), cond::IOVEditor::init(), cond::PayloadRef< std::vector< cond::Time_t > >::load(), cond::KeyList::load(), cond::PayLoadInspector< DataT >::plot(), l1t::DataWriter::readObject(), popcon::PopConSourceHandler< T >::Ref::Ref(), cond::impl::IOVImpl::refresh(), cond::PayLoadInspector< DataT >::summary(), and cond::PayLoadInspector< DataT >::trend_plot().
{ std::pair<std::string,int> oidData = parseToken( objectId ); ora::Container cont = storage().containerHandle( oidData.first ); return cont.fetch<T>( oidData.second ); }
bool DbSession::importMapping | ( | const std::string & | sourceConnectionString, |
const std::string & | contName | ||
) |
Definition at line 186 of file DbSession.cc.
References cond::buildTechnologyProxy(), and ora::DatabaseUtility::importContainerSchema().
{ ora::DatabaseUtility utility = storage().utility(); std::auto_ptr<cond::TechnologyProxy> technologyProxy = buildTechnologyProxy(sourceConnectionString, *(m_implementation->connection)); utility.importContainerSchema( (*technologyProxy).getRealConnectString(), contName ); return true; }
std::string DbSession::importObject | ( | cond::DbSession & | fromDatabase, |
const std::string & | objectId | ||
) |
Definition at line 215 of file DbSession.cc.
References runTheMatrix::data, ora::Object::destruct(), getObject(), and cond::parseToken().
Referenced by cond::IOVService::exportIOVRangeWithPayload(), and cond::IOVService::exportIOVWithPayload().
{ std::pair<std::string,int> oidData = parseToken( objectId ); ora::Object data = fromDatabase.getObject( objectId ); std::string tok = storeObject( data, oidData.first ); data.destruct(); return tok; }
bool DbSession::isOpen | ( | ) | const |
Definition at line 129 of file DbSession.cc.
Referenced by popcon::PopConSourceHandler< T >::Ref::~Ref().
{ return m_implementation->isOpen; }
bool DbSession::isTransactional | ( | ) | const |
Definition at line 144 of file DbSession.cc.
Referenced by CondDBESSource::CondDBESSource().
{ return m_implementation->technologyProxy->isTransactional(); }
coral::ISchema & DbSession::nominalSchema | ( | ) |
Definition at line 175 of file DbSession.cc.
Referenced by l1t::OMDSReader::basicQuery(), l1t::OMDSReader::basicQueryGenericKey(), l1t::OMDSReader::basicQueryView(), DTHVStatusHandler::checkForPeriod(), DTHVStatusHandler::checkNewData(), DTUserKeyedConfigHandler::chkConfigList(), DTKeyedConfigHandler::chkConfigList(), l1t::OMDSReader::columnNames(), l1t::OMDSReader::columnNamesView(), DTHVStatusHandler::createSnapshot(), DTHVStatusHandler::dumpHVAliases(), DTHVStatusHandler::dumpSnapshot(), DTHVStatusHandler::getChannelMap(), DTHVStatusHandler::getChannelSplit(), DTHVStatusHandler::getLayerSplit(), DTKeyedConfigHandler::getNewObjects(), DTUserKeyedConfigHandler::getNewObjects(), DTHVStatusHandler::recoverLastTime(), and DTHVStatusHandler::recoverSnapshot().
{ return storage().storageAccessSession().get().nominalSchema(); }
void DbSession::open | ( | const std::string & | connectionString, |
bool | readOnly = false |
||
) |
Definition at line 119 of file DbSession.cc.
Referenced by CondDBESSource::CondDBESSource(), l1t::DataManager::connect(), CondDBESSource::fillTagCollectionFromDB(), cond::RDBMS::getDB(), HcalO2OManager::getListOfPoolIovs(), HcalO2OManager::getListOfPoolTags(), DTKeyedConfigHandler::getNewObjects(), DTLVStatusHandler::getNewObjects(), DTUserKeyedConfigHandler::getNewObjects(), DTHVStatusHandler::getNewObjects(), cond::RDBMS::globalTag(), SiStripCoralIface::initialize(), L1ConfigOnlineProdBase< TRcd, TData >::L1ConfigOnlineProdBase(), cond::PayLoadInspector< DataT >::plot(), cond::service::PoolDBOutputService::PoolDBOutputService(), cond::RDBMS::setLogger(), cond::PayLoadInspector< DataT >::summary(), and cond::PayLoadInspector< DataT >::trend_plot().
{ m_implementation->open( connectionString, readOnly ); }
cond::DbSession & DbSession::operator= | ( | const DbSession & | rhs | ) |
Definition at line 114 of file DbSession.cc.
References m_implementation.
{ if(this!=&rhs) m_implementation = rhs.m_implementation; return *this; }
coral::ISchema & DbSession::schema | ( | const std::string & | schemaName | ) |
Definition at line 170 of file DbSession.cc.
Referenced by l1t::OMDSReader::basicQuery(), l1t::OMDSReader::basicQueryGenericKey(), l1t::OMDSReader::basicQueryView(), l1t::OMDSReader::columnNames(), l1t::OMDSReader::columnNamesView(), SiStripCoralIface::doNameQuery(), SiStripCoralIface::doQuery(), SiStripCoralIface::doSettingsQuery(), and L1CaloHcalScaleConfigOnlineProd::newObject().
{ return storage().storageAccessSession().get().schema( schemaName ); }
ora::Database & DbSession::storage | ( | ) |
Definition at line 162 of file DbSession.cc.
Referenced by getTypedObject(), storeObject(), and updateObject().
{ if(!m_implementation->connection.get() || !m_implementation->connection->isOpen()) throw cond::Exception("DbSession::storage: cannot access the storage. Underlying connection is closed."); if(!m_implementation->database.get()) throw cond::Exception("DbSession::storage: cannot access the database. Session has not been open."); return *m_implementation->database; }
std::string DbSession::storeObject | ( | const T * | object, |
const std::string & | containerName | ||
) | [inline] |
Definition at line 104 of file DbSession.h.
References ora::Container::className(), cont, ora::Database::containerHandle(), ora::Database::flush(), ora::Container::id(), ora::Database::insert(), ora::OId::itemId(), runTheMatrix::ret, storage(), and cond::writeToken().
Referenced by cond::IOVEditor::create(), cond::IOVService::exportIOVRangeWithPayload(), cond::IOVService::exportIOVWithPayload(), cond::service::GetTokenFromPointer< T >::operator()(), l1t::WriterProxyT< Record, Type >::save(), and l1t::DataWriter::writeKeyList().
{ std::string ret(""); if( object ){ ora::OId oid = storage().insert( containerName, *object ); storage().flush(); ora::Container cont = storage().containerHandle( containerName ); int oid0 = cont.id(); // contID does not start from 0... ret = writeToken( containerName, oid0, oid.itemId(), cont.className() ); } return ret; }
std::string DbSession::storeObject | ( | const ora::Object & | objectRef, |
const std::string & | containerName | ||
) | [private] |
Definition at line 194 of file DbSession.cc.
References ora::OId::containerId(), ora::OId::itemId(), and cond::writeToken().
{ ora::OId oid = storage().insertItem( containerName, object ); storage().flush(); int oid0 = oid.containerId(); // no clue why in POOL contId does not start from 0... return writeToken( containerName, oid0, oid.itemId(), object.typeName() ); }
cond::DbTransaction & DbSession::transaction | ( | ) |
Definition at line 153 of file DbSession.cc.
Referenced by cond::CondDB::allTags(), CondDBESSource::CondDBESSource(), l1t::OMDSReader::connect(), cond::PoolTransactionSentry::Elem::Elem(), DTKeyedConfigHandler::getNewObjects(), DTLVStatusHandler::getNewObjects(), DTUserKeyedConfigHandler::getNewObjects(), DTHVStatusHandler::getNewObjects(), cond::impl::IOVImpl::IOVImpl(), cond::CondDB::iovToken(), cond::KeyList::load(), cond::BasePayloadProxy::make(), l1t::OMDSReader::OMDSReader(), cond::PayLoadInspector< DataT >::PayLoadInspector(), cond::PayLoadInspector< DataT >::plot(), popcon::PopConSourceHandler< T >::Ref::Ref(), cond::PayLoadInspector< DataT >::summary(), cond::PayLoadInspector< DataT >::trend_plot(), cond::PoolTransactionSentry::Elem::~Elem(), cond::impl::IOVImpl::~IOVImpl(), and popcon::PopConSourceHandler< T >::Ref::~Ref().
{ if(!m_implementation->connection.get() || !m_implementation->connection->isOpen()) throw cond::Exception("DbSession::transaction: cannot open transaction. Underlying connection is closed."); if(!m_implementation->transaction.get()) throw cond::Exception("DbSession::transaction: cannot get transaction. Session has not been open."); return *m_implementation->transaction; }
bool DbSession::updateObject | ( | const T * | object, |
const std::string & | objectId | ||
) | [inline] |
Definition at line 117 of file DbSession.h.
References cont, ora::Database::containerHandle(), ora::Container::flush(), cond::parseToken(), runTheMatrix::ret, storage(), and ora::Container::update().
Referenced by cond::IOVEditor::append(), cond::IOVEditor::bulkAppend(), cond::IOVService::exportIOVRangeWithPayload(), cond::IOVEditor::freeInsert(), cond::IOVEditor::insert(), cond::IOVEditor::stamp(), cond::IOVEditor::truncate(), and cond::IOVEditor::updateClosure().
{ bool ret = false; if( object ){ std::pair<std::string,int> oidData = parseToken( objectId ); ora::Container cont = storage().containerHandle( oidData.first ); cont.update( oidData.second, *object ); cont.flush(); ret = true; } return ret; }
boost::shared_ptr<SessionImpl> cond::DbSession::m_implementation [private] |
Definition at line 95 of file DbSession.h.
Referenced by operator=().