Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
Summary.hpp
Go to the documentation of this file.
1#ifndef IV_SRC_ALARMS_SUMMARY_HPP_
2#define IV_SRC_ALARMS_SUMMARY_HPP_
3
4#include "alarms/structs.hpp"
5#include "core/defines.hpp"
6
7#include <map>
8#include <mutex>
9#include <set>
10
11namespace iv::alarms
12{
13
14class Summary final
15{
16public:
17 Summary() = default;
18 Summary(const Summary &other) = delete;
19 Summary(Summary &&other) = delete;
20 ~Summary() = default;
21
22 Summary &operator=(const Summary &other) = delete;
23 Summary &operator=(Summary &&other) = delete;
24
25 void addEventToList(const iv::alarms::Event &event);
26 void addEventToPanel(const iv::alarms::Event &event);
27 void addEventOnDuty(const iv::alarms::Event &event);
28
29 std::set<iv::alarms::Event> listEvents() const;
30 std::set<iv::alarms::Event> listEventsFiltered(const std::function<bool(const iv::alarms::Event &)> &filter) const;
31 [[nodiscard]] const std::set<iv::alarms::Event> &eventsInPanel() const;
32
33 std::map<iv::types::channelId, iv::alarms::Event> &onDutyEvents();
34 std::map<iv::alarms::Event, iv::types::channelId> &onDutyEventsByTimestamp();
35
36 void removeEventFromList(const iv::types::channelId &channelId);
37 void removeEventFromPanel(const iv::types::channelId &channelId);
38 void removeEventOnDuty(const iv::types::channelId &channelId);
39
40 [[nodiscard]] bool hasActiveAlarms() const;
41 [[nodiscard]] bool hasAlarmsInPanel() const;
42 [[nodiscard]] bool hasAlarmsOnDuty() const;
43 [[nodiscard]] size_t numberOfAlarmsInPanel() const;
44 [[nodiscard]] size_t numberOfAlarmsOnDuty() const;
45
46private:
47 mutable std::mutex m_mutexListEvents;
48
49 std::set<iv::alarms::Event> m_listEvents;
50 std::set<iv::alarms::Event> m_panelEvents;
51
52 std::map<iv::types::channelId, iv::alarms::Event> m_onDutyEvents;
53 std::map<iv::alarms::Event, iv::types::channelId> m_onDutyEventsByTimestamp;
54};
55
56}// namespace iv::alarms
57
58#endif//IV_SRC_ALARMS_SUMMARY_HPP_
Definition Summary.hpp:15
bool hasAlarmsInPanel() const
Definition Summary.cpp:114
void removeEventOnDuty(const iv::types::channelId &channelId)
Definition Summary.cpp:78
std::map< iv::alarms::Event, iv::types::channelId > & onDutyEventsByTimestamp()
Definition Summary.cpp:62
std::set< iv::alarms::Event > listEventsFiltered(const std::function< bool(const iv::alarms::Event &)> &filter) const
Definition Summary.cpp:33
std::set< iv::alarms::Event > listEvents() const
Definition Summary.cpp:24
void addEventOnDuty(const iv::alarms::Event &event)
Definition Summary.cpp:18
std::set< iv::alarms::Event > m_listEvents
Definition Summary.hpp:49
size_t numberOfAlarmsInPanel() const
Definition Summary.cpp:124
std::set< iv::alarms::Event > m_panelEvents
Definition Summary.hpp:50
Summary & operator=(Summary &&other)=delete
const std::set< iv::alarms::Event > & eventsInPanel() const
Definition Summary.cpp:52
std::map< iv::types::channelId, iv::alarms::Event > & onDutyEvents()
Definition Summary.cpp:57
Summary & operator=(const Summary &other)=delete
void addEventToList(const iv::alarms::Event &event)
Definition Summary.cpp:7
bool hasActiveAlarms() const
Definition Summary.cpp:84
std::mutex m_mutexListEvents
Definition Summary.hpp:47
size_t numberOfAlarmsOnDuty() const
Definition Summary.cpp:129
bool hasAlarmsOnDuty() const
Definition Summary.cpp:119
Summary(const Summary &other)=delete
std::map< iv::alarms::Event, iv::types::channelId > m_onDutyEventsByTimestamp
Definition Summary.hpp:53
void addEventToPanel(const iv::alarms::Event &event)
Definition Summary.cpp:13
Summary(Summary &&other)=delete
std::map< iv::types::channelId, iv::alarms::Event > m_onDutyEvents
Definition Summary.hpp:52
void removeEventFromList(const iv::types::channelId &channelId)
Definition Summary.cpp:67
void removeEventFromPanel(const iv::types::channelId &channelId)
Definition Summary.cpp:73
Definition AlarmsManager.cpp:18
std::string channelId
Definition types.hpp:66
Definition structs.hpp:36