1 #ifndef FWCore_Framework_EventSetupProvider_h 2 #define FWCore_Framework_EventSetupProvider_h 41 namespace eventsetup {
42 struct ComponentDescription;
48 class EventSetupsController;
49 class ParameterSetIDHolder;
78 void add(std::shared_ptr<DataProxyProvider>);
80 void add(std::shared_ptr<EventSetupRecordIntervalFinder>);
91 std::set<ParameterSetIDHolder>& sharingCheckDone,
97 std::map<EventSetupRecordKey, bool> & allComponentsMatch,
112 template <
typename T>
113 void insert(std::unique_ptr<T> iRecordProvider) {
114 std::unique_ptr<EventSetupRecordProvider>
temp(iRecordProvider.release());
116 typename T::RecordType,
130 typedef std::map<EventSetupRecordKey, std::shared_ptr<EventSetupRecordProvider> >
Providers;
139 std::unique_ptr<std::vector<std::shared_ptr<EventSetupRecordIntervalFinder> > >
finders_;
140 std::unique_ptr<std::vector<std::shared_ptr<DataProxyProvider> > >
dataProviders_;
141 std::unique_ptr<std::map<EventSetupRecordKey, std::map<DataKey, ComponentDescription const*> > >
referencedDataKeys_;
142 std::unique_ptr<std::map<EventSetupRecordKey, std::vector<std::shared_ptr<EventSetupRecordIntervalFinder> > > >
recordToFinders_;
144 std::unique_ptr<std::map<EventSetupRecordKey, std::map<DataKey, ComponentDescription> > >
recordToPreferred_;
EventSetup const & eventSetupForInstance(IOVSyncValue const &)
void finishConfiguration()
Key makeKey(const IdTag &iIdTag)
static void logInfoWhenSharing(ParameterSet const &iConfiguration)
void forceCacheClear()
Used when testing that all code properly updates on IOV changes of all Records.
EventSetupProvider(ActivityRegistry *, unsigned subProcessIndex=0U, PreferredProviderInfo const *iInfo=0)
bool mustFinishConfiguration_
std::unique_ptr< std::map< ParameterSetIDHolder, std::set< EventSetupRecordKey > > > psetIDToRecordKey_
std::multimap< RecordName, DataKeyInfo > RecordToDataMap
std::unique_ptr< std::map< EventSetupRecordKey, std::map< DataKey, ComponentDescription const * > > > referencedDataKeys_
void resetRecordPlusDependentRecords(EventSetupRecordKey const &)
Used when we need to force a Record to reset all its proxies.
void fillReferencedDataKeys(EventSetupRecordKey const &eventSetupRecordKey)
void addRecordToEventSetup(EventSetupRecord &iRecord)
std::map< ComponentDescription, RecordToDataMap > PreferredProviderInfo
void add(std::shared_ptr< DataProxyProvider >)
EventSetupProvider const & operator=(EventSetupProvider const &)=delete
void insert(std::unique_ptr< T > iRecordProvider)
virtual ~EventSetupProvider()
EventSetup const & eventSetup() const
std::unique_ptr< std::set< EventSetupRecordKey > > recordsWithALooperProxy_
std::unique_ptr< std::vector< std::shared_ptr< EventSetupRecordIntervalFinder > > > finders_
std::pair< DataType, DataLabel > DataKeyInfo
std::unique_ptr< PreferredProviderInfo > preferredProviderInfo_
std::unique_ptr< std::vector< std::shared_ptr< DataProxyProvider > > > dataProviders_
std::unique_ptr< std::map< EventSetupRecordKey, std::vector< std::shared_ptr< EventSetupRecordIntervalFinder > > > > recordToFinders_
void resetRecordToProxyPointers()
void checkESProducerSharing(EventSetupProvider &precedingESProvider, std::set< ParameterSetIDHolder > &sharingCheckDone, std::map< EventSetupRecordKey, std::vector< ComponentDescription const * > > &referencedESProducers, EventSetupsController &esController)
unsigned subProcessIndex() const
std::unique_ptr< EventSetupKnownRecordsSupplier > knownRecordsSupplier_
std::map< EventSetupRecordKey, std::shared_ptr< EventSetupRecordProvider > > Providers
std::unique_ptr< std::map< EventSetupRecordKey, std::map< DataKey, ComponentDescription > > > recordToPreferred_
void clearInitializationData()
void replaceExisting(std::shared_ptr< DataProxyProvider >)
std::set< ComponentDescription > proxyProviderDescriptions() const
unsigned subProcessIndex_
bool isWithinValidityInterval(IOVSyncValue const &) const
bool doRecordsMatch(EventSetupProvider &precedingESProvider, EventSetupRecordKey const &eventSetupRecordKey, std::map< EventSetupRecordKey, bool > &allComponentsMatch, EventSetupsController const &esController)