Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
CUnitsRestrictions.hpp
Go to the documentation of this file.
1#ifndef LIBS_CHANNELS_CUNITSRESTRICTIONS_HPP_
2#define LIBS_CHANNELS_CUNITSRESTRICTIONS_HPP_
3
4#include "channels/enums.hpp"
5#include "core/defines.hpp"
6#include "model/enums.hpp"
8
9#include <cstdint>
10#include <map>
11#include <set>
12#include <string>
13#include <utility>
14
16{
17public:
18 typedef std::pair<iv::types::unitId, iv::types::channelOrder> TUnitChannel;// <unitId, channelId>
19
20 CUnitsRestrictions() = default;
21 CUnitsRestrictions(const CUnitsRestrictions &other) = delete;
26
27 // TODO: pasar estos métodos a Units
28 [[nodiscard]] static std::set<uint16_t> getExistingUnits();
29 [[nodiscard]] static std::map<iv::types::unitId, iv::units::eUnitType> getExistingUnitsWithUnitType();
30 [[nodiscard]] static std::set<uint16_t> getExistingUnitChannels(uint16_t unitId);
31 [[nodiscard]] static std::map<iv::types::channelOrder, iv::types::channelId>
33 [[nodiscard]] std::set<uint16_t> getUsedUnitChannels(uint16_t unitId) const;
34
35 static bool canAddUnit(iv::types::unitId unitId, iv::units::eUnitType unitType, std::string &returnMsg);
36
37 static bool canAddChannels(std::string &returnMsg);
38 static bool canAddChannel(iv::types::unitId unitId, iv::types::channelOrder channelOrder,
39 iv::channels::eChannelBaseType channelBaseType, std::string &returnMsg);
40 static bool canDeleteChannel(iv::types::unitId unitId, iv::types::channelOrder channelId, std::string &returnMsg);
41
42 static bool isARestrictedUnit(iv::units::eUnitType unitType);
43 static bool isARestrictedChannel(iv::units::eUnitType unitType, iv::types::channelOrder channelOrder);
44
45 static bool hasCanAFail(iv::units::eUnitType unitType);
46 static bool hasCanBFail(iv::units::eUnitType unitType);
47 static bool hasCanCFail(iv::units::eUnitType unitType);
48
49 static bool canAddTanks(std::string &returnMsg);
50
51 [[nodiscard]] static bool isValidUnitChannel(const TUnitChannel &unitChannel);
52 [[nodiscard]] static bool isChannelWATankChangeable(uint16_t unitId, uint16_t channelId);
53
54protected:
55};
56
57#endif /* LIBS_CHANNELS_CUNITSRESTRICTIONS_HPP_ */
Definition CUnitsRestrictions.hpp:16
~CUnitsRestrictions()=default
static std::set< uint16_t > getExistingUnitChannels(uint16_t unitId)
Definition CUnitsRestrictions.cpp:37
static std::set< uint16_t > getExistingUnits()
Definition CUnitsRestrictions.cpp:13
static bool isChannelWATankChangeable(uint16_t unitId, uint16_t channelId)
Definition CUnitsRestrictions.cpp:303
static bool hasCanAFail(iv::units::eUnitType unitType)
Definition CUnitsRestrictions.cpp:387
static bool canAddChannel(iv::types::unitId unitId, iv::types::channelOrder channelOrder, iv::channels::eChannelBaseType channelBaseType, std::string &returnMsg)
Definition CUnitsRestrictions.cpp:161
CUnitsRestrictions operator=(const CUnitsRestrictions &other)=delete
std::set< uint16_t > getUsedUnitChannels(uint16_t unitId) const
Definition CUnitsRestrictions.cpp:70
static bool isValidUnitChannel(const TUnitChannel &unitChannel)
Definition CUnitsRestrictions.cpp:298
std::pair< iv::types::unitId, iv::types::channelOrder > TUnitChannel
Definition CUnitsRestrictions.hpp:18
static bool isARestrictedChannel(iv::units::eUnitType unitType, iv::types::channelOrder channelOrder)
Definition CUnitsRestrictions.cpp:347
static bool canAddTanks(std::string &returnMsg)
Definition CUnitsRestrictions.cpp:274
CUnitsRestrictions(CUnitsRestrictions &&other)=delete
CUnitsRestrictions(const CUnitsRestrictions &other)=delete
static std::map< iv::types::channelOrder, iv::types::channelId > getExistingUnitChannelsWithChannelId(uint16_t unitId)
Definition CUnitsRestrictions.cpp:54
static bool canAddChannels(std::string &returnMsg)
Definition CUnitsRestrictions.cpp:137
static bool canAddUnit(iv::types::unitId unitId, iv::units::eUnitType unitType, std::string &returnMsg)
Definition CUnitsRestrictions.cpp:96
static std::map< iv::types::unitId, iv::units::eUnitType > getExistingUnitsWithUnitType()
Definition CUnitsRestrictions.cpp:25
static bool isARestrictedUnit(iv::units::eUnitType unitType)
Definition CUnitsRestrictions.cpp:322
static bool hasCanBFail(iv::units::eUnitType unitType)
Definition CUnitsRestrictions.cpp:409
static bool hasCanCFail(iv::units::eUnitType unitType)
Definition CUnitsRestrictions.cpp:431
static bool canDeleteChannel(iv::types::unitId unitId, iv::types::channelOrder channelId, std::string &returnMsg)
Definition CUnitsRestrictions.cpp:229
CUnitsRestrictions()=default
CUnitsRestrictions operator=(CUnitsRestrictions &&other)=delete
eChannelBaseType
Definition enums.hpp:63
uint16_t unitId
Definition types.hpp:77
uint16_t channelOrder
Definition types.hpp:68
eUnitType
Definition enums.hpp:8