1 #ifndef CondCore_CondDB_Session_h
2 #define CondCore_CondDB_Session_h
39 namespace persistency {
41 class SessionConfiguration;
50 void start(
bool readOnly =
true);
69 explicit Session(
const std::shared_ptr<SessionImpl>& sessionImpl);
104 template <
typename T>
131 template <
typename T>
134 const boost::posix_time::ptime& creationTime = boost::posix_time::microsec_clock::universal_time());
136 template <
typename T>
140 const std::pair<Binary, Binary>& payloadAndStreamerInfoData,
141 const boost::posix_time::ptime& creationTime);
178 template <
typename T>
182 return createIov(cond::demangledName(
typeid(
T)), tag, timeType, synchronizationType);
185 template <
typename T>
187 std::string payloadObjectType = cond::demangledName(
typeid(payload));
193 throwException(
"Payload of type " + payloadObjectType +
" could not be stored. " + em,
"Session::storePayload");
207 throwException(
"Payload of type " + payloadObjectType +
" could not be stored. " + em,
"Session::storePayload");
212 template <
typename T>
217 if (!
fetchPayloadData(payloadHash, payloadType, payloadData, streamerInfoData))
218 throwException(
"Payload with id " + payloadHash +
" has not been found in the database.",
219 "Session::fetchPayload");
220 std::unique_ptr<T>
ret;
222 ret = deserialize<T>(
payloadType, payloadData, streamerInfoData);
225 throwException(
"Payload of type " + payloadType +
" with id " + payloadHash +
" could not be loaded. " + em,
226 "Session::fetchPayload");
237 void start(
bool readOnly =
true);
GTEditor editGlobalTag(const std::string &name)
Transaction(SessionImpl &session)
bool existsGlobalTag(const std::string &name)
tuple ret
prodAgent to be discontinued
Base exception class for the object to relational access.
std::pair< Binary, Binary > serialize(const T &payload)
void clearIov(const std::string &tag)
void start(bool readOnly=true)
RunInfoEditor editRunInfo()
IOVEditor createIov(const std::string &tag, cond::TimeType timeType, cond::SynchronizationType synchronizationType=cond::SYNCH_ANY)
Transaction & m_transaction
std::unique_ptr< T > fetchPayload(const cond::Hash &payloadHash)
TransactionScope(Transaction &transaction)
Transaction & transaction()
unsigned long long Time_t
Transaction & operator=(const Transaction &rhs)
coral::ISchema & nominalSchema()
char const * what() const noexceptoverride
void start(bool readOnly=true)
bool fetchPayloadData(const cond::Hash &payloadHash, std::string &payloadType, cond::Binary &payloadData, cond::Binary &streamerInfoData)
std::string connectionString()
cond::Hash storePayloadData(const std::string &payloadObjectType, const std::pair< Binary, Binary > &payloadAndStreamerInfoData, const boost::posix_time::ptime &creationTime)
IOVProxy readIov(const std::string &tag)
IOVEditor editIov(const std::string &tag)
cond::RunInfo_t getLastRun()
bool existsIov(const std::string &tag)
cond::Hash storePayload(const T &payload, const boost::posix_time::ptime &creationTime=boost::posix_time::microsec_clock::universal_time())
coral::ISessionProxy & coralSession()
IOVEditor createIovForPayload(const Hash &payloadHash, const std::string &tag, cond::TimeType timeType, cond::SynchronizationType synchronizationType=cond::SYNCH_ANY)
GTEditor createGlobalTag(const std::string &name)
Session & operator=(const Session &rhs)
GTProxy readGlobalTag(const std::string &name)
Transaction m_transaction
void throwException(const std::string &message, const std::string &methodName)
std::shared_ptr< SessionImpl > m_session
RunInfoProxy getRunInfo(cond::Time_t start, cond::Time_t end)