AthenaMonitoring: New interface for Monitored classes
This MR simplifies the user-interface of the Monitored classes after we gained some experience with them.
The following renames were done in order to follow our coding guidelines (namespace or prefix, but not both):
-
Monitored::MonitoredScalar
->Monitored::Scalar
-
Monitored::MonitoredCollection
->Monitored::Collection
-
Monitored::MonitoredTimer
->Monitored::Timer
-
Monitored::MonitoredScope
->Monitored::Group
In addition the declare
method is dropped in favor of
constructor-style declarations.
This changes the recommended usage pattern on the client side from:
{
using namespace Monitored;
auto v = MonitoredScalar::declare(...);
auto mon = MonitoredScope::declare(m_monTool, v);
}
to
{
auto v = Monitored::Scalar(...);
auto mon = Monitored::Group(m_monTool, v);
}
Further changes:
- Note that the
Scope
class was renamed toGroup
to better reflect the purpose of grouping several monitored variables when performing the histogram fills. -
setAutoSave
/save
was renamed tosetAutoFill
/fill
- A new
Monitored.h
header file is introduced that should be used by clients to get access to all relevantMonitored
classes - This MR is backwards-compatible as it contains code to emulate the old interface. A separate MR will be made to migrate all clients and then that code will be removed.
- Since class template argument deduction requires C++17, the interface is emulated via static functions for C++14. This will be removed as soon as we drop our gcc6 builds.
Comments:
-
clang-format
was used to provide some coherent formatting of the code. Please review this by using Hide whitespace changes.
Merge request reports
Activity
Yes, I just realized that the timing was really unfortunate (I should have known about your DQ workshop). This should really be the last API change and I will announce this to the relevant communities once it's merged. There aren't too many clients yet, so it's now or never and I think it's an improvement over the old interface. Of course, any further feedback from your side would be much appreciated.
added Core JetEtmiss Trigger master review-pending-level-1 labels
CI Result SUCCESSAthena AthSimulation externals cmake make required tests optional tests Full details available at NICOS MR-20403-2019-01-17-22-13
Athena: number of compilation errors 0, warnings 3
AthSimulation: number of compilation errors 0, warnings 0
For experts only: Jenkins output [CI-MERGE-REQUEST 32346] (for remote access see the FAQ for MR reviewers)added review-approved label and removed review-pending-level-1 label
mentioned in merge request !20491 (merged)
mentioned in commit 5e9e1423
added sweep:ignore label
mentioned in merge request !20370 (merged)
mentioned in commit adbailey/athena@11b4ed03