Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
DiamarModel.hpp
Go to the documentation of this file.
1#ifndef IV_SRC_MODEL_DIAMAR_DIAMARMODEL_HPP_
2#define IV_SRC_MODEL_DIAMAR_DIAMARMODEL_HPP_
3
4#include "diamar/IModel.hpp"
5#include "diamar/Mimic.hpp"
6#include "diamar/Settings.hpp"
10#include "model/ShipInfo.hpp"
16#include "tanks/Tanks.hpp"
17#include "units/model/Units.hpp"
18
19namespace iv::model::diamar
20{
21
22class DiamarModel final : public iv::model::IModel
23{
24public:
26 DiamarModel(const DiamarModel &other) = delete;
27 DiamarModel(DiamarModel &&other) = delete;
28 ~DiamarModel() override;
29
30 DiamarModel &operator=(const DiamarModel &other) = delete;
31 DiamarModel &operator=(DiamarModel &&other) = delete;
32
33 void deleteModel() override;
34
35 [[nodiscard]] bool load(std::string_view projectFolder_);
36 [[nodiscard]] bool save(std::string_view projectFolder_);
37 bool update(std::string_view projectFolder_);
38
39 [[nodiscard]] bool hasChanged(const std::string &projectFolder_, std::string &changesMsg) const;
40
41 struct Sections
42 {
43
44 static constexpr std::string_view changeRegister {"ChangesRegister"};
45 static constexpr std::string_view dataProject {"Project"};
46
47 static constexpr std::string_view groups {"Groups"};
48 static constexpr std::string_view group {"Group"};
49 static constexpr std::string_view cabinets {"Cabinets"};
50 static constexpr std::string_view cabinet {"Cabinet"};
51 static constexpr std::string_view languages {"Languages"};
52 static constexpr std::string_view language {"Language"};
53 static constexpr std::string_view stations {"Stations"};
54 static constexpr std::string_view station {"Station"};
55 static constexpr std::string_view stationsData {"Stations"};
56 static constexpr std::string_view configDiamar {"Config"};
57 static constexpr std::string_view units {"Units"};
58 static constexpr std::string_view unit {"Unit"};
59 static constexpr std::string_view mimics {"Mimics"};
60 static constexpr std::string_view mimic {"Mimic"};
61 };
62
63private:
64 struct Keys
65 {
66 static constexpr std::string_view enabled {"Enabled"};
67 static constexpr std::string_view unitId {"Id"};
68 static constexpr std::string_view mimicId {"Id"};
69 };
70
71 bool loadLanguages(const iv::file::xml::node &nodeConfigDiamar);
72
73 bool saveLanguages(iv::file::xml::node &nodeConfigDiamar) const;
74
75public:
78 std::shared_ptr<iv::model::ShipInfo> m_shipInfo;
79 std::shared_ptr<iv::model::ProjectInfo> m_projectInfo;
80 std::shared_ptr<iv::model::Changes> m_changes;
81
82 std::shared_ptr<iv::diamar::Settings> m_settings;
83 std::map<iv::eLanguage, bool> m_languages;
84
85 std::shared_ptr<iv::diamar::Stations> m_stations;
86
87 std::shared_ptr<iv::model::diamar::Cabinets> m_cabinets;
88 std::shared_ptr<iv::units::Units> m_units;
89
90 std::shared_ptr<iv::model::pms::PmsManager> m_pmsManager;
91 std::shared_ptr<iv::model::control::ControlManager> m_controlManager;
92
93 std::shared_ptr<iv::diamar::Mimics> m_mimics;
95
96 std::shared_ptr<iv::model::diamar::Groups> m_groups;
97 std::shared_ptr<iv::alarms::WatchcallManager> m_watchcallManager;
98
99 std::shared_ptr<iv::tanks::Tanks> m_tanks;
100
101 std::shared_ptr<iv::logic::ParametersOnline> m_parametersOnline;
102 std::shared_ptr<iv::logic::StationLogics> m_stationLogic;
103 std::map<iv::types::unitId, std::shared_ptr<iv::logic::StationLogics>> m_lumLogics;
104};
105
106}// namespace iv::model::diamar
107
108#endif//IV_SRC_MODEL_DIAMAR_DIAMARMODEL_HPP_
Definition xmlFile.hpp:15
Definition GroupMenuModel.hpp:121
Definition IModel.hpp:12
Definition DiamarModel.hpp:23
std::shared_ptr< iv::alarms::WatchcallManager > m_watchcallManager
Definition DiamarModel.hpp:97
iv::time::Timestamp m_lastUpdate
Definition DiamarModel.hpp:76
std::shared_ptr< iv::model::diamar::Groups > m_groups
Definition DiamarModel.hpp:96
iv::model::GroupMenuModel< std::weak_ptr< iv::diamar::Mimic > > m_mimicsGroups
Definition DiamarModel.hpp:94
std::shared_ptr< iv::model::ProjectInfo > m_projectInfo
Definition DiamarModel.hpp:79
bool load(std::string_view projectFolder_)
Definition DiamarModel.cpp:230
std::shared_ptr< iv::diamar::Mimics > m_mimics
Definition DiamarModel.hpp:93
std::shared_ptr< iv::units::Units > m_units
Definition DiamarModel.hpp:88
std::shared_ptr< iv::model::diamar::Cabinets > m_cabinets
Definition DiamarModel.hpp:87
std::shared_ptr< iv::model::Changes > m_changes
Definition DiamarModel.hpp:80
std::map< iv::types::unitId, std::shared_ptr< iv::logic::StationLogics > > m_lumLogics
Definition DiamarModel.hpp:103
std::shared_ptr< iv::model::pms::PmsManager > m_pmsManager
Definition DiamarModel.hpp:90
DiamarModel & operator=(const DiamarModel &other)=delete
std::shared_ptr< iv::tanks::Tanks > m_tanks
Definition DiamarModel.hpp:99
std::shared_ptr< iv::logic::StationLogics > m_stationLogic
Definition DiamarModel.hpp:102
bool update(std::string_view projectFolder_)
Update the model with the data from the project folder.
Definition DiamarModel.cpp:47
bool save(std::string_view projectFolder_)
Definition DiamarModel.cpp:160
bool loadLanguages(const iv::file::xml::node &nodeConfigDiamar)
Load the languages from the XML node.
Definition DiamarModel.cpp:473
void deleteModel() override
Definition DiamarModel.cpp:37
std::shared_ptr< iv::diamar::Stations > m_stations
Definition DiamarModel.hpp:85
std::shared_ptr< iv::model::ShipInfo > m_shipInfo
Definition DiamarModel.hpp:78
std::shared_ptr< iv::logic::ParametersOnline > m_parametersOnline
Definition DiamarModel.hpp:101
DiamarModel()
Definition DiamarModel.cpp:16
std::shared_ptr< iv::model::control::ControlManager > m_controlManager
Definition DiamarModel.hpp:91
DiamarModel & operator=(DiamarModel &&other)=delete
DiamarModel(DiamarModel &&other)=delete
bool hasChanged(const std::string &projectFolder_, std::string &changesMsg) const
Definition DiamarModel.cpp:348
DiamarModel(const DiamarModel &other)=delete
std::map< iv::eLanguage, bool > m_languages
Definition DiamarModel.hpp:83
bool saveLanguages(iv::file::xml::node &nodeConfigDiamar) const
Definition DiamarModel.cpp:500
std::shared_ptr< iv::diamar::Settings > m_settings
Definition DiamarModel.hpp:82
Definition Timestamp.hpp:17
Definition DiamarModel.cpp:14
Definition DiamarModel.hpp:65
static constexpr std::string_view mimicId
Definition DiamarModel.hpp:68
static constexpr std::string_view enabled
Definition DiamarModel.hpp:66
static constexpr std::string_view unitId
Definition DiamarModel.hpp:67
Definition DiamarModel.hpp:42
static constexpr std::string_view group
Definition DiamarModel.hpp:48
static constexpr std::string_view cabinet
Definition DiamarModel.hpp:50
static constexpr std::string_view cabinets
Definition DiamarModel.hpp:49
static constexpr std::string_view mimic
Definition DiamarModel.hpp:60
static constexpr std::string_view language
Definition DiamarModel.hpp:52
static constexpr std::string_view station
Definition DiamarModel.hpp:54
static constexpr std::string_view configDiamar
Definition DiamarModel.hpp:56
static constexpr std::string_view languages
Definition DiamarModel.hpp:51
static constexpr std::string_view dataProject
Definition DiamarModel.hpp:45
static constexpr std::string_view mimics
Definition DiamarModel.hpp:59
static constexpr std::string_view units
Definition DiamarModel.hpp:57
static constexpr std::string_view changeRegister
Definition DiamarModel.hpp:44
static constexpr std::string_view unit
Definition DiamarModel.hpp:58
static constexpr std::string_view stationsData
Definition DiamarModel.hpp:55
static constexpr std::string_view stations
Definition DiamarModel.hpp:53
static constexpr std::string_view groups
Definition DiamarModel.hpp:47