1 #ifndef FWCore_Framework_EventSetupsController_h
2 #define FWCore_Framework_EventSetupsController_h
29 #include "tbb/task_arena.h"
41 namespace eventsetup {
43 class DataProxyProvider;
44 class EventSetupProvider;
92 unsigned int maxConcurrentIOVs = 0,
93 bool dumpOptions =
false);
110 std::vector<std::shared_ptr<const EventSetupImpl>>&);
117 unsigned subProcessIndex);
119 std::shared_ptr<DataProxyProvider>
const& component,
120 unsigned subProcessIndex);
123 unsigned subProcessIndex);
125 std::shared_ptr<EventSetupRecordIntervalFinder>
const& component,
126 unsigned subProcessIndex);
134 unsigned subProcessIndex,
135 unsigned precedingProcessIndex,
136 bool& firstProcessWithThisPSet,
137 bool& precedingHasMatchingPSet)
const;
144 unsigned subProcessIndex,
145 unsigned precedingProcessIndex)
const;
148 unsigned subProcessIndex,
149 unsigned precedingProcessIndex)
const;
153 std::vector<propagate_const<std::shared_ptr<EventSetupProvider>>>
const&
providers()
const {
return providers_; }
168 std::vector<propagate_const<std::shared_ptr<EventSetupProvider>>>
providers_;
193 tbb::task_group& iGroup,
std::shared_ptr< EventSetupRecordIntervalFinder > const & finder()
void lookForMatches(ParameterSetID const &psetID, unsigned subProcessIndex, unsigned precedingProcessIndex, bool &firstProcessWithThisPSet, bool &precedingHasMatchingPSet) const
std::shared_ptr< EventSetupRecordIntervalFinder > getESSourceAndRegisterProcess(ParameterSet const &pset, unsigned subProcessIndex)
std::vector< unsigned > const & subProcessIndexes() const
bool isFirstMatch(ParameterSetID const &psetID, unsigned subProcessIndex, unsigned precedingProcessIndex) const
std::vector< unsigned > subProcessIndexes_
ParameterSet const * pset() const
bool isMatchingESProducer(ParameterSetID const &psetID, unsigned subProcessIndex, unsigned precedingProcessIndex) const
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::multimap< ParameterSetID, ESSourceInfo > const & essources() const
std::vector< unsigned > & subProcessIndexes()
std::vector< unsigned > const & subProcessIndexes() const
void putESProducer(ParameterSet const &pset, std::shared_ptr< DataProxyProvider > const &component, unsigned subProcessIndex)
std::multimap< ParameterSetID, ESProducerInfo > esproducers_
bool isLastMatch(ParameterSetID const &psetID, unsigned subProcessIndex, unsigned precedingProcessIndex) const
std::vector< propagate_const< std::shared_ptr< EventSetupProvider > > > const & providers() const
tbb::task_arena taskArena_
bool mustFinishConfiguration_
ParameterSet const * getESProducerPSet(ParameterSetID const &psetID, unsigned subProcessIndex) const
std::multimap< ParameterSetID, ESProducerInfo > const & esproducers() const
unsigned indexOfNextProcess() const
std::shared_ptr< DataProxyProvider > getESProducerAndRegisterProcess(ParameterSet const &pset, unsigned subProcessIndex)
void synchronousEventSetupForInstance(IOVSyncValue const &syncValue, tbb::task_group &iGroup, eventsetup::EventSetupsController &espController)
std::shared_ptr< DataProxyProvider > const & provider()
DataProxyProvider const * providerGet() const
std::multimap< ParameterSetID, ESSourceInfo > essources_
ESProducerInfo(ParameterSet const *ps, std::shared_ptr< DataProxyProvider > const &pr)
std::shared_ptr< EventSetupProvider > makeProvider(ParameterSet &, ActivityRegistry *, ParameterSet const *eventSetupPset=nullptr, unsigned int maxConcurrentIOVs=0, bool dumpOptions=false)
bool doWeNeedToWaitForIOVsToFinish(IOVSyncValue const &) const
void initializeEventSetupRecordIOVQueues()
propagate_const< std::shared_ptr< DataProxyProvider > > provider_
void eventSetupForInstanceAsync(IOVSyncValue const &, WaitingTaskHolder const &taskToStartAfterIOVInit, WaitingTaskList &endIOVWaitingTasks, std::vector< std::shared_ptr< const EventSetupImpl >> &)
bool mustFinishConfiguration() const
bool hasNonconcurrentFinder() const
ParameterSet const * pset_
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 > &)
bool hasNonconcurrentFinder_
void endIOVsAsync(edm::WaitingTaskHolder iEndTask)
bool isMatchingESSource(ParameterSetID const &psetID, unsigned subProcessIndex, unsigned precedingProcessIndex) const
propagate_const< std::shared_ptr< EventSetupRecordIntervalFinder > > finder_
EventSetupRecordIntervalFinder const * finderGet() const
std::vector< propagate_const< std::shared_ptr< EventSetupProvider > > > providers_
ParameterSet const * pset() const
NumberOfConcurrentIOVs numberOfConcurrentIOVs_