2 #ifndef FWCore_Framework_EventSetupProvider_h 3 #define FWCore_Framework_EventSetupProvider_h 31 class ActivityRegistry;
35 class ModuleTypeResolverMaker;
38 namespace eventsetup {
39 struct ComponentDescription;
41 class ESProductResolverProvider;
42 class EventSetupRecordImpl;
44 class EventSetupRecordProvider;
45 class EventSetupsController;
46 class NumberOfConcurrentIOVs;
47 class ParameterSetIDHolder;
48 class ESRecordsToProductResolverIndices;
80 void add(std::shared_ptr<ESProductResolverProvider>);
82 void add(std::shared_ptr<EventSetupRecordIntervalFinder>);
95 std::set<ParameterSetIDHolder>& sharingCheckDone,
101 std::map<EventSetupRecordKey, bool>& allComponentsMatch,
120 void fillKeys(std::set<EventSetupRecordKey>&
keys)
const;
147 std::unique_ptr<std::vector<std::shared_ptr<EventSetupRecordIntervalFinder>>>
finders_;
148 std::unique_ptr<std::vector<std::shared_ptr<ESProductResolverProvider>>>
dataProviders_;
149 std::unique_ptr<std::map<EventSetupRecordKey, std::map<DataKey, ComponentDescription const*>>>
referencedDataKeys_;
150 std::unique_ptr<std::map<EventSetupRecordKey, std::vector<std::shared_ptr<EventSetupRecordIntervalFinder>>>>
153 std::unique_ptr<std::map<EventSetupRecordKey, std::map<DataKey, ComponentDescription>>>
recordToPreferred_;
EventSetupImpl const & eventSetupImpl() const
propagate_const< std::shared_ptr< EventSetupImpl > > eventSetupImpl_
void clearInitializationData()
std::vector< EventSetupRecordKey > RecordKeys
bool mustFinishConfiguration_
std::unique_ptr< std::map< ParameterSetIDHolder, std::set< EventSetupRecordKey > > > psetIDToRecordKey_
RecordProviders recordProviders_
void resetRecordToResolverPointers()
void addRecord(const EventSetupRecordKey &iKey)
Intended for use only in tests.
std::multimap< RecordName, DataKeyInfo > RecordToDataMap
ESRecordsToProductResolverIndices recordsToResolverIndices() const
std::unique_ptr< std::map< EventSetupRecordKey, std::map< DataKey, ComponentDescription const * > > > referencedDataKeys_
void fillKeys(std::set< EventSetupRecordKey > &keys) const
void finishConfiguration(NumberOfConcurrentIOVs const &, bool &hasNonconcurrentFinder)
std::map< ComponentDescription, RecordToDataMap > PreferredProviderInfo
void forceCacheClear()
Used when testing that all code properly updates on IOV changes of all Records.
std::shared_ptr< EventSetupRecordProvider > & recordProvider(const EventSetupRecordKey &iKey)
EventSetupRecordProvider * tryToGetRecordProvider(const EventSetupRecordKey &iKey)
EventSetupProvider const & operator=(EventSetupProvider const &)=delete
bool doWeNeedToWaitForIOVsToFinish(IOVSyncValue const &) const
static void logInfoWhenSharing(ParameterSet const &iConfiguration)
void fillReferencedDataKeys(EventSetupRecordKey const &eventSetupRecordKey)
void fillRecordsNotAllowingConcurrentIOVs(std::set< EventSetupRecordKey > &recordsNotAllowingConcurrentIOVs) const
std::unique_ptr< std::vector< std::shared_ptr< EventSetupRecordIntervalFinder > > > finders_
std::pair< DataType, DataLabel > DataKeyInfo
ActivityRegistry const * activityRegistry_
std::unique_ptr< std::vector< std::shared_ptr< ESProductResolverProvider > > > dataProviders_
unsigned subProcessIndex() const
std::unique_ptr< PreferredProviderInfo > preferredProviderInfo_
std::shared_ptr< const EventSetupImpl > eventSetupForInstance(IOVSyncValue const &, bool &newEventSetupImpl)
void resetRecordPlusDependentRecords(EventSetupRecordKey const &)
Used when we need to force a Record to reset all its resolvers.
void determinePreferred()
std::unique_ptr< std::map< EventSetupRecordKey, std::vector< std::shared_ptr< EventSetupRecordIntervalFinder > > > > recordToFinders_
bool doRecordsMatch(EventSetupProvider &precedingESProvider, EventSetupRecordKey const &eventSetupRecordKey, std::map< EventSetupRecordKey, bool > &allComponentsMatch, EventSetupsController const &esController)
EventSetupProvider(ActivityRegistry const *, unsigned subProcessIndex=0U, PreferredProviderInfo const *iInfo=nullptr)
void setPreferredProviderInfo(PreferredProviderInfo const &iInfo)
void checkESProducerSharing(ModuleTypeResolverMaker const *resolverMaker, EventSetupProvider &precedingESProvider, std::set< ParameterSetIDHolder > &sharingCheckDone, std::map< EventSetupRecordKey, std::vector< ComponentDescription const *>> &referencedESProducers, EventSetupsController &esController)
void setAllValidityIntervals(const IOVSyncValue &iValue)
Set the validity intervals in all EventSetupRecordProviders.
void add(std::shared_ptr< ESProductResolverProvider >)
std::unique_ptr< std::map< EventSetupRecordKey, std::map< DataKey, ComponentDescription > > > recordToPreferred_
void insert(EventSetupRecordKey const &, std::unique_ptr< EventSetupRecordProvider >)
std::unique_ptr< std::set< EventSetupRecordKey > > recordsWithALooperResolver_
std::set< ComponentDescription > resolverProviderDescriptions() const
unsigned subProcessIndex_
void replaceExisting(std::shared_ptr< ESProductResolverProvider >)
std::vector< std::shared_ptr< EventSetupRecordProvider > > RecordProviders