1 #ifndef FWCore_Framework_EventSetupProvider_h 2 #define FWCore_Framework_EventSetupProvider_h 39 namespace eventsetup {
40 struct ComponentDescription;
46 class EventSetupsController;
47 class ParameterSetIDHolder;
61 PreferredProviderInfo
const* iInfo =
nullptr);
79 void add(std::shared_ptr<DataProxyProvider>);
81 void add(std::shared_ptr<EventSetupRecordIntervalFinder>);
93 std::set<ParameterSetIDHolder>& sharingCheckDone,
99 std::map<EventSetupRecordKey, bool>& allComponentsMatch,
116 void insert(std::unique_ptr<EventSetupRecordProvider> iRecordProvider);
144 std::unique_ptr<std::vector<std::shared_ptr<EventSetupRecordIntervalFinder>>>
finders_;
146 std::unique_ptr<std::map<EventSetupRecordKey, std::map<DataKey, ComponentDescription const*>>>
referencedDataKeys_;
147 std::unique_ptr<std::map<EventSetupRecordKey, std::vector<std::shared_ptr<EventSetupRecordIntervalFinder>>>>
150 std::unique_ptr<std::map<EventSetupRecordKey, std::map<DataKey, ComponentDescription>>>
recordToPreferred_;
EventSetupRecordProvider * tryToGetRecordProvider(const EventSetupRecordKey &iKey)
std::shared_ptr< EventSetupRecordProvider > & recordProvider(const EventSetupRecordKey &iKey)
void finishConfiguration()
static void logInfoWhenSharing(ParameterSet const &iConfiguration)
EventSetupImpl const & eventSetupForInstance(IOVSyncValue const &)
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)
std::vector< EventSetupRecordKey > RecordKeys
bool mustFinishConfiguration_
std::unique_ptr< std::map< ParameterSetIDHolder, std::set< EventSetupRecordKey > > > psetIDToRecordKey_
RecordProviders recordProviders_
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)
std::map< ComponentDescription, RecordToDataMap > PreferredProviderInfo
std::vector< std::shared_ptr< EventSetupRecordProvider >> RecordProviders
void insert(std::unique_ptr< EventSetupRecordProvider > iRecordProvider)
void add(std::shared_ptr< DataProxyProvider >)
EventSetupProvider const & operator=(EventSetupProvider const &)=delete
virtual ~EventSetupProvider()
std::unique_ptr< std::set< EventSetupRecordKey > > recordsWithALooperProxy_
std::unique_ptr< std::vector< std::shared_ptr< EventSetupRecordIntervalFinder > > > finders_
std::pair< DataType, DataLabel > DataKeyInfo
void addRecord(const EventSetupRecordKey &iKey)
Intended for use only in tests.
ESRecordsToProxyIndices recordsToProxyIndices() const
std::unique_ptr< PreferredProviderInfo > preferredProviderInfo_
void determinePreferred()
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()
EventSetupImpl const & eventSetup() const
unsigned subProcessIndex() const
void checkESProducerSharing(EventSetupProvider &precedingESProvider, std::set< ParameterSetIDHolder > &sharingCheckDone, std::map< EventSetupRecordKey, std::vector< ComponentDescription const * >> &referencedESProducers, EventSetupsController &esController)
EventSetupImpl eventSetup_
void addRecordToEventSetup(EventSetupRecordImpl &iRecord)
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)