1 #ifndef FWCore_Framework_Schedule_h
2 #define FWCore_Framework_Schedule_h
82 #include "boost/shared_ptr.hpp"
94 class TriggerNamesService;
97 class BranchIDListHelper;
99 class ExceptionCollector;
100 class OutputModuleCommunicator;
101 class ProcessContext;
102 class PreallocationConfiguration;
103 class StreamSchedule;
104 class GlobalSchedule;
105 struct TriggerTimingReport;
106 class ModuleRegistry;
107 class TriggerResultInserter;
123 boost::shared_ptr<ActivityRegistry>
areg,
129 template <
typename T>
133 bool cleaningUpAfterException =
false);
135 template <
typename T>
138 bool cleaningUpAfterException =
false);
140 template <
typename T>
144 bool cleaningUpAfterException =
false);
188 void availablePaths(std::vector<std::string>& oLabelsToFill)
const;
192 std::vector<std::string>& oLabelsToFill)
const;
259 template <
typename T>
261 typename T::MyPrincipal& ep,
263 bool cleaningUpAfterException) {
268 template <
typename T>
270 typename T::MyPrincipal& ep,
272 bool cleaningUpAfterException) {
274 streamSchedules_[iStreamID]->processOneStream<
T>(ep,es,cleaningUpAfterException);
276 template <
typename T>
280 bool cleaningUpAfterException) {
std::vector< boost::shared_ptr< OutputModuleCommunicator > > AllOutputModuleCommunicators
void checkForCorrectness() const
Check that the schedule is actually runable.
std::vector< BranchIDList > BranchIDLists
AllWorkers const & allWorkers() const
returns the collection of pointers to workers
void availablePaths(std::vector< std::string > &oLabelsToFill) const
adds to oLabelsToFill the labels for all paths in the process
bool endPathsEnabled() const
void respondToCloseInputFile(FileBlock const &fb)
std::vector< Worker * > AllWorkers
void writeRun(RunPrincipal const &rp, ProcessContext const *)
void endStream(unsigned int)
void processOneEvent(unsigned int iStreamID, typename T::MyPrincipal &principal, EventSetup const &eventSetup, bool cleaningUpAfterException=false)
void writeLumi(LuminosityBlockPrincipal const &lbp, ProcessContext const *)
void enableEndPaths(bool active)
int totalEventsFailed() const
bool changeModule(std::string const &iLabel, ParameterSet const &iPSet, const ProductRegistry &iRegistry)
std::shared_ptr< TriggerResultInserter > resultsInserter_
int totalEventsPassed() const
void limitOutput(ParameterSet const &proc_pset, BranchIDLists const &branchIDLists)
void clearCounters()
Clear all the counters in the trigger report.
boost::shared_ptr< ModuleRegistry > moduleRegistry_
std::vector< std::shared_ptr< StreamSchedule > > streamSchedules_
std::vector< std::string > vstring
bool terminate() const
Return whether each output module has reached its maximum count.
void respondToOpenInputFile(FileBlock const &fb)
std::vector< Worker * > Workers
void getTriggerReport(TriggerReport &rep) const
void processOneGlobal(typename T::MyPrincipal &principal, EventSetup const &eventSetup, bool cleaningUpAfterException=false)
PreallocationConfiguration preallocConfig_
boost::shared_ptr< Worker > WorkerPtr
volatile bool endpathsAreActive_
AllOutputModuleCommunicators all_output_communicators_
void modulesInPath(std::string const &iPathLabel, std::vector< std::string > &oLabelsToFill) const
adds to oLabelsToFill in execution order the labels of all modules in path iPathLabel ...
Schedule(ParameterSet &proc_pset, service::TriggerNamesService &tns, ProductRegistry &pregistry, BranchIDListHelper &branchIDListHelper, ExceptionToActionTable const &actions, boost::shared_ptr< ActivityRegistry > areg, boost::shared_ptr< ProcessConfiguration > processConfiguration, const ParameterSet *subProcPSet, PreallocationConfiguration const &config, ProcessContext const *processContext)
void beginStream(unsigned int)
void postForkReacquireResources(unsigned int iChildIndex, unsigned int iNumberOfChildren)
std::vector< ModuleDescription const * > getAllModuleDescriptions() const
std::unique_ptr< GlobalSchedule > globalSchedule_
void processOneStream(unsigned int iStreamID, typename T::MyPrincipal &principal, EventSetup const &eventSetup, bool cleaningUpAfterException=false)
void beginJob(ProductRegistry const &)
void openNewOutputFilesIfNeeded()
void preForkReleaseResources()
void openOutputFiles(FileBlock &fb)
void endJob(ExceptionCollector &collector)
void getTriggerTimingReport(TriggerTimingReport &rep) const
bool shouldWeCloseOutput() const