/
pi_coder
/
ByteMachine
Обзор
Документация
Войти
/
pi_coder
/
ByteMachine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/connect_states.cpp
97 строк
3 KB
pimenov-and
Добавлено перечисление, описывающее состояния подключений узлов
10 июл 2026, 00:25
10 июл 2026, 00:25
df086de
Код
Авторство
О чём код?
//////////////////////////////////////////////////////////////// // ByteMachine // Состояния подключения //////////////////////////////////////////////////////////////// #include "connect_states.h" #include "stl_helper.h" //============================================================== using std::array; //============================================================== // Конвертация состояния подключения в виде строки //============================================================== QString connectStateToStr(ConnectStates state) { switch (state) { case ConnectStates::Connect: { return "Connect"; } case ConnectStates::Disconnect: { return "Disconnect"; } default: { return "Unknown"; } } } //============================================================== // Конвертация состояния подключения из строки //============================================================== ConnectStates strToConnectState(const QString &str) { if (str == "Connect") { return ConnectStates::Connect; } else if (str == "Disconnect") { return ConnectStates::Disconnect; } else { return ConnectStates::Unknown; } } //============================================================== // Конвертация числа в состояние подключения //============================================================== ConnectStates intToConnectState(qint32 value) noexcept { const ConnectStates state = static_cast<ConnectStates>(value); return isCorrect(state) ? state : ConnectStates::Unknown; } //============================================================== // Конвертация состояния подключения в индекс //============================================================== qint32 connectStateToIndex(ConnectStates state) noexcept { return connectStateToInt(state); } //============================================================== // Конвертация индекса в состояние подключения //============================================================== ConnectStates indexToConnectState(qint32 index) { return intToConnectState(index); } //=================================================================== // Получение значений состояний подключения //=================================================================== array<ConnectStates, 3> connectStateValues() { return array<ConnectStates, 3> { ConnectStates::Unknown, ConnectStates::Connect, ConnectStates::Disconnect }; } //=================================================================== // Проверка корректности значения состояния подключения //=================================================================== bool isCorrect(ConnectStates state) { return contains(connectStateValues(), state); }