ATLAS Offline Software
|
the actions that Module::processInputs can perform More...
#include <IInputModuleActions.h>
Public Member Functions | |
virtual | ~IInputModuleActions () noexcept=default |
standard virtual destructor More... | |
virtual ::StatusCode | processEvents (EventRange &eventRange)=0 |
process the given event range More... | |
virtual ::StatusCode | openInputFile (const std::string &inputFileUrl)=0 |
open the given input file without processing it More... | |
virtual Long64_t | inputFileNumEntries () const =0 |
the number of events in the input file More... | |
the actions that Module::processInputs can perform
The main reason to have this interface is that it is much easier to write an input module if it can call functions to perform actions directly (as opposed to e.g. returning which file to open next, etc.).
There is a canonical implementation of this interface that is used in the worker, but I'm using an abstract interface to decouple the input modules from the actual worker implementation. In addition, this makes it easier to write tests for input modules, or to employ a decorator pattern, should the need arise.
This interface is not frozen, but reflects the need of the input modules I have defined.
Definition at line 41 of file IInputModuleActions.h.
|
virtualdefaultnoexcept |
standard virtual destructor
|
pure virtual |
|
pure virtual |
open the given input file without processing it
This is mostly to allow the driver to query the number of events in the input file without processing it, usually to determine the range of events to process.
Implemented in EL::Worker.
|
pure virtual |
process the given event range
This will update eventRange
if the end is set to eof
Implemented in EL::Worker.