1 #ifndef FWCore_Framework_Schedule_h 2 #define FWCore_Framework_Schedule_h 96 class TriggerNamesService;
98 namespace evetnsetup {
137 std::shared_ptr<ActivityRegistry> areg,
138 std::shared_ptr<ProcessConfiguration> processConfiguration,
139 bool hasSubprocesses,
144 unsigned int iStreamID,
149 template <
typename T>
154 bool cleaningUpAfterException =
false);
156 template <
typename T>
158 unsigned int iStreamID,
162 bool cleaningUpAfterException =
false);
167 void beginStream(
unsigned int);
168 void endStream(
unsigned int);
184 void closeOutputFiles();
196 bool shouldWeCloseOutput()
const;
204 std::vector<ModuleDescription const*> getAllModuleDescriptions()
const;
207 void availablePaths(std::vector<std::string>& oLabelsToFill)
const;
212 void triggerPaths(std::vector<std::string>& oLabelsToFill)
const;
215 void endPaths(std::vector<std::string>& oLabelsToFill)
const;
218 void modulesInPath(
std::string const& iPathLabel, std::vector<std::string>& oLabelsToFill)
const;
222 void moduleDescriptionsInPath(
std::string const& iPathLabel,
223 std::vector<ModuleDescription const*>& descriptions,
224 unsigned int hint)
const;
228 void moduleDescriptionsInEndPath(
std::string const& iEndPathLabel,
229 std::vector<ModuleDescription const*>& descriptions,
230 unsigned int hint)
const;
232 void fillModuleAndConsumesInfo(std::vector<ModuleDescription const*>& allModuleDescriptions,
233 std::vector<std::pair<unsigned int, unsigned int>>& moduleIDToIndex,
234 std::vector<std::vector<ModuleDescription const*>>& modulesWhoseProductsAreConsumedBy,
240 int totalEvents()
const;
244 int totalEventsPassed()
const;
248 int totalEventsFailed()
const;
252 void enableEndPaths(
bool active);
256 bool endPathsEnabled()
const;
267 bool terminate()
const;
270 void clearCounters();
280 AllWorkers
const& allWorkers()
const;
317 template <
typename T>
319 unsigned int iStreamID,
320 typename T::MyPrincipal& ep,
323 bool cleaningUpAfterException) {
324 assert(iStreamID < streamSchedules_.size());
325 streamSchedules_[iStreamID]->processOneStreamAsync<
T>(
326 std::move(iTaskHolder), ep, es, token, cleaningUpAfterException);
329 template <
typename T>
331 typename T::MyPrincipal& ep,
334 bool cleaningUpAfterException) {
335 globalSchedule_->processOneGlobalAsync<
T>(iTaskHolder, ep, es, token, cleaningUpAfterException);
std::vector< BranchIDList > BranchIDLists
roAction_t actions[nactions]
std::shared_ptr< ModuleRegistry const > moduleRegistry() const
std::vector< Worker * > AllWorkers
std::vector< std::string > const * pathNames_
edm::propagate_const< std::unique_ptr< SystemTimeKeeper > > summaryTimeKeeper_
edm::propagate_const< std::unique_ptr< GlobalSchedule > > globalSchedule_
std::shared_ptr< TriggerResultInserter > & resultsInserter()
std::vector< edm::propagate_const< std::shared_ptr< PathStatusInserter > > > pathStatusInserters_
edm::propagate_const< std::shared_ptr< TriggerResultInserter > > resultsInserter_
void processOneStreamAsync(WaitingTaskHolder iTask, unsigned int iStreamID, typename T::MyPrincipal &principal, EventSetupImpl const &eventSetup, ServiceToken const &token, bool cleaningUpAfterException=false)
std::vector< std::string > vstring
std::shared_ptr< T > & get_underlying_safe(propagate_const< std::shared_ptr< T >> &iP)
edm::propagate_const< std::shared_ptr< ModuleRegistry > > moduleRegistry_
std::vector< Worker * > Workers
PreallocationConfiguration preallocConfig_
std::vector< edm::propagate_const< std::shared_ptr< StreamSchedule > > > streamSchedules_
volatile bool endpathsAreActive_
std::shared_ptr< TriggerResultInserter const > resultsInserter() const
std::vector< edm::propagate_const< std::shared_ptr< EndPathStatusInserter > > > endPathStatusInserters_
AllOutputModuleCommunicators all_output_communicators_
std::vector< edm::propagate_const< std::shared_ptr< OutputModuleCommunicator > > > AllOutputModuleCommunicators
std::vector< std::string > const * endPathNames_
std::shared_ptr< ModuleRegistry > & moduleRegistry()
static std::string const triggerPaths
void processOneGlobalAsync(WaitingTaskHolder iTask, typename T::MyPrincipal &principal, EventSetupImpl const &eventSetup, ServiceToken const &token, bool cleaningUpAfterException=false)