1 #ifndef FWCore_Framework_EventSetupsController_h 2 #define FWCore_Framework_EventSetupsController_h 32 class ActivityRegistry;
37 class ModuleTypeResolverMaker;
42 namespace eventsetup {
44 class ESProductResolverProvider;
45 class EventSetupProvider;
95 unsigned int maxConcurrentIOVs = 0,
105 std::vector<std::shared_ptr<const EventSetupImpl>>&,
109 bool iForceCacheClear =
false);
127 std::vector<std::shared_ptr<const EventSetupImpl>>&);
134 unsigned subProcessIndex);
136 std::shared_ptr<ESProductResolverProvider>
const& component,
137 unsigned subProcessIndex);
140 unsigned subProcessIndex);
142 std::shared_ptr<EventSetupRecordIntervalFinder>
const& component,
143 unsigned subProcessIndex);
151 unsigned subProcessIndex,
152 unsigned precedingProcessIndex,
153 bool& firstProcessWithThisPSet,
154 bool& precedingHasMatchingPSet)
const;
161 unsigned subProcessIndex,
162 unsigned precedingProcessIndex)
const;
165 unsigned subProcessIndex,
166 unsigned precedingProcessIndex)
const;
170 std::vector<propagate_const<std::shared_ptr<EventSetupProvider>>>
const&
providers()
const {
return providers_; }
184 std::vector<propagate_const<std::shared_ptr<EventSetupProvider>>>
providers_;
211 oneapi::tbb::task_group& iGroup,
std::shared_ptr< EventSetupRecordIntervalFinder > const & finder()
std::shared_ptr< EventSetupRecordIntervalFinder > getESSourceAndRegisterProcess(ParameterSet const &pset, unsigned subProcessIndex)
std::shared_ptr< ESProductResolverProvider > getESProducerAndRegisterProcess(ParameterSet const &pset, unsigned subProcessIndex)
std::vector< unsigned > subProcessIndexes_
void checkESProducerSharing()
std::vector< propagate_const< std::unique_ptr< EventSetupRecordIOVQueue > > > eventSetupRecordIOVQueues_
std::vector< unsigned > & subProcessIndexes()
void putESSource(ParameterSet const &pset, std::shared_ptr< EventSetupRecordIntervalFinder > const &component, unsigned subProcessIndex)
std::vector< unsigned > & subProcessIndexes()
bool isMatchingESSource(ParameterSetID const &psetID, unsigned subProcessIndex, unsigned precedingProcessIndex) const
std::multimap< ParameterSetID, ESProducerInfo > esproducers_
edm::propagate_const< ParameterSet * > pset_
bool mustFinishConfiguration_
void lookForMatches(ParameterSetID const &psetID, unsigned subProcessIndex, unsigned precedingProcessIndex, bool &firstProcessWithThisPSet, bool &precedingHasMatchingPSet) const
unsigned indexOfNextProcess() const
bool hasNonconcurrentFinder() const
ESProducerInfo(ParameterSet *ps, std::shared_ptr< ESProductResolverProvider > const &pr)
void synchronousEventSetupForInstance(IOVSyncValue const &syncValue, oneapi::tbb::task_group &iGroup, eventsetup::EventSetupsController &espController)
ParameterSet & getESProducerPSet(ParameterSetID const &psetID, unsigned subProcessIndex)
bool isLastMatch(ParameterSetID const &psetID, unsigned subProcessIndex, unsigned precedingProcessIndex) const
std::vector< unsigned > const & subProcessIndexes() const
propagate_const< std::shared_ptr< ESProductResolverProvider > > provider_
std::vector< unsigned > const & subProcessIndexes() const
std::multimap< ParameterSetID, ESSourceInfo > essources_
bool isMatchingESProducer(ParameterSetID const &psetID, unsigned subProcessIndex, unsigned precedingProcessIndex) const
std::shared_ptr< EventSetupProvider > makeProvider(ParameterSet &, ActivityRegistry *, ParameterSet const *eventSetupPset=nullptr, unsigned int maxConcurrentIOVs=0, bool dumpOptions=false)
std::vector< propagate_const< std::shared_ptr< EventSetupProvider > > > const & providers() const
void putESProducer(ParameterSet &pset, std::shared_ptr< ESProductResolverProvider > const &component, unsigned subProcessIndex)
void initializeEventSetupRecordIOVQueues()
void eventSetupForInstanceAsync(IOVSyncValue const &, WaitingTaskHolder const &taskToStartAfterIOVInit, WaitingTaskList &endIOVWaitingTasks, std::vector< std::shared_ptr< const EventSetupImpl >> &)
ParameterSet const * pset() const
ParameterSet const * pset_
EventSetupsController const & operator=(EventSetupsController const &)=delete
ESSourceInfo(ParameterSet const *ps, std::shared_ptr< EventSetupRecordIntervalFinder > const &fi)
std::vector< unsigned > subProcessIndexes_
void finishConfiguration()
constexpr T & get_underlying(propagate_const< T > &)
ESProductResolverProvider const * providerGet() const
bool hasNonconcurrentFinder_
bool isFirstMatch(ParameterSetID const &psetID, unsigned subProcessIndex, unsigned precedingProcessIndex) const
void endIOVsAsync(edm::WaitingTaskHolder iEndTask)
EventSetupRecordIntervalFinder const * finderGet() const
bool mustFinishConfiguration() const
void runOrQueueEventSetupForInstanceAsync(IOVSyncValue const &, WaitingTaskHolder &taskToStartAfterIOVInit, WaitingTaskList &endIOVWaitingTasks, std::vector< std::shared_ptr< const EventSetupImpl >> &, edm::SerialTaskQueue &queueWhichWaitsForIOVsToFinish, ActivityRegistry *, ServiceToken const &, bool iForceCacheClear=false)
std::multimap< ParameterSetID, ESProducerInfo > const & esproducers() const
std::multimap< ParameterSetID, ESSourceInfo > const & essources() const
std::shared_ptr< ESProductResolverProvider > const & provider()
ParameterSet const * pset() const
propagate_const< std::shared_ptr< EventSetupRecordIntervalFinder > > finder_
bool doWeNeedToWaitForIOVsToFinish(IOVSyncValue const &) const
std::vector< propagate_const< std::shared_ptr< EventSetupProvider > > > providers_
NumberOfConcurrentIOVs numberOfConcurrentIOVs_
ModuleTypeResolverMaker const * typeResolverMaker_