Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
LomOperator.hpp
Go to the documentation of this file.
1#ifndef IV_SRC_COMMS_LOMOPERATOR_HPP_
2#define IV_SRC_COMMS_LOMOPERATOR_HPP_
3
6
7namespace iv::comms
8{
10{
11public:
12 LomOperator() = delete;
13 explicit LomOperator(const std::shared_ptr<iv::comms::can::LomCommunicationController> &lomController);
14
15 ~LomOperator() = default;
16 LomOperator(const LomOperator &) = delete;
17 LomOperator &operator=(const LomOperator &) = delete;
20
21 bool canDownloadUnits(const std::set<iv::types::unitId> &units, std::string &errorMessage) const;
22
23 [[nodiscard]] std::set<iv::types::unitId> filterCanDownloadUnits(const std::set<iv::types::unitId> &units) const;
24
25 std::set<iv::types::unitId> downloadUnits(const std::set<iv::types::unitId> &units,
26 const std::optional<std::shared_ptr<AbstractProgress>> &progress,
27 const std::optional<std::shared_ptr<iv::logs::DownloadLogger>> &logger,
28 eDownloadMode mode, eDownloadScope scope);
29
30 bool canEraseUnit(iv::types::unitId unitId, std::string &errorMessage) const;
31
32 bool eraseUnit(iv::types::unitId unitId, const std::optional<std::shared_ptr<AbstractProgress>> &progress,
33 const std::optional<std::shared_ptr<iv::logs::DownloadLogger>> &logger, bool isOnlyLogic = false);
34
35 bool canChangeId(iv::types::unitId unitId, iv::types::unitId newUnitId, std::string &errorMessage) const;
36
37 bool changeId(iv::types::unitId unitId, iv::types::unitId newUnitId,
38 const std::optional<std::shared_ptr<AbstractProgress>> &progress,
39 const std::optional<std::shared_ptr<iv::logs::DownloadLogger>> &logger);
40
41 bool canSetSpare(iv::types::unitId unitId, std::string &errorMessage) const;
42
43 bool setSpare(iv::types::unitId unitId, const std::optional<std::shared_ptr<AbstractProgress>> &progress,
44 const std::optional<std::shared_ptr<iv::logs::DownloadLogger>> &logger, bool isDownloadIdOnly = false);
45
46 std::set<iv::types::unitId> m_unitsOnline;
47 std::set<iv::types::unitId> m_unitsOffline;
48 std::set<iv::types::unitId> m_notInProjectUnitsOnline;
49
50private:
51 std::shared_ptr<iv::comms::ParametersDownloadManager> m_parameterDownloader;
52};
53}// namespace iv::comms
54
55#endif//IV_SRC_COMMS_LOMOPERATOR_HPP_
Definition LomOperator.hpp:10
std::set< iv::types::unitId > m_notInProjectUnitsOnline
Definition LomOperator.hpp:48
LomOperator(LomOperator &&)=delete
LomOperator & operator=(LomOperator &&)=delete
std::set< iv::types::unitId > downloadUnits(const std::set< iv::types::unitId > &units, const std::optional< std::shared_ptr< AbstractProgress > > &progress, const std::optional< std::shared_ptr< iv::logs::DownloadLogger > > &logger, eDownloadMode mode, eDownloadScope scope)
Definition LomOperator.cpp:87
bool canSetSpare(iv::types::unitId unitId, std::string &errorMessage) const
Definition LomOperator.cpp:268
std::shared_ptr< iv::comms::ParametersDownloadManager > m_parameterDownloader
Definition LomOperator.hpp:51
bool canDownloadUnits(const std::set< iv::types::unitId > &units, std::string &errorMessage) const
Definition LomOperator.cpp:45
std::set< iv::types::unitId > m_unitsOffline
Definition LomOperator.hpp:47
LomOperator & operator=(const LomOperator &)=delete
bool canEraseUnit(iv::types::unitId unitId, std::string &errorMessage) const
Definition LomOperator.cpp:114
bool canChangeId(iv::types::unitId unitId, iv::types::unitId newUnitId, std::string &errorMessage) const
Definition LomOperator.cpp:188
LomOperator(const LomOperator &)=delete
std::set< iv::types::unitId > filterCanDownloadUnits(const std::set< iv::types::unitId > &units) const
Definition LomOperator.cpp:71
bool changeId(iv::types::unitId unitId, iv::types::unitId newUnitId, const std::optional< std::shared_ptr< AbstractProgress > > &progress, const std::optional< std::shared_ptr< iv::logs::DownloadLogger > > &logger)
Definition LomOperator.cpp:217
bool eraseUnit(iv::types::unitId unitId, const std::optional< std::shared_ptr< AbstractProgress > > &progress, const std::optional< std::shared_ptr< iv::logs::DownloadLogger > > &logger, bool isOnlyLogic=false)
Definition LomOperator.cpp:131
bool setSpare(iv::types::unitId unitId, const std::optional< std::shared_ptr< AbstractProgress > > &progress, const std::optional< std::shared_ptr< iv::logs::DownloadLogger > > &logger, bool isDownloadIdOnly=false)
Definition LomOperator.cpp:291
std::set< iv::types::unitId > m_unitsOnline
Definition LomOperator.hpp:46
Definition ApiCommunicationController.cpp:12
eDownloadMode
Definition ParametersDownloadManager.hpp:21
eDownloadScope
Definition ParametersDownloadManager.hpp:27
uint16_t unitId
Definition types.hpp:77