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
kLive
,
// Live to triggers
23
kDead
,
// Dead to triggers due to a problem
24
kPaused
// Triggers paused (so we are dead to triggers, but intentionally)
25
};
26
30
using
state_time_t
= uint64_t;
31
32
38
LivetimeCounter
(
State
state);
39
40
~LivetimeCounter
();
41
42
48
void
set_state
(
State
state);
49
53
std::map<State, state_time_t>
get_time_map
();
54
58
state_time_t
get_time
(
State
state);
59
63
std::string
get_report_string
();
64
65
std::string
get_state_name
(
State
state)
const
;
66
67
private
:
68
state_time_t
now
()
const
;
69
// Precondition: m_mutex is locked by caller
70
void
update_map
();
71
72
std::mutex
m_mutex
;
73
State
m_state
;
74
std::map<State, state_time_t>
m_state_times
;
75
state_time_t
m_last_state_change_time
;
76
77
};
78
}
// namespace dunedaq::trigger
79
80
#endif
// TRIGGER_PLUGINS_LIVETIMECOUNTER_HPP_
dunedaq::trigger::LivetimeCounter::~LivetimeCounter
~LivetimeCounter()
Definition
LivetimeCounter.cpp:19
dunedaq::trigger::LivetimeCounter::state_time_t
uint64_t state_time_t
A type to store a time duration in milliseconds.
Definition
LivetimeCounter.hpp:30
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:74
dunedaq::trigger::LivetimeCounter::m_last_state_change_time
state_time_t m_last_state_change_time
Definition
LivetimeCounter.hpp:75
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:82
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:69
dunedaq::trigger::LivetimeCounter::m_mutex
std::mutex m_mutex
Definition
LivetimeCounter.hpp:72
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:46
dunedaq::trigger::LivetimeCounter::State
State
Definition
LivetimeCounter.hpp:21
dunedaq::trigger::LivetimeCounter::State::kPaused
@ kPaused
Definition
LivetimeCounter.hpp:24
dunedaq::trigger::LivetimeCounter::State::kLive
@ kLive
Definition
LivetimeCounter.hpp:22
dunedaq::trigger::LivetimeCounter::State::kDead
@ kDead
Definition
LivetimeCounter.hpp:23
dunedaq::trigger::LivetimeCounter::now
state_time_t now() const
Definition
LivetimeCounter.cpp:62
dunedaq::trigger::LivetimeCounter::m_state
State m_state
Definition
LivetimeCounter.hpp:73
dunedaq::trigger::LivetimeCounter::set_state
void set_state(State state)
Set the current state to state.
Definition
LivetimeCounter.cpp:37
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:54
dunedaq::trigger
Definition
AlgorithmPlugins.hpp:24
Generated on
for DUNE-DAQ by
1.17.0