artdaq_utilities  v1_05_10
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 
37  {
38  TLOG(20) << "Locking TestMetric::received_metrics_mutex";
39  while (!received_metrics_mutex.try_lock()) usleep(10000);
40  TLOG(20) << "Locked TestMetric::received_metrics_mutex";
41  }
42 
47  {
48  TLOG(20) << "Unlocking TestMetric::received_metrics_mutex";
49  received_metrics_mutex.unlock();
50  }
51 
52  static std::mutex received_metrics_mutex;
53  static std::list<MetricPoint> received_metrics;
54 };
55 } // namespace artdaq
56 
57 #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:52
Provides in-memory storage of metric data for testing
Definition: TestMetric.hh:19
static void LockReceivedMetricMutex()
Lock the ReceivedMetricMutex
Definition: TestMetric.hh:36
static std::list< MetricPoint > received_metrics
List of received metric data.
Definition: TestMetric.hh:53
static void UnlockReceivedMetricMutex()
Unlock the ReceivedMetricMutex
Definition: TestMetric.hh:46
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