10#include <framework/database/DBStoreEntry.h>
11#include <framework/datastore/DataStore.h>
12#include <framework/datastore/StoreObjPtr.h>
13#include <framework/dataobjects/EventMetaData.h>
18#include <unordered_map>
44 template<
class T>
static std::string
objectName(
const std::string& name) {
return DataStore::objectName<T>(name); }
50 template<
class T>
static std::string
arrayName(
const std::string& name) {
return DataStore::arrayName<T>(name); }
71 const TClass* objClass,
bool array,
bool required =
true);
87 bool array,
bool required =
true)
126 void reset(
bool keepEntries =
false);
Class to hold one entry from the ConditionsDB in the DBStore.
EPayloadType
Possible Store entry types.
@ c_Object
A ROOT file containing a object with the name of the DBStoreEntry.
Singleton class to cache database objects.
DBStoreEntry * getEntry(const std::string &name, const TClass *objClass, bool array, bool required=true)
Returns the entry with the requested name in the DBStore.
StoreObjPtr< EventMetaData > m_storeEvent
StoreObjPtr for the EventMetaData to get the current experiment and run from the DataStore.
DBStore(const DBStore &)
same for copy constructor
std::set< DBStoreEntry * > m_intraRunDependencies
List of intra-run dependent conditions.
std::optional< EventMetaData > m_manualEvent
Optional EventMetaData variable.
static std::string objectName(const std::string &name)
Return the database name for an object of the given type and name.
std::unordered_map< std::string, DBStoreEntry > m_dbEntries
Map names to DBEntry objects.
static std::string arrayName(const std::string &name)
Return the database name for an object of the given type and name.
DBStore()
Hidden constructor, as it is a singleton.
Type-safe access to single objects in the data store.
void reset(bool keepEntries=false)
Invalidate all payloads.
void performUpdateEvent(const EventMetaData &event)
The main code that does an updateEvent.
static DBStore & Instance()
Instance of a singleton DBStore.
void performUpdate(const EventMetaData &event)
The main code that does an update, factored out so it can be used by both update and update(event).
DBStoreEntry * getEntry(DBStoreEntry::EPayloadType payloadType, const std::string &name, const TClass *objClass, bool array, bool required=true)
Returns the entry with the requested name in the DBStore.
void updateEvent()
Updates all intra-run dependent objects.
void update()
Updates all objects that are outside their interval of validity.
void addConstantOverride(const std::string &name, TObject *obj, bool oneRun=false)
Add constant override payload.
std::set< std::string > getAllEntryNames()
Return the names of all the payloads stored in the database at the time of this function is called.
Abstract base class for different kinds of events.