CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
cond::persistency::Session Class Reference

#include <Session.h>

Public Member Functions

void clearIov (const std::string &tag)
 
void close ()
 
std::string connectionString ()
 
coral::ISessionProxy & coralSession ()
 
void createDatabase ()
 
GTEditor createGlobalTag (const std::string &name)
 
template<typename T >
IOVEditor createIov (const std::string &tag, cond::TimeType timeType, cond::SynchronizationType synchronizationType=cond::SYNCH_ANY)
 
IOVEditor createIov (const std::string &payloadType, const std::string &tag, cond::TimeType timeType, cond::SynchronizationType synchronizationType=cond::SYNCH_ANY)
 
IOVEditor createIov (const std::string &payloadType, const std::string &tag, cond::TimeType timeType, cond::SynchronizationType synchronizationType, const boost::posix_time::ptime &creationTime)
 
IOVEditor createIovForPayload (const Hash &payloadHash, const std::string &tag, cond::TimeType timeType, cond::SynchronizationType synchronizationType=cond::SYNCH_ANY)
 
GTEditor editGlobalTag (const std::string &name)
 
IOVEditor editIov (const std::string &tag)
 
RunInfoEditor editRunInfo ()
 
bool existsDatabase ()
 
bool existsGlobalTag (const std::string &name)
 
bool existsIov (const std::string &tag)
 
template<typename T >
std::unique_ptr< TfetchPayload (const cond::Hash &payloadHash)
 
bool fetchPayloadData (const cond::Hash &payloadHash, std::string &payloadType, cond::Binary &payloadData, cond::Binary &streamerInfoData)
 
bool getIovRange (const std::string &tag, cond::Time_t begin, cond::Time_t end, std::vector< std::tuple< cond::Time_t, cond::Hash > > &range)
 
RunInfoProxy getRunInfo (cond::Time_t start, cond::Time_t end)
 
bool getTagInfo (const std::string &tag, cond::Tag_t &info)
 
IOVProxy iovProxy ()
 
coral::ISchema & nominalSchema ()
 
Sessionoperator= (const Session &rhs)
 
GTProxy readGlobalTag (const std::string &name)
 
GTProxy readGlobalTag (const std::string &name, const std::string &preFix, const std::string &postFix)
 
IOVProxy readIov (const std::string &tag, bool full=false)
 
IOVProxy readIov (const std::string &tag, const boost::posix_time::ptime &snapshottime, bool full=false)
 
 Session ()
 
 Session (const std::shared_ptr< SessionImpl > &sessionImpl)
 
 Session (const Session &rhs)
 
template<typename T >
cond::Hash storePayload (const T &payload, const boost::posix_time::ptime &creationTime=boost::posix_time::microsec_clock::universal_time())
 
cond::Hash storePayloadData (const std::string &payloadObjectType, const std::pair< Binary, Binary > &payloadAndStreamerInfoData, const boost::posix_time::ptime &creationTime)
 
Transactiontransaction ()
 
virtual ~Session ()
 

Private Attributes

std::shared_ptr< SessionImplm_session
 
Transaction m_transaction
 

Detailed Description

Definition at line 63 of file Session.h.

Constructor & Destructor Documentation

Session::Session ( )

Definition at line 26 of file Session.cc.

26 : m_session(new SessionImpl), m_transaction(*m_session) {}
Transaction m_transaction
Definition: Session.h:186
std::shared_ptr< SessionImpl > m_session
Definition: Session.h:185
Session::Session ( const std::shared_ptr< SessionImpl > &  sessionImpl)
explicit

Definition at line 28 of file Session.cc.

29  : m_session(sessionImpl), m_transaction(*m_session) {}
Transaction m_transaction
Definition: Session.h:186
std::shared_ptr< SessionImpl > m_session
Definition: Session.h:185
Session::Session ( const Session rhs)

Definition at line 31 of file Session.cc.

31 : m_session(rhs.m_session), m_transaction(rhs.m_transaction) {}
Transaction m_transaction
Definition: Session.h:186
std::shared_ptr< SessionImpl > m_session
Definition: Session.h:185
Session::~Session ( )
virtual

Definition at line 33 of file Session.cc.

33 {}

Member Function Documentation

void Session::clearIov ( const std::string &  tag)

Definition at line 146 of file Session.cc.

References m_session.

146  {
147  m_session->openIovDb();
148  m_session->iovSchema().iovTable().erase(tag);
149  }
std::shared_ptr< SessionImpl > m_session
Definition: Session.h:185
void Session::close ( void  )
std::string Session::connectionString ( )

Definition at line 216 of file Session.cc.

References m_session.

Referenced by PCLMetadataWriter::endRun(), cond::persistency::PayloadReader::fetch(), cond::persistency::importIovs(), and popcon::PopCon::initialize().

216 { return m_session->connectionString; }
std::shared_ptr< SessionImpl > m_session
Definition: Session.h:185
coral::ISessionProxy & Session::coralSession ( )
void Session::createDatabase ( )

Definition at line 52 of file Session.cc.

References m_session.

Referenced by cond::persistency::importIovs(), and cond::service::PoolDBOutputService::initDB().

52 { m_session->openDb(); }
std::shared_ptr< SessionImpl > m_session
Definition: Session.h:185
GTEditor Session::createGlobalTag ( const std::string &  name)

Definition at line 156 of file Session.cc.

References m_session, and cond::persistency::throwException().

156  {
157  m_session->openGTDb();
158  if (m_session->gtSchema().gtTable().select(name))
159  throwException("The specified Global Tag \"" + name + "\" already exist in the database.",
160  "Session::createGlobalTag");
161  GTEditor editor(m_session, name);
162  return editor;
163  }
void throwException(const std::string &message, const std::string &methodName)
Definition: Exception.cc:12
std::shared_ptr< SessionImpl > m_session
Definition: Session.h:185
template<typename T >
IOVEditor Session::createIov ( const std::string &  tag,
cond::TimeType  timeType,
cond::SynchronizationType  synchronizationType = cond::SYNCH_ANY 
)
inline

Definition at line 190 of file Session.h.

Referenced by SiStripDetVOffHandler::analyze(), SiStripPayloadHandler< SiStripPayload >::analyze(), cond::persistency::copyIov(), cond::service::PoolDBOutputService::createNewIOV(), popcon::PopConBTransitionSourceHandler< T >::getObjectsForBTransition(), popcon::PopConESTransitionSourceHandler< T >::getObjectsForESTransition(), and cond::persistency::importIovs().

192  {
193  return createIov(cond::demangledName(typeid(T)), tag, timeType, synchronizationType);
194  }
IOVEditor createIov(const std::string &tag, cond::TimeType timeType, cond::SynchronizationType synchronizationType=cond::SYNCH_ANY)
Definition: Session.h:190
long double T
IOVEditor Session::createIov ( const std::string &  payloadType,
const std::string &  tag,
cond::TimeType  timeType,
cond::SynchronizationType  synchronizationType = cond::SYNCH_ANY 
)

Definition at line 100 of file Session.cc.

References m_session, and cond::persistency::throwException().

103  {
104  m_session->openDb();
105  if (m_session->iovSchema().tagTable().select(tag))
106  throwException("The specified tag \"" + tag + "\" already exist in the database.", "Session::createIov");
107  IOVEditor editor(m_session, tag, timeType, payloadType, synchronizationType);
108  return editor;
109  }
void throwException(const std::string &message, const std::string &methodName)
Definition: Exception.cc:12
std::shared_ptr< SessionImpl > m_session
Definition: Session.h:185
IOVEditor Session::createIov ( const std::string &  payloadType,
const std::string &  tag,
cond::TimeType  timeType,
cond::SynchronizationType  synchronizationType,
const boost::posix_time::ptime &  creationTime 
)

Definition at line 111 of file Session.cc.

References m_session, and cond::persistency::throwException().

115  {
116  m_session->openDb();
117  if (m_session->iovSchema().tagTable().select(tag))
118  throwException("The specified tag \"" + tag + "\" already exist in the database.", "Session::createIov");
119  IOVEditor editor(m_session, tag, timeType, payloadType, synchronizationType, creationTime);
120  return editor;
121  }
void throwException(const std::string &message, const std::string &methodName)
Definition: Exception.cc:12
std::shared_ptr< SessionImpl > m_session
Definition: Session.h:185
IOVEditor Session::createIovForPayload ( const Hash payloadHash,
const std::string &  tag,
cond::TimeType  timeType,
cond::SynchronizationType  synchronizationType = cond::SYNCH_ANY 
)

Definition at line 123 of file Session.cc.

References m_session, HLT_2018_cff::payloadType, AlCaHLTBitMon_QueryRunRegistry::string, and cond::persistency::throwException().

Referenced by cond::service::PoolDBOutputService::createNewIOV().

126  {
127  m_session->openDb();
128  if (m_session->iovSchema().tagTable().select(tag))
129  throwException("The specified tag \"" + tag + "\" already exist in the database.",
130  "Session::createIovForPayload");
132  if (!m_session->iovSchema().payloadTable().getType(payloadHash, payloadType))
133  throwException("The specified payloadId \"" + payloadHash + "\" does not exist in the database.",
134  "Session::createIovForPayload");
135  IOVEditor editor(m_session, tag, timeType, payloadType, synchronizationType);
136  return editor;
137  }
void throwException(const std::string &message, const std::string &methodName)
Definition: Exception.cc:12
std::shared_ptr< SessionImpl > m_session
Definition: Session.h:185
GTEditor Session::editGlobalTag ( const std::string &  name)

Definition at line 165 of file Session.cc.

References cond::persistency::GTEditor::load(), and m_session.

165  {
166  m_session->openGTDb();
167  GTEditor editor(m_session);
168  editor.load(name);
169  return editor;
170  }
std::shared_ptr< SessionImpl > m_session
Definition: Session.h:185
IOVEditor Session::editIov ( const std::string &  tag)
RunInfoEditor Session::editRunInfo ( )

Definition at line 210 of file Session.cc.

References cond::persistency::RunInfoEditor::init(), and m_session.

Referenced by RunInfoUpdate::appendNewRun(), and RunInfoUpdate::import().

210  {
211  RunInfoEditor editor(m_session);
212  editor.init();
213  return editor;
214  }
std::shared_ptr< SessionImpl > m_session
Definition: Session.h:185
bool Session::existsDatabase ( )
bool Session::existsGlobalTag ( const std::string &  name)

Definition at line 151 of file Session.cc.

References m_session.

151  {
152  m_session->openGTDb();
153  return m_session->gtSchema().gtTable().select(name);
154  }
std::shared_ptr< SessionImpl > m_session
Definition: Session.h:185
bool Session::existsIov ( const std::string &  tag)
template<typename T >
std::unique_ptr< T > Session::fetchPayload ( const cond::Hash payloadHash)
inline

Definition at line 224 of file Session.h.

References MillePedeFileConverter_cfg::e, HLT_2018_cff::payloadType, runTheMatrix::ret, AlCaHLTBitMon_QueryRunRegistry::string, cond::persistency::throwException(), and cms::Exception::what().

Referenced by SiStripDetVOffHandler::analyze(), SiStripDetVOffTkMapPlotter::analyze(), SiStripDetVOffPrinter::analyze(), SiStripPayloadHandler< SiStripPayload >::analyze(), SiStripDetVOffTrendPlotter::analyze(), BeamSpotRcdPrinter::analyze(), popcon::PopConBTransitionSourceHandler< T >::checkBOn(), cond::persistency::PayloadReader::fetch(), LHCInfoPopConSourceHandler::getNewObjects(), RunInfoUpdate::import(), L1ConfigOnlineProdBaseExt< TRcd, TData >::produce(), L1ConfigOnlineProdBase< TRcd, TData >::produce(), l1t::DataWriterExt::readObject(), and l1t::DataWriter::readObject().

224  {
225  cond::Binary payloadData;
226  cond::Binary streamerInfoData;
228  if (!fetchPayloadData(payloadHash, payloadType, payloadData, streamerInfoData))
229  throwException("Payload with id " + payloadHash + " has not been found in the database.",
230  "Session::fetchPayload");
231  std::unique_ptr<T> ret;
232  try {
233  ret = deserialize<T>(payloadType, payloadData, streamerInfoData);
234  } catch (const cond::persistency::Exception& e) {
235  std::string em(e.what());
236  throwException("Payload of type " + payloadType + " with id " + payloadHash + " could not be loaded. " + em,
237  "Session::fetchPayload");
238  }
239  return ret;
240  }
Base exception class for the object to relational access.
Definition: Exception.h:11
ret
prodAgent to be discontinued
char const * what() const override
Definition: Exception.cc:103
bool fetchPayloadData(const cond::Hash &payloadHash, std::string &payloadType, cond::Binary &payloadData, cond::Binary &streamerInfoData)
Definition: Session.cc:194
void throwException(const std::string &message, const std::string &methodName)
Definition: Exception.cc:12
bool Session::fetchPayloadData ( const cond::Hash payloadHash,
std::string &  payloadType,
cond::Binary payloadData,
cond::Binary streamerInfoData 
)

Definition at line 194 of file Session.cc.

References m_session.

Referenced by cond::persistency::fetch(), cond::persistency::fetchIfExists(), cond::persistency::importPayload(), cond::persistency::KeyList::loadFromDB(), and cond::persistency::KeyList::setKeys().

197  {
198  m_session->openIovDb();
199  return m_session->iovSchema().payloadTable().select(payloadHash, payloadType, payloadData, streamerInfoData);
200  }
std::shared_ptr< SessionImpl > m_session
Definition: Session.h:185
bool Session::getIovRange ( const std::string &  tag,
cond::Time_t  begin,
cond::Time_t  end,
std::vector< std::tuple< cond::Time_t, cond::Hash > > &  range 
)

Definition at line 91 of file Session.cc.

References m_session, FastTimerService_cff::range, and loadRecoTauTagMVAsFromPrepDB_cfi::snapshotTime.

Referenced by cond::payloadInspector::PlotBase::process(), and cond::payloadInspector::PlotBase::processTwoTags().

94  {
95  m_session->openIovDb();
96  boost::posix_time::ptime snapshotTime;
97  return m_session->iovSchema().iovTable().getRange(tag, begin, end, snapshotTime, range);
98  }
#define end
Definition: vmac.h:39
#define begin
Definition: vmac.h:32
std::shared_ptr< SessionImpl > m_session
Definition: Session.h:185
RunInfoProxy Session::getRunInfo ( cond::Time_t  start,
cond::Time_t  end 
)

Definition at line 202 of file Session.cc.

References cond::persistency::RunInfoProxy::load(), m_session, and cond::persistency::throwException().

202  {
203  if (!m_session->transaction.get())
204  throwException("The transaction is not active.", "Session::getRunInfo");
205  RunInfoProxy proxy(m_session);
206  proxy.load(start, end);
207  return proxy;
208  }
Definition: start.py:1
#define end
Definition: vmac.h:39
void throwException(const std::string &message, const std::string &methodName)
Definition: Exception.cc:12
std::shared_ptr< SessionImpl > m_session
Definition: Session.h:185
bool Session::getTagInfo ( const std::string &  tag,
cond::Tag_t info 
)

Definition at line 73 of file Session.cc.

References edmLumisInFiles::description, cond::Tag_t::endOfValidity, cond::Tag_t::lastValidatedTime, m_session, cond::Tag_t::payloadType, AlCaHLTBitMon_QueryRunRegistry::string, cond::Tag_t::synchronizationType, and cond::Tag_t::timeType.

Referenced by cond::payloadInspector::PlotBase::getTagInfo().

73  {
74  m_session->openIovDb();
76  return m_session->iovSchema().tagTable().select(tag,
77  info.timeType,
78  info.payloadType,
80  info.endOfValidity,
81  description,
82  info.lastValidatedTime);
83  }
SynchronizationType synchronizationType
Definition: Types.h:64
Time_t endOfValidity
Definition: Types.h:65
TimeType timeType
Definition: Types.h:63
std::string payloadType
Definition: Types.h:62
Time_t lastValidatedTime
Definition: Types.h:66
std::shared_ptr< SessionImpl > m_session
Definition: Session.h:185
IOVProxy Session::iovProxy ( )

Definition at line 85 of file Session.cc.

References m_session.

Referenced by cond::persistency::importIovs().

85  {
86  m_session->openIovDb();
87  IOVProxy proxy(m_session);
88  return proxy;
89  }
std::shared_ptr< SessionImpl > m_session
Definition: Session.h:185
coral::ISchema & Session::nominalSchema ( )
Session & Session::operator= ( const Session rhs)

Definition at line 35 of file Session.cc.

References m_session, and m_transaction.

35  {
36  m_session = rhs.m_session;
37  m_transaction = rhs.m_transaction;
38  return *this;
39  }
Transaction m_transaction
Definition: Session.h:186
std::shared_ptr< SessionImpl > m_session
Definition: Session.h:185
GTProxy Session::readGlobalTag ( const std::string &  name)

Definition at line 172 of file Session.cc.

References cond::persistency::GTProxy::load(), and m_session.

Referenced by CondDBESSource::fillTagCollectionFromGT().

172  {
173  m_session->openGTDb();
174  GTProxy proxy(m_session);
175  proxy.load(name);
176  return proxy;
177  }
std::shared_ptr< SessionImpl > m_session
Definition: Session.h:185
GTProxy Session::readGlobalTag ( const std::string &  name,
const std::string &  preFix,
const std::string &  postFix 
)

Definition at line 179 of file Session.cc.

References cond::persistency::GTProxy::load(), and m_session.

179  {
180  m_session->openGTDb();
181  GTProxy proxy(m_session);
182  proxy.load(name, preFix, postFix);
183  return proxy;
184  }
std::shared_ptr< SessionImpl > m_session
Definition: Session.h:185
IOVProxy Session::readIov ( const std::string &  tag,
bool  full = false 
)
IOVProxy Session::readIov ( const std::string &  tag,
const boost::posix_time::ptime &  snapshottime,
bool  full = false 
)

Definition at line 61 of file Session.cc.

References cond::persistency::IOVProxy::load(), and m_session.

61  {
62  m_session->openIovDb();
63  IOVProxy proxy(m_session);
64  proxy.load(tag, snapshottime, full);
65  return proxy;
66  }
Definition: GenABIO.cc:168
std::shared_ptr< SessionImpl > m_session
Definition: Session.h:185
template<typename T >
cond::Hash Session::storePayload ( const T payload,
const boost::posix_time::ptime &  creationTime = boost::posix_time::microsec_clock::universal_time() 
)
inline

Definition at line 197 of file Session.h.

References MillePedeFileConverter_cfg::e, runTheMatrix::ret, cond::serialize(), AlCaHLTBitMon_QueryRunRegistry::string, cond::persistency::throwException(), and cms::Exception::what().

Referenced by SiStripDetVOffHandler::analyze(), SiStripPayloadHandler< SiStripPayload >::analyze(), l1t::WriterProxyT< Record, Type >::save(), l1t::DataWriter::writeKeyList(), and l1t::DataWriterExt::writeKeyList().

197  {
198  std::string payloadObjectType = cond::demangledName(typeid(payload));
199  cond::Hash ret;
200  try {
201  ret = storePayloadData(payloadObjectType, serialize(payload), creationTime);
202  } catch (const cond::persistency::Exception& e) {
203  std::string em(e.what());
204  throwException("Payload of type " + payloadObjectType + " could not be stored. " + em, "Session::storePayload");
205  }
206  return ret;
207  }
Base exception class for the object to relational access.
Definition: Exception.h:11
std::pair< Binary, Binary > serialize(const T &payload)
Definition: Serialization.h:66
ret
prodAgent to be discontinued
char const * what() const override
Definition: Exception.cc:103
std::string Hash
Definition: Types.h:43
cond::Hash storePayloadData(const std::string &payloadObjectType, const std::pair< Binary, Binary > &payloadAndStreamerInfoData, const boost::posix_time::ptime &creationTime)
Definition: Session.cc:186
void throwException(const std::string &message, const std::string &methodName)
Definition: Exception.cc:12
cond::Hash Session::storePayloadData ( const std::string &  payloadObjectType,
const std::pair< Binary, Binary > &  payloadAndStreamerInfoData,
const boost::posix_time::ptime &  creationTime 
)

Definition at line 186 of file Session.cc.

References m_session.

Referenced by cond::persistency::importPayload().

188  {
189  m_session->openDb();
190  return m_session->iovSchema().payloadTable().insertIfNew(
191  payloadObjectType, payloadAndStreamerInfoData.first, payloadAndStreamerInfoData.second, creationTime);
192  }
std::shared_ptr< SessionImpl > m_session
Definition: Session.h:185
Transaction & Session::transaction ( )

Definition at line 43 of file Session.cc.

References m_transaction.

Referenced by SiStripDetVOffHandler::analyze(), SiStripDetVOffTkMapPlotter::analyze(), SiStripDetVOffPrinter::analyze(), SiStripPayloadHandler< SiStripPayload >::analyze(), SiStripDetVOffTrendPlotter::analyze(), BeamSpotRcdPrinter::analyze(), cond::service::PoolDBOutputService::appendSinceTime(), popcon::PopConBTransitionSourceHandler< T >::checkBOn(), popcon::PopConESTransitionSourceHandler< T >::checkLowGain(), cond::service::PoolDBOutputService::closeIOV(), l1t::OMDSReader::connect(), cond::persistency::copyIov(), cond::service::PoolDBOutputService::createNewIOV(), cond::persistency::PayloadReader::fetch(), CondDBESSource::fillTagCollectionFromGT(), popcon::PopCon::finalize(), FillInfoPopConSourceHandler::getNewObjects(), LHCInfoPopConSourceHandler::getNewObjects(), DTLVStatusHandler::getNewObjects(), DTHVStatusHandler::getNewObjects(), popcon::PopConBTransitionSourceHandler< T >::getObjectsForBTransition(), popcon::PopConESTransitionSourceHandler< T >::getObjectsForESTransition(), cond::persistency::importIovs(), cond::service::PoolDBOutputService::initDB(), SiStripCoralIface::initialize(), popcon::PopCon::initialize(), cond::persistency::KeyList::loadFromDB(), cond::DataProxyWrapperBase::loadTag(), cond::service::PoolDBOutputService::lookUpRecord(), l1t::OMDSReader::OMDSReader(), l1t::DataWriter::payloadToken(), l1t::DataWriterExt::payloadToken(), cond::service::PoolDBOutputService::postEndJob(), cond::payloadInspector::PlotBase::process(), cond::payloadInspector::PlotBase::processTwoTags(), L1ConfigOnlineProdBaseExt< TRcd, TData >::produce(), L1ConfigOnlineProdBase< TRcd, TData >::produce(), L1RCTOmdsFedVectorProducer::produce(), popcon::RPCEMapSourceHandler::readEMap1(), popcon::L1RPCHwConfigSourceHandler::readHwConfig1(), l1t::DataWriter::readObject(), l1t::WriterProxyT< Record, Type >::save(), cond::DataProxyWrapperBase::setIntervalFor(), cond::persistency::KeyList::setKeys(), l1t::DataWriter::writeKeyList(), l1t::DataWriterExt::writeKeyList(), l1t::DataWriter::writePayload(), cond::service::PoolDBOutputService::~PoolDBOutputService(), and popcon::PopCon::~PopCon().

43 { return m_transaction; }
Transaction m_transaction
Definition: Session.h:186

Member Data Documentation

std::shared_ptr<SessionImpl> cond::persistency::Session::m_session
private
Transaction cond::persistency::Session::m_transaction
private

Definition at line 186 of file Session.h.

Referenced by operator=(), and transaction().