DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
trigger
src
trigger
LivetimeCounter.hpp
Go to the documentation of this file.
1
#ifndef TRIGGER_PLUGINS_LIVETIMECOUNTER_HPP_
2
#define TRIGGER_PLUGINS_LIVETIMECOUNTER_HPP_
3
#include <chrono>
4
#include <map>
5
#include <mutex>
6
#include <string>
7
8
namespace
dunedaq::trigger
{
9
18
class
LivetimeCounter
19
{
20
public
:
21
enum class
State
22
{
23
kLive,
// Live to triggers
24
kDead,
// Dead to triggers due to a problem
25
kPaused
// Triggers paused (so we are dead to triggers, but intentionally)
26
};
27
31
using
state_time_t
= uint64_t;
32
38
LivetimeCounter
(
State
state);
39
40
~LivetimeCounter
();
41
47
void
set_state
(
State
state);
48
52
std::map<State, state_time_t>
get_time_map
();
53
57
state_time_t
get_time
(
State
state);
58
62
std::string
get_report_string
();
63
64
std::string
get_state_name
(
State
state)
const
;
65
66
private
:
67
state_time_t
now
()
const
;
68
// Precondition: m_mutex is locked by caller
69
void
update_map
();
70
71
std::mutex
m_mutex
;
72
State
m_state
;
73
std::map<State, state_time_t>
m_state_times
;
74
state_time_t
m_last_state_change_time
;
75
};
76
}
// namespace dunedaq::trigger
77
78
#endif
// TRIGGER_PLUGINS_LIVETIMECOUNTER_HPP_
dunedaq::trigger::LivetimeCounter::state_time_t
uint64_t state_time_t
A type to store a time duration in milliseconds.
Definition
LivetimeCounter.hpp:31
dunedaq::trigger::LivetimeCounter::update_map
void update_map()
Definition
LivetimeCounter.cpp:26
dunedaq::trigger::LivetimeCounter::m_state_times
std::map< State, state_time_t > m_state_times
Definition
LivetimeCounter.hpp:73
dunedaq::trigger::LivetimeCounter::m_last_state_change_time
state_time_t m_last_state_change_time
Definition
LivetimeCounter.hpp:74
dunedaq::trigger::LivetimeCounter::LivetimeCounter
LivetimeCounter(State state)
Construct a LivetimeCounter in the given state.
Definition
LivetimeCounter.cpp:9
dunedaq::trigger::LivetimeCounter::get_state_name
std::string get_state_name(State state) const
Definition
LivetimeCounter.cpp:80
dunedaq::trigger::LivetimeCounter::get_report_string
std::string get_report_string()
Get a nicely-formatted string of the time spent in each state.
Definition
LivetimeCounter.cpp:68
dunedaq::trigger::LivetimeCounter::m_mutex
std::mutex m_mutex
Definition
LivetimeCounter.hpp:71
dunedaq::trigger::LivetimeCounter::get_time_map
std::map< State, state_time_t > get_time_map()
Get a map of accumulated time in milliseconds in each state.
Definition
LivetimeCounter.cpp:45
dunedaq::trigger::LivetimeCounter::State
State
Definition
LivetimeCounter.hpp:22
dunedaq::trigger::LivetimeCounter::now
state_time_t now() const
Definition
LivetimeCounter.cpp:61
dunedaq::trigger::LivetimeCounter::m_state
State m_state
Definition
LivetimeCounter.hpp:72
dunedaq::trigger::LivetimeCounter::set_state
void set_state(State state)
Set the current state to state.
Definition
LivetimeCounter.cpp:36
dunedaq::trigger::LivetimeCounter::get_time
state_time_t get_time(State state)
Get the accumulated time in milliseconds spent in a particular state.
Definition
LivetimeCounter.cpp:53
dunedaq::trigger
Definition
AlgorithmPlugins.hpp:24
Generated on
for DUNE-DAQ by
1.18.0