Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
WatchcallNode.hpp
Go to the documentation of this file.
1#ifndef IV_SRC_ALARMS_WATCHCALLNODE_HPP_
2#define IV_SRC_ALARMS_WATCHCALLNODE_HPP_
3
4#include "alarms/structs.hpp"
6
7namespace iv::channels
8{
9class AbstractChannel;
10}
11namespace iv::alarms
12{
13
15{
16 Rms,
18 Slim
19};
20
22{
23 WatchcallNode() = default;
25 WatchcallNode(const WatchcallNode &other);
26 WatchcallNode(WatchcallNode &&other) noexcept;
27
29 WatchcallNode &operator=(WatchcallNode &&other) noexcept;
30
31 bool load(const iv::file::xml::node &node);
32 bool save(iv::file::xml::node &node) const;
33
34 bool isOn() const;
35
36 void setHeartbeatChannel(const std::shared_ptr<iv::channels::AbstractChannel> &channel);
37 void setCommFailureChannel(const std::shared_ptr<iv::channels::AbstractChannel> &channel);
38
41
47
48 // Repeater
49 std::optional<iv::types::ipAddress> ipAddress {std::nullopt};
50 std::optional<iv::types::ipPort> ipPort {std::nullopt};
51
52 // RMS
53 std::optional<std::weak_ptr<iv::model::comms::NetworkData>> networkData {std::nullopt};
54
55 std::weak_ptr<iv::channels::AbstractChannel> getHeartbeatChannel() const;
56 std::weak_ptr<iv::channels::AbstractChannel> getCommFailureChannel() const;
57
59
60private:
61 std::weak_ptr<iv::channels::AbstractChannel> heartbeatChannel;
62 std::weak_ptr<iv::channels::AbstractChannel> commFailureChannel;
63
64 struct Keys
65 {
66 static constexpr std::string_view repeaterId {"RepeaterId"};
67 static constexpr std::string_view nodeType {"NodeType"};
68 static constexpr std::string_view area {"Area"};
69 static constexpr std::string_view isChief {"IsChief"};
70 static constexpr std::string_view isMessRoom {"IsMessRoom"};
71 static constexpr std::string_view repeaterIp {"RepeaterIp"};
72 static constexpr std::string_view repeaterPort {"RepeaterPort"};
73 static constexpr std::string_view networkId {"NetworkId"};
74 static constexpr std::string_view heartbeatChannel {"HeartbeatChannel"};
75 static constexpr std::string_view commFailureChannel {"CommFailureChannel"};
76 static constexpr std::string_view repeaterName {"RepeaterName"};
77 };
78 struct Sections
79 {
80 static constexpr std::string_view repeaterNames {"RepeaterNames"};
81 };
83 {
84 static constexpr std::string_view repeaterName {"NO REPEATER NAME"};
85 static constexpr std::string repeaterId {""};
86 static constexpr bool isChief {false};
87 static constexpr bool isMessRoom {false};
88 static constexpr std::string repeaterIp {""};
89 static constexpr int32_t repeaterPort {-1};
91 static constexpr std::string string {""};
92 static constexpr auto area {iv::model::eShipArea::Ecr};
93 };
94};
95
96}// namespace iv::alarms
97
98#endif//IV_SRC_ALARMS_WATCHCALLNODE_HPP_
Definition xmlFile.hpp:15
Definition AlarmsManager.cpp:18
eWatchCallNodeTypes
Definition WatchcallNode.hpp:15
Definition AlarmsManager.hpp:17
eShipArea
Definition enums.hpp:11
uint64_t timestamp
Definition types.hpp:21
std::string repeaterId
Definition types.hpp:79
Definition WatchcallNode.hpp:83
static constexpr std::string repeaterId
Definition WatchcallNode.hpp:85
static constexpr std::string_view repeaterName
Definition WatchcallNode.hpp:84
static constexpr int32_t repeaterPort
Definition WatchcallNode.hpp:89
static constexpr std::string repeaterIp
Definition WatchcallNode.hpp:88
static constexpr auto area
Definition WatchcallNode.hpp:92
static constexpr auto nodeType
Definition WatchcallNode.hpp:90
static constexpr bool isChief
Definition WatchcallNode.hpp:86
static constexpr bool isMessRoom
Definition WatchcallNode.hpp:87
Definition WatchcallNode.hpp:65
static constexpr std::string_view repeaterPort
Definition WatchcallNode.hpp:72
static constexpr std::string_view repeaterIp
Definition WatchcallNode.hpp:71
static constexpr std::string_view repeaterName
Definition WatchcallNode.hpp:76
static constexpr std::string_view repeaterId
Definition WatchcallNode.hpp:66
static constexpr std::string_view isChief
Definition WatchcallNode.hpp:69
static constexpr std::string_view commFailureChannel
Definition WatchcallNode.hpp:75
static constexpr std::string_view networkId
Definition WatchcallNode.hpp:73
static constexpr std::string_view nodeType
Definition WatchcallNode.hpp:67
static constexpr std::string_view isMessRoom
Definition WatchcallNode.hpp:70
static constexpr std::string_view heartbeatChannel
Definition WatchcallNode.hpp:74
static constexpr std::string_view area
Definition WatchcallNode.hpp:68
Definition WatchcallNode.hpp:79
static constexpr std::string_view repeaterNames
Definition WatchcallNode.hpp:80
Definition WatchcallNode.hpp:22
std::optional< std::weak_ptr< iv::model::comms::NetworkData > > networkData
Definition WatchcallNode.hpp:53
iv::alarms::eWatchCallNodeTypes nodeType
Definition WatchcallNode.hpp:46
iv::types::timestamp lastHeartbeat
Definition WatchcallNode.hpp:58
iv::types::repeaterId repeaterId
Definition WatchcallNode.hpp:39
void setHeartbeatChannel(const std::shared_ptr< iv::channels::AbstractChannel > &channel)
Definition WatchcallNode.cpp:199
std::weak_ptr< iv::channels::AbstractChannel > heartbeatChannel
Definition WatchcallNode.hpp:61
std::optional< iv::types::ipAddress > ipAddress
Definition WatchcallNode.hpp:49
iv::alarms::watchcallNodeStatus nodeStatus
Definition WatchcallNode.hpp:44
bool isOn() const
Definition WatchcallNode.cpp:193
bool save(iv::file::xml::node &node) const
Definition WatchcallNode.cpp:99
void setCommFailureChannel(const std::shared_ptr< iv::channels::AbstractChannel > &channel)
Definition WatchcallNode.cpp:204
iv::model::eShipArea area
Definition WatchcallNode.hpp:45
std::weak_ptr< iv::channels::AbstractChannel > getCommFailureChannel() const
Definition WatchcallNode.cpp:214
std::optional< iv::types::ipPort > ipPort
Definition WatchcallNode.hpp:50
iv::model::LocalizedText names
Definition WatchcallNode.hpp:40
bool load(const iv::file::xml::node &node)
Definition WatchcallNode.cpp:141
std::weak_ptr< iv::channels::AbstractChannel > commFailureChannel
Definition WatchcallNode.hpp:62
WatchcallNode & operator=(const WatchcallNode &other)
Definition WatchcallNode.cpp:52
bool isChief
Definition WatchcallNode.hpp:42
bool isMessRoom
Definition WatchcallNode.hpp:43
std::weak_ptr< iv::channels::AbstractChannel > getHeartbeatChannel() const
Definition WatchcallNode.cpp:209
Definition structs.hpp:102
Definition structs.hpp:29