Integrate Reader subsystem into RunManager
Context
Per our architecture design, the Reader subsystem (owned by @jroiseaux) is responsible for exposing event data to the RunManager
via an iterator.
Summary
vanwftk
will now open a data file and iterate over its contents. Integrations with the other subsystems will add the actual data processing, but the code structure is in place for those integrations to be much more straightforward than this one.
This MR has a lot of changes to various files, but not everything is relevant to the core functionality as there was a lot of cleanup/reconfiguration needed to integrate our first major subsystem with RunManager
.
- The JSON config file's schema has changed and will likely continue to change, so there's not much point documenting the details here.
- Event processing logic will live in
RunManager::processEvents
-- specifically inside the for loop - Future Reader implementations need to have a corresponding Factory class (refer to
V1730Factory
) that needs to be mapped to a device name inRunManager::makeEventIterator
How was this tested
Tested with various valid and invalid config files. Valid cases read the file successfully and invalid ones exit early with error messages printed to the console.