Implement the "report" functionality infrastructure
DAQ processes within that artdaq system currently support a "report" operation. The purpose of this operation is to allow external entities to gather information about the internal status and performance of the processes. This operations takes a string "which" argument that is intended to allow users to specify the particular information that they are interested in.
Only a limited use of this functionality has been made so far. The Aggregator supports queries of a handful of quantities such as number of events and file size.
The original design of this functionality included a general-purpose Report object that classes could use to report their information and a model of using different engines to transform the Reports into serialized data that would be returned to the caller.
The purpose of this Issue is to revisit and finalize the design of the infrastructure that is needed to support this functionality and implemented the selected design in the code.