LCIO  02.17
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
Scheduler Class Referencefinal
+ Inheritance diagram for Scheduler:

Public Member Functions

 Scheduler (unsigned int maxNTasks=std::thread::hardware_concurrency())
 
 ~Scheduler ()
 
void startTask (LCEventPtr event)
 
void waitForAll ()
 
- Public Member Functions inherited from MT::LCReaderListener
virtual ~LCReaderListener ()
 Destructor. More...
 

Private Types

typedef void task_return_type
 
typedef std::future
< task_return_type
future_type
 
typedef std::vector< future_typefuture_list
 

Private Member Functions

void processFinishedTasks ()
 
bool canStartNewTask () const
 
void processEvent (LCEventPtr event) override
 process an event More...
 
void processRunHeader (LCRunHeaderPtr hdr) override
 process a run header More...
 

Private Attributes

unsigned int _maxNTasks {}
 
future_list _futures {}
 

Detailed Description

Definition at line 27 of file lcio_parallel_processing.cc.

Member Typedef Documentation

Definition at line 31 of file lcio_parallel_processing.cc.

Definition at line 30 of file lcio_parallel_processing.cc.

typedef void Scheduler::task_return_type
private

Definition at line 29 of file lcio_parallel_processing.cc.

Constructor & Destructor Documentation

Scheduler::Scheduler ( unsigned int  maxNTasks = std::thread::hardware_concurrency())
inline

Definition at line 34 of file lcio_parallel_processing.cc.

References SAFE_PRINT.

Scheduler::~Scheduler ( )
inline

Definition at line 39 of file lcio_parallel_processing.cc.

Member Function Documentation

bool Scheduler::canStartNewTask ( ) const
inlineprivate

Definition at line 87 of file lcio_parallel_processing.cc.

void Scheduler::processEvent ( LCEventPtr  event)
inlineoverrideprivatevirtual

process an event

Parameters
eventthe event to process

Implements MT::LCReaderListener.

Definition at line 91 of file lcio_parallel_processing.cc.

void Scheduler::processFinishedTasks ( )
inlineprivate

Definition at line 72 of file lcio_parallel_processing.cc.

void Scheduler::processRunHeader ( LCRunHeaderPtr  hdr)
inlineoverrideprivatevirtual

process a run header

Parameters
hdrthe run header to process

Implements MT::LCReaderListener.

Definition at line 95 of file lcio_parallel_processing.cc.

References UTIL::LCTOOLS::dumpRunHeader(), and std::shared_ptr::get().

void Scheduler::startTask ( LCEventPtr  event)
inline

Definition at line 43 of file lcio_parallel_processing.cc.

References std::async(), event, std::rand(), and SAFE_PRINT.

void Scheduler::waitForAll ( )
inline

Definition at line 62 of file lcio_parallel_processing.cc.

References SAFE_PRINT.

Member Data Documentation

future_list Scheduler::_futures {}
private

Definition at line 104 of file lcio_parallel_processing.cc.

unsigned int Scheduler::_maxNTasks {}
private

Definition at line 103 of file lcio_parallel_processing.cc.


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