1 #ifndef FWCore_Framework_EventProcessor_h 2 #define FWCore_Framework_EventProcessor_h 45 class ExceptionToActionTable;
46 class BranchIDListHelper;
47 class ThinnedAssociationsHelper;
49 class HistoryAppender;
56 namespace eventsetup {
58 class EventSetupsController;
72 enum StatusCode { epSuccess=0, epException=1, epOther=2, epSignal=3,
73 epInputComplete=4, epTimedOut=5, epCountComplete=6 };
83 std::vector<std::string>
const& defaultServices = std::vector<std::string>(),
84 std::vector<std::string>
const& forcedServices = std::vector<std::string>());
89 std::vector<std::string>
const& defaultServices,
90 std::vector<std::string>
const& forcedServices = std::vector<std::string>());
128 std::vector<ModuleDescription const*>
129 getAllModuleDescriptions()
const;
136 int totalEvents()
const;
140 int totalEventsPassed()
const;
144 int totalEventsFailed()
const;
148 void enableEndPaths(
bool active);
152 bool endPathsEnabled()
const;
159 void clearCounters();
190 return lastSourceTransition_;}
191 std::pair<edm::ProcessHistoryID, edm::RunNumber_t> nextRunID();
195 void closeInputFile(
bool cleaningUpAfterException);
196 void openOutputFiles();
197 void closeOutputFiles();
199 void respondToOpenInputFile();
200 void respondToCloseInputFile();
202 void startingNewLoop();
205 void prepareForNextLoop();
206 bool shouldWeCloseOutput()
const;
215 void endUnfinishedLumi();
218 std::shared_ptr<void>
const& iRunResource,
222 void globalEndLumiAsync(
edm::WaitingTaskHolder iTask, std::shared_ptr<LuminosityBlockProcessingStatus> iLumiStatus);
224 unsigned int iStreamIndex,
225 std::shared_ptr<LuminosityBlockProcessingStatus> iLumiStatus);
226 std::pair<ProcessHistoryID,RunNumber_t> readRun();
227 std::pair<ProcessHistoryID,RunNumber_t> readAndMergeRun();
232 void writeLumiAsync(
WaitingTaskHolder, std::shared_ptr<LuminosityBlockProcessingStatus> );
235 bool shouldWeStop()
const;
238 void setExceptionMessageRuns(
std::string& message);
239 void setExceptionMessageLumis(
std::string& message);
241 bool setDeferredException(std::exception_ptr);
248 void init(std::shared_ptr<ProcessDesc>& processDesc,
252 bool readNextEventForStream(
unsigned int iStreamIndex,
256 unsigned int iStreamIndex);
260 void readEvent(
unsigned int iStreamIndex);
264 unsigned int iStreamIndex);
267 unsigned int iStreamIndex);
307 std::atomic<unsigned int> streamLumiActive_{0};
336 bool firstEventInBlock_=
true;
342 bool printDependencies_ =
false;
350 return runToCompletion();
ProcessContext processContext_
SharedResourcesAcquirer sourceResourcesAcquirer_
edm::propagate_const< std::unique_ptr< InputSource > > input_
std::unique_ptr< ExceptionToActionTable const > act_table_
ProcessConfiguration const & processConfiguration() const
edm::propagate_const< std::unique_ptr< HistoryAppender > > historyAppender_
std::unique_ptr< edm::LimitedTaskQueue > lumiQueue_
std::shared_ptr< BranchIDListHelper const > branchIDListHelper() const
edm::propagate_const< std::shared_ptr< ProductRegistry > > preg_
std::set< std::pair< std::string, std::string > > ExcludedData
std::string exceptionMessageRuns_
PreallocationConfiguration preallocations_
unsigned int LuminosityBlockNumber_t
std::vector< SubProcess > subProcesses_
ServiceToken serviceToken_
std::atomic< bool > deferredExceptionPtrIsSet_
std::shared_ptr< ThinnedAssociationsHelper const > thinnedAssociationsHelper() const
std::string exceptionMessageLumis_
std::shared_ptr< ProductRegistry const > preg() const
std::vector< edm::SerialTaskQueue > streamQueues_
InputSource::ItemType lastTransitionType() const
ExcludedDataMap eventSetupDataToExcludeFromPrefetching_
edm::propagate_const< std::shared_ptr< EDLooperBase > > looper_
edm::propagate_const< std::unique_ptr< Schedule > > schedule_
std::shared_ptr< T > & get_underlying_safe(propagate_const< std::shared_ptr< T >> &iP)
std::shared_ptr< ProcessConfiguration const > processConfiguration_
std::shared_ptr< std::recursive_mutex > sourceMutex_
std::string exceptionMessageFiles_
std::shared_ptr< BranchIDListHelper > & branchIDListHelper()
std::shared_ptr< EDLooperBase > & looper()
InputSource::ItemType lastSourceTransition_
StatusCode asyncStopStatusCodeFromProcessingEvents_
edm::propagate_const< std::unique_ptr< FileBlock > > fb_
std::map< std::string, ExcludedData > ExcludedDataMap
edm::propagate_const< std::unique_ptr< eventsetup::EventSetupsController > > espController_
bool forceESCacheClearOnNewRun_
std::vector< std::shared_ptr< LuminosityBlockProcessingStatus > > streamLumiStatus_
edm::propagate_const< std::shared_ptr< ThinnedAssociationsHelper > > thinnedAssociationsHelper_
std::shared_ptr< ProductRegistry > & preg()
edm::propagate_const< std::shared_ptr< eventsetup::EventSetupProvider > > esp_
std::exception_ptr deferredExceptionPtr_
edm::SerialTaskQueue iovQueue_
PathsAndConsumesOfModules pathsAndConsumesOfModules_
bool asyncStopRequestedWhileProcessingEvents_
std::shared_ptr< ActivityRegistry > actReg_
edm::propagate_const< std::shared_ptr< BranchIDListHelper > > branchIDListHelper_
std::shared_ptr< ThinnedAssociationsHelper > & thinnedAssociationsHelper()
std::shared_ptr< EDLooperBase const > looper() const
PrincipalCache principalCache_