improve algorithm and i/o interfaces
Fixes ACTSFW-40 and fixes ACTSFW-13:
- Split
IOAlgorithm
intoIReader
andIWriter
interface. - Simplify
IAlgorithm
andIService
interface. - Remove global job store and job context from algorithms.
- Merge
EventContext
andAlgorithmContext
into a single struct. - The sequencer provides only a single
.run(...)
method to initialize, run, and finalize the event loop. - Move sequencer algorithms from
Config
to private member variables. Was not used anywhere. - Change common
Algorithm
helper class to a more restrainedSimpleAlgorithm
helper class.
Fixes ACTSFW-43:
- Rewrite
WhiteBoard
as append-only container with explicit ownership transfer. - Make
WhiteBoard
a non-copyable container to prevent accidental copy due to inconsistent usage. - Interface provides exclusively read-only access to stored objects.
Existing code has been updated to the new interfaces but the data flow has not been converted to the updated even store/ reader/ writer style. This should happen gradually as people work on their code, e.g. in !51 (closed).
This contains work towards ACTSFW-14, ACTSFW-6.
Edited by Moritz Kiehn