Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
AlarmsManager.hpp
Go to the documentation of this file.
1#ifndef IV_SRC_ALARMS_ALARMSMANAGER_HPP_
2#define IV_SRC_ALARMS_ALARMSMANAGER_HPP_
3
4#include "alarms/History.hpp"
5#include "alarms/Summary.hpp"
7#include "channels/enums.hpp"
10#include "core/SoundManager.hpp"
11#include "enums.hpp"
12#include "threads/Thread.hpp"
13
14#include <memory>
15
16namespace iv::channels
17{
18
19class AbstractChannel;
20
21}
22
23namespace iv::alarms
24{
25
26class AlarmsManager final
27{
28 friend class AlarmManagerFrame;
29
30public:
31 AlarmsManager() = delete;
32 AlarmsManager(const std::shared_ptr<iv::sound::SoundManager> &soundManager, iv::model::eShipArea area);
33 AlarmsManager(const AlarmsManager &other) = delete;
34 AlarmsManager(AlarmsManager &&other) = delete;
36
37 AlarmsManager &operator=(const AlarmsManager &other) = delete;
39
40 [[nodiscard]] std::vector<std::weak_ptr<iv::channels::AbstractChannel>> getChannelsRepeatAlarm() const;
41 [[nodiscard]] bool hasAlarmRepeat(iv::types::timestamp alarmRepeatDelay) const;
42
43 void processEvent(const std::shared_ptr<iv::channels::AbstractChannel> &channel, const iv::alarms::Alarm &alarm,
44 const iv::alarms::Alarm &oldAlarm);
45
46 void reevaluateAlarmPanel() const;
47 void reevaluateAlarmOnDutyPanel() const;
48
49 [[nodiscard]] static bool ack(const iv::types::channelId &channelId);
50
51 void frame();
52
54
55 [[nodiscard]] std::weak_ptr<iv::alarms::History> history() const;
56 [[nodiscard]] std::weak_ptr<iv::alarms::Summary> summary() const;
57 [[nodiscard]] std::weak_ptr<iv::sound::SoundManager> soundManager() const;
58
59 [[nodiscard]] bool start();
60 void stop() const;
61
62private:
74
75 bool shouldBeInAlarmPanel(const Event &event, iv::channels::eChannelArea channelArea) const;
76 bool shouldBeInAlarmOnDutyPanel(const Event &event, iv::channels::eChannelArea channelArea) const;
77
79
81 std::shared_ptr<iv::alarms::History> m_history;
82 std::shared_ptr<iv::alarms::Summary> m_summary;
83 std::shared_ptr<iv::sound::SoundManager> m_soundManager;
84
85 std::map<iv::types::channelId, iv::alarms::Event> m_events;
86
87 // Thread
88 std::shared_ptr<bool> m_isEnabled;
89
90 uint64_t m_previousAlarms {std::numeric_limits<std::uint64_t>::max()};
91
92 std::vector<std::shared_ptr<iv::comms::vdr::VdrCommunicationController>> m_vdrControllers;
93};
94
95}// namespace iv::alarms
96
97#endif//IV_SRC_ALARMS_ALARMSMANAGER_HPP_
Definition AlarmsManager.hpp:27
std::vector< std::weak_ptr< iv::channels::AbstractChannel > > getChannelsRepeatAlarm() const
Definition AlarmsManager.cpp:490
std::vector< std::shared_ptr< iv::comms::vdr::VdrCommunicationController > > m_vdrControllers
Definition AlarmsManager.hpp:92
iv::model::eShipArea m_area
Definition AlarmsManager.hpp:80
std::shared_ptr< bool > m_isEnabled
Definition AlarmsManager.hpp:88
bool shouldBeInAlarmOnDutyPanel(const Event &event, iv::channels::eChannelArea channelArea) const
Definition AlarmsManager.cpp:620
eActionToSummary prvShouldAddToSummary(const iv::alarms::Event &event, iv::channels::eChannelArea channelArea)
Definition AlarmsManager.cpp:272
void processEvent(const std::shared_ptr< iv::channels::AbstractChannel > &channel, const iv::alarms::Alarm &alarm, const iv::alarms::Alarm &oldAlarm)
Definition AlarmsManager.cpp:139
void frame()
Definition AlarmsManager.cpp:438
std::map< iv::types::channelId, iv::alarms::Event > m_events
Definition AlarmsManager.hpp:85
eActionToSummary
Definition AlarmsManager.hpp:64
AlarmsManager(AlarmsManager &&other)=delete
~AlarmsManager()
Definition AlarmsManager.cpp:134
AlarmsManager & operator=(const AlarmsManager &other)=delete
uint64_t m_previousAlarms
Definition AlarmsManager.hpp:90
AlarmsManager & operator=(AlarmsManager &&other)=delete
std::shared_ptr< iv::alarms::History > m_history
Definition AlarmsManager.hpp:81
void stop() const
Definition AlarmsManager.cpp:433
void removeAllEventsFromListButCommFail(const iv::types::channelId &commFailChannel)
Definition AlarmsManager.cpp:631
bool start()
Definition AlarmsManager.cpp:413
bool hasAlarmRepeat(iv::types::timestamp alarmRepeatDelay) const
Definition AlarmsManager.cpp:514
void reevaluateAlarmOnDutyPanel() const
Definition AlarmsManager.cpp:582
std::weak_ptr< iv::alarms::Summary > summary() const
Definition AlarmsManager.cpp:403
friend class AlarmManagerFrame
Definition AlarmsManager.hpp:28
std::weak_ptr< iv::sound::SoundManager > soundManager() const
Definition AlarmsManager.cpp:408
std::shared_ptr< iv::alarms::Summary > m_summary
Definition AlarmsManager.hpp:82
void reevaluateAlarmPanel() const
Definition AlarmsManager.cpp:555
static bool ack(const iv::types::channelId &channelId)
Definition AlarmsManager.cpp:239
std::weak_ptr< iv::alarms::History > history() const
Definition AlarmsManager.cpp:398
AlarmsManager(const AlarmsManager &other)=delete
std::shared_ptr< iv::sound::SoundManager > m_soundManager
Definition AlarmsManager.hpp:83
bool shouldBeInAlarmPanel(const Event &event, iv::channels::eChannelArea channelArea) const
Definition AlarmsManager.cpp:610
Definition AbstractChannel.hpp:24
Definition AlarmsManager.cpp:18
Definition AlarmsManager.hpp:17
eChannelArea
Definition enums.hpp:55
eShipArea
Definition enums.hpp:11
uint64_t timestamp
Definition types.hpp:21
std::string channelId
Definition types.hpp:66
Definition structs.hpp:16
Definition structs.hpp:36