Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
art::EventProcessor Class Reference

#include "/cvmfs/nova.opensciencegrid.org/externals/art/v3_05_01/source/art/Framework/EventProcessor/EventProcessor.h"

Public Types

enum  Status { epSuccess = 0, epSignal = 3 }
 
using StatusCode = Status
 

Public Member Functions

 ~EventProcessor ()
 
 EventProcessor (fhicl::ParameterSet const &pset, std::map< std::string, detail::ModuleKeyAndType > const &enabled_modules)
 
 EventProcessor (EventProcessor const &)=delete
 
 EventProcessor (EventProcessor &&)=delete
 
EventProcessoroperator= (EventProcessor const &)=delete
 
EventProcessoroperator= (EventProcessor &&)=delete
 
StatusCode runToCompletion ()
 
void processAllEventsTask (tbb::task *eventLoopTask, ScheduleID const, std::exception_ptr const *)
 
void readAndProcessEventTask (tbb::task *eventLoopTask, ScheduleID const, std::exception_ptr const *)
 
void endPathTask (tbb::task *eventLoopTask, ScheduleID const, std::exception_ptr const *)
 
void endPathRunnerTask (ScheduleID const, tbb::task *eventLoopTask)
 

Private Types

template<typename T >
using tsan = hep::concurrency::thread_sanitize< T >
 
template<typename T >
using tsan_unique_ptr = hep::concurrency::thread_sanitize_unique_ptr< T >
 

Private Member Functions

void processAllEventsAsync (tbb::task *EventLoopTask, ScheduleID const)
 
void readAndProcessAsync (tbb::task *EventLoopTask, ScheduleID const)
 
void processEventAsync (tbb::task *EventLoopTask, ScheduleID const)
 
void processEndPathAsync (tbb::task *EventLoopTask, ScheduleID const)
 
void finishEventAsync (tbb::task *eventLoopTask, ScheduleID const)
 
template<Level L>
bool levelsToProcess ()
 
template<Level L>
std::enable_if_t< is_above_most_deeply_nested_level(L)> begin ()
 
template<Level L>
void process ()
 
template<Level L>
void finalize ()
 
template<Level L>
void finalizeContainingLevels ()
 
template<Level L>
void recordOutputModuleClosureRequests ()
 
Level advanceItemType ()
 
void beginJob ()
 
void endJob ()
 
void endJobAllSchedules ()
 
void openInputFile ()
 
bool outputsToOpen ()
 
void openSomeOutputFiles ()
 
void closeInputFile ()
 
void closeSomeOutputFiles ()
 
void closeAllOutputFiles ()
 
void closeAllFiles ()
 
void respondToOpenInputFile ()
 
void respondToCloseInputFile ()
 
void respondToOpenOutputFiles ()
 
void respondToCloseOutputFiles ()
 
void readRun ()
 
void beginRun ()
 
void beginRunIfNotDoneAlready ()
 
void setRunAuxiliaryRangeSetID ()
 
void endRun ()
 
void writeRun ()
 
void readSubRun ()
 
void beginSubRun ()
 
void beginSubRunIfNotDoneAlready ()
 
void setSubRunAuxiliaryRangeSetID ()
 
void endSubRun ()
 
void writeSubRun ()
 
void readEvent ()
 
void processEvent ()
 
void writeEvent ()
 
void setOutputFileStatus (OutputFileStatus)
 
void invokePostBeginJobWorkers_ ()
 
void terminateAbnormally_ ()
 

Private Attributes

std::atomic< LevelnextLevel_ {Level::ReadyToAdvance}
 
tsan< detail::ExceptionCollectorec_ {}
 
tsan< cet::cpu_timertimer_ {}
 
std::atomic< bool > beginRunCalled_ {false}
 
std::atomic< bool > beginSubRunCalled_ {false}
 
std::atomic< bool > finalizeRunEnabled_ {true}
 
std::atomic< bool > finalizeSubRunEnabled_ {true}
 
tsan< ActivityRegistryactReg_ {}
 
tsan< MFStatusUpdatermfStatusUpdater_ {actReg_}
 
tsan< UpdateOutputCallbacksoutputCallbacks_ {}
 
tsan< ProductDescriptionsproducedProductDescriptions_ {}
 
tsan< ProductTablesproducedProductLookupTables_ {ProductTables::invalid()}
 
tsan< ProducingServiceSignalspsSignals_ {}
 
tsan< Schedulerscheduler_
 
ScheduleIteration scheduleIteration_
 
tsan_unique_ptr< ServicesManagerservicesManager_
 
tsan< PathManagerpathManager_
 
tsan_unique_ptr< InputSourceinput_ {nullptr}
 
tsan< std::map< ScheduleID, Schedule > > schedules_ {}
 
tsan< std::map< ScheduleID, EndPathExecutor > > endPathExecutors_ {}
 
tsan< hep::concurrency::SerialTaskQueue > endPathQueue_ {}
 
tsan_unique_ptr< FileBlockfb_ {nullptr}
 
tsan_unique_ptr< RunPrincipalrunPrincipal_ {nullptr}
 
tsan_unique_ptr< SubRunPrincipalsubRunPrincipal_ {nullptr}
 
tsan< PerScheduleContainer< EventPrincipal * > > eventPrincipals_ {}
 
bool const handleEmptyRuns_
 
bool const handleEmptySubRuns_
 
std::atomic< bool > deferredExceptionPtrIsSet_ {false}
 
tsan< std::exception_ptr > deferredExceptionPtr_ {}
 
std::atomic< bool > firstEvent_ {true}
 
std::atomic< bool > fileSwitchInProgress_ {false}
 

Detailed Description

Definition at line 44 of file EventProcessor.h.

Member Typedef Documentation

Definition at line 52 of file EventProcessor.h.

template<typename T >
using art::EventProcessor::tsan = hep::concurrency::thread_sanitize<T>
private

Definition at line 156 of file EventProcessor.h.

template<typename T >
using art::EventProcessor::tsan_unique_ptr = hep::concurrency::thread_sanitize_unique_ptr<T>
private

Definition at line 159 of file EventProcessor.h.

Member Enumeration Documentation

Enumerator
epSuccess 
epSignal 

Definition at line 50 of file EventProcessor.h.

Constructor & Destructor Documentation

art::EventProcessor::~EventProcessor ( )
art::EventProcessor::EventProcessor ( fhicl::ParameterSet const &  pset,
std::map< std::string, detail::ModuleKeyAndType > const &  enabled_modules 
)
explicit
art::EventProcessor::EventProcessor ( EventProcessor const &  )
delete
art::EventProcessor::EventProcessor ( EventProcessor &&  )
delete

Member Function Documentation

Level art::EventProcessor::advanceItemType ( )
private
template<Level L>
std::enable_if_t<is_above_most_deeply_nested_level(L)> art::EventProcessor::begin ( )
private
void art::EventProcessor::beginJob ( )
private
void art::EventProcessor::beginRun ( )
private
void art::EventProcessor::beginRunIfNotDoneAlready ( )
private
void art::EventProcessor::beginSubRun ( )
private
void art::EventProcessor::beginSubRunIfNotDoneAlready ( )
private
void art::EventProcessor::closeAllFiles ( )
private
void art::EventProcessor::closeAllOutputFiles ( )
private
void art::EventProcessor::closeInputFile ( )
private
void art::EventProcessor::closeSomeOutputFiles ( )
private
void art::EventProcessor::endJob ( )
private
void art::EventProcessor::endJobAllSchedules ( )
private
void art::EventProcessor::endPathRunnerTask ( ScheduleID  const,
tbb::task *  eventLoopTask 
)
void art::EventProcessor::endPathTask ( tbb::task *  eventLoopTask,
ScheduleID  const,
std::exception_ptr const *   
)
void art::EventProcessor::endRun ( )
private
void art::EventProcessor::endSubRun ( )
private
template<Level L>
void art::EventProcessor::finalize ( )
private
template<Level L>
void art::EventProcessor::finalizeContainingLevels ( )
inlineprivate

Definition at line 112 of file EventProcessor.h.

113  {}
void art::EventProcessor::finishEventAsync ( tbb::task *  eventLoopTask,
ScheduleID  const 
)
private
void art::EventProcessor::invokePostBeginJobWorkers_ ( )
private
template<Level L>
bool art::EventProcessor::levelsToProcess ( )
private
void art::EventProcessor::openInputFile ( )
private
void art::EventProcessor::openSomeOutputFiles ( )
private
EventProcessor& art::EventProcessor::operator= ( EventProcessor const &  )
delete
EventProcessor& art::EventProcessor::operator= ( EventProcessor &&  )
delete
bool art::EventProcessor::outputsToOpen ( )
private
template<Level L>
void art::EventProcessor::process ( )
private
void art::EventProcessor::processAllEventsAsync ( tbb::task *  EventLoopTask,
ScheduleID  const 
)
private
void art::EventProcessor::processAllEventsTask ( tbb::task *  eventLoopTask,
ScheduleID  const,
std::exception_ptr const *   
)
void art::EventProcessor::processEndPathAsync ( tbb::task *  EventLoopTask,
ScheduleID  const 
)
private
void art::EventProcessor::processEvent ( )
private
void art::EventProcessor::processEventAsync ( tbb::task *  EventLoopTask,
ScheduleID  const 
)
private
void art::EventProcessor::readAndProcessAsync ( tbb::task *  EventLoopTask,
ScheduleID  const 
)
private
void art::EventProcessor::readAndProcessEventTask ( tbb::task *  eventLoopTask,
ScheduleID  const,
std::exception_ptr const *   
)
void art::EventProcessor::readEvent ( )
private
void art::EventProcessor::readRun ( )
private
void art::EventProcessor::readSubRun ( )
private
template<Level L>
void art::EventProcessor::recordOutputModuleClosureRequests ( )
inlineprivate

Definition at line 116 of file EventProcessor.h.

References breakpoints::beginJob().

117  {}
void art::EventProcessor::respondToCloseInputFile ( )
private
void art::EventProcessor::respondToCloseOutputFiles ( )
private
void art::EventProcessor::respondToOpenInputFile ( )
private
void art::EventProcessor::respondToOpenOutputFiles ( )
private
StatusCode art::EventProcessor::runToCompletion ( )
void art::EventProcessor::setOutputFileStatus ( OutputFileStatus  )
private
void art::EventProcessor::setRunAuxiliaryRangeSetID ( )
private
void art::EventProcessor::setSubRunAuxiliaryRangeSetID ( )
private
void art::EventProcessor::terminateAbnormally_ ( )
private
void art::EventProcessor::writeEvent ( )
private
void art::EventProcessor::writeRun ( )
private
void art::EventProcessor::writeSubRun ( )
private

Member Data Documentation

tsan<ActivityRegistry> art::EventProcessor::actReg_ {}
private

Definition at line 184 of file EventProcessor.h.

std::atomic<bool> art::EventProcessor::beginRunCalled_ {false}
private

Definition at line 171 of file EventProcessor.h.

std::atomic<bool> art::EventProcessor::beginSubRunCalled_ {false}
private

Definition at line 174 of file EventProcessor.h.

tsan<std::exception_ptr> art::EventProcessor::deferredExceptionPtr_ {}
private

Definition at line 257 of file EventProcessor.h.

std::atomic<bool> art::EventProcessor::deferredExceptionPtrIsSet_ {false}
private

Definition at line 254 of file EventProcessor.h.

tsan<detail::ExceptionCollector> art::EventProcessor::ec_ {}
private

Definition at line 165 of file EventProcessor.h.

tsan<std::map<ScheduleID, EndPathExecutor> > art::EventProcessor::endPathExecutors_ {}
private

Definition at line 231 of file EventProcessor.h.

tsan<hep::concurrency::SerialTaskQueue> art::EventProcessor::endPathQueue_ {}
private

Definition at line 233 of file EventProcessor.h.

tsan<PerScheduleContainer<EventPrincipal*> > art::EventProcessor::eventPrincipals_ {}
private

Definition at line 245 of file EventProcessor.h.

tsan_unique_ptr<FileBlock> art::EventProcessor::fb_ {nullptr}
private

Definition at line 236 of file EventProcessor.h.

std::atomic<bool> art::EventProcessor::fileSwitchInProgress_ {false}
private

Definition at line 267 of file EventProcessor.h.

std::atomic<bool> art::EventProcessor::finalizeRunEnabled_ {true}
private

Definition at line 177 of file EventProcessor.h.

std::atomic<bool> art::EventProcessor::finalizeSubRunEnabled_ {true}
private

Definition at line 180 of file EventProcessor.h.

std::atomic<bool> art::EventProcessor::firstEvent_ {true}
private

Definition at line 264 of file EventProcessor.h.

bool const art::EventProcessor::handleEmptyRuns_
private

Definition at line 248 of file EventProcessor.h.

bool const art::EventProcessor::handleEmptySubRuns_
private

Definition at line 251 of file EventProcessor.h.

tsan_unique_ptr<InputSource> art::EventProcessor::input_ {nullptr}
private

Definition at line 225 of file EventProcessor.h.

tsan<MFStatusUpdater> art::EventProcessor::mfStatusUpdater_ {actReg_}
private

Definition at line 187 of file EventProcessor.h.

std::atomic<Level> art::EventProcessor::nextLevel_ {Level::ReadyToAdvance}
private

Definition at line 162 of file EventProcessor.h.

tsan<UpdateOutputCallbacks> art::EventProcessor::outputCallbacks_ {}
private

Definition at line 192 of file EventProcessor.h.

tsan<PathManager> art::EventProcessor::pathManager_
private

Definition at line 222 of file EventProcessor.h.

tsan<ProductDescriptions> art::EventProcessor::producedProductDescriptions_ {}
private

Definition at line 198 of file EventProcessor.h.

tsan<ProductTables> art::EventProcessor::producedProductLookupTables_ {ProductTables::invalid()}
private

Definition at line 206 of file EventProcessor.h.

tsan<ProducingServiceSignals> art::EventProcessor::psSignals_ {}
private

Definition at line 208 of file EventProcessor.h.

tsan_unique_ptr<RunPrincipal> art::EventProcessor::runPrincipal_ {nullptr}
private

Definition at line 239 of file EventProcessor.h.

ScheduleIteration art::EventProcessor::scheduleIteration_
private

Definition at line 215 of file EventProcessor.h.

tsan<Scheduler> art::EventProcessor::scheduler_
private

Definition at line 213 of file EventProcessor.h.

tsan<std::map<ScheduleID, Schedule> > art::EventProcessor::schedules_ {}
private

Definition at line 228 of file EventProcessor.h.

tsan_unique_ptr<ServicesManager> art::EventProcessor::servicesManager_
private

Definition at line 218 of file EventProcessor.h.

tsan_unique_ptr<SubRunPrincipal> art::EventProcessor::subRunPrincipal_ {nullptr}
private

Definition at line 242 of file EventProcessor.h.

tsan<cet::cpu_timer> art::EventProcessor::timer_ {}
private

Definition at line 168 of file EventProcessor.h.


The documentation for this class was generated from the following file: