artdaq_utilities  v1_05_02a
TestMetric.hh
Go to the documentation of this file.
1 
5 #ifndef __ARTDAQ_UTILITIES_PLUGINS_TESTMETRIC_HH_
6 #define __ARTDAQ_UTILITIES_PLUGINS_TESTMETRIC_HH_
7 
8 #include <chrono>
9 #include <list>
10 #include <mutex>
11 #include <string>
12 
13 #include "trace.h"
14 
15 namespace artdaq {
20 {
21 public:
25  struct MetricPoint
26  {
27  std::chrono::steady_clock::time_point sent_time;
28  std::string metric;
29  std::string value;
30  std::string unit;
31  };
32 
33  static void LockReceivedMetricMutex()
34  {
35  TLOG(20) << "Locking TestMetric::received_metrics_mutex";
36  while (!received_metrics_mutex.try_lock()) usleep(10000);
37  TLOG(20) << "Locked TestMetric::received_metrics_mutex";
38  }
39 
40  static void UnlockReceivedMetricMutex()
41  {
42  TLOG(20) << "Unlocking TestMetric::received_metrics_mutex";
43  received_metrics_mutex.unlock();
44  }
45 
46  static std::mutex received_metrics_mutex;
47  static std::list<MetricPoint> received_metrics;
48 };
49 } // namespace artdaq
50 
51 #endif // __ARTDAQ_UTILITIES_PLUGINS_TESTMETRIC_HH_
std::string unit
Units for the metric.
Definition: TestMetric.hh:30
static std::mutex received_metrics_mutex
Mutex to protect the received_metrics list.
Definition: TestMetric.hh:46
Provides in-memory storage of metric data for testing
Definition: TestMetric.hh:19
static std::list< MetricPoint > received_metrics
List of received metric data.
Definition: TestMetric.hh:47
std::string value
Value of the metric.
Definition: TestMetric.hh:29
std::string metric
Name of the metric.
Definition: TestMetric.hh:28
std::chrono::steady_clock::time_point sent_time
When the metric was received.
Definition: TestMetric.hh:27
Describes a single metric point
Definition: TestMetric.hh:25