diff --git a/src/Config/Client/CollectorConfig.h b/src/Config/Client/CollectorConfig.h new file mode 100644 index 0000000..b7194f2 --- /dev/null +++ b/src/Config/Client/CollectorConfig.h @@ -0,0 +1,12 @@ +#pragma once + +#include +#include + +namespace config::client +{ + struct CollectorConfig + { + std::vector disks{{"/"}}; + }; +} // namespace config::client diff --git a/src/Config/Client/Config.cpp b/src/Config/Client/Config.cpp index 99408e4..daf8465 100644 --- a/src/Config/Client/Config.cpp +++ b/src/Config/Client/Config.cpp @@ -2,7 +2,7 @@ #include "Config/Common/IniParser.h" #include -namespace Config::Client +namespace config::client { Config Config::load(const std::string &path) { @@ -13,7 +13,8 @@ namespace Config::Client cfg.network.serverHost = ini.get("network", "server_host", "127.0.0.1"); cfg.network.serverPort = std::stoi(ini.get("network", "server_port", "5005")); cfg.network.intervalMs = std::chrono::milliseconds(std::stoi(ini.get("network", "interval_ms", "1000"))); + cfg.collector.disks = config::splitList(ini.get("collector", "disks", "/")); return cfg; } -} // namespace Config::Client +} // namespace config::client diff --git a/src/Config/Client/Config.h b/src/Config/Client/Config.h index 44ddfe0..6de4837 100644 --- a/src/Config/Client/Config.h +++ b/src/Config/Client/Config.h @@ -2,8 +2,9 @@ #include #include "Display/Graphics/Color.h" #include "Config/Client/NetworkConfig.h" +#include "Config/Client/CollectorConfig.h" -namespace Config::Client +namespace config::client { class Config { @@ -11,5 +12,6 @@ namespace Config::Client static Config load(const std::string &path); NetworkConfig network; + CollectorConfig collector; }; -} // namespace Config::Client +} // namespace config::client diff --git a/src/Config/Client/NetworkConfig.h b/src/Config/Client/NetworkConfig.h index 584309e..ecc3f48 100644 --- a/src/Config/Client/NetworkConfig.h +++ b/src/Config/Client/NetworkConfig.h @@ -3,12 +3,12 @@ #include #include -namespace Config::Client +namespace config::client { struct NetworkConfig { - std::string serverHost = "127.0.0.1"; - int serverPort = 5005; - std::chrono::milliseconds intervalMs = std::chrono::milliseconds(1000); + std::string serverHost{"127.0.0.1"}; + int serverPort{5005}; + std::chrono::milliseconds intervalMs{std::chrono::milliseconds(1000)}; }; -} // namespace Config::Client +} // namespace config::client diff --git a/src/Config/Common/IniParser.cpp b/src/Config/Common/IniParser.cpp index 9fe308a..d78f545 100644 --- a/src/Config/Common/IniParser.cpp +++ b/src/Config/Common/IniParser.cpp @@ -3,56 +3,75 @@ #include #include -static std::string trim(std::string s) +namespace config { - s.erase(s.begin(), std::find_if(s.begin(), s.end(), [](int c) - { return !isspace(c); })); - s.erase(std::find_if(s.rbegin(), s.rend(), [](int c) - { return !isspace(c); }) - .base(), - s.end()); - return s; -} - -bool IniParser::load(const std::string &path) -{ - std::ifstream f(path); - if (!f) - return false; - - std::string line, section; - while (std::getline(f, line)) + std::string trim(std::string s) { - line = trim(line); - if (line.empty() || line[0] == '#' || line[0] == ';') - continue; + s.erase(s.begin(), std::find_if(s.begin(), s.end(), [](int c) + { return !isspace(c); })); + s.erase(std::find_if(s.rbegin(), s.rend(), [](int c) + { return !isspace(c); }) + .base(), + s.end()); + return s; + } - if (line.front() == '[' && line.back() == ']') + std::vector splitList(const std::string &s, char delim) + { + std::vector result; + std::string item; + std::istringstream ss(s); + + while (std::getline(ss, item, delim)) { - section = line.substr(1, line.size() - 2); - continue; + item = trim(item); + if (!item.empty()) + result.push_back(item); } - auto pos = line.find('='); - if (pos == std::string::npos) - continue; - - std::string key = trim(line.substr(0, pos)); - std::string val = trim(line.substr(pos + 1)); - data_[section][key] = val; + return result; } - return true; -} -std::string IniParser::get(const std::string §ion, - const std::string &key, - const std::string &def) const -{ - auto s = data_.find(section); - if (s == data_.end()) - return def; - auto k = s->second.find(key); - if (k == s->second.end()) - return def; - return k->second; -} \ No newline at end of file + bool IniParser::load(const std::string &path) + { + std::ifstream f(path); + if (!f) + return false; + + std::string line, section; + while (std::getline(f, line)) + { + line = trim(line); + if (line.empty() || line[0] == '#' || line[0] == ';') + continue; + + if (line.front() == '[' && line.back() == ']') + { + section = line.substr(1, line.size() - 2); + continue; + } + + auto pos = line.find('='); + if (pos == std::string::npos) + continue; + + std::string key = trim(line.substr(0, pos)); + std::string val = trim(line.substr(pos + 1)); + data[section][key] = val; + } + return true; + } + + std::string IniParser::get(const std::string §ion, + const std::string &key, + const std::string &def) const + { + auto s = data.find(section); + if (s == data.end()) + return def; + auto k = s->second.find(key); + if (k == s->second.end()) + return def; + return k->second; + } +} // namespace config diff --git a/src/Config/Common/IniParser.h b/src/Config/Common/IniParser.h index 9684d17..8c25f8a 100644 --- a/src/Config/Common/IniParser.h +++ b/src/Config/Common/IniParser.h @@ -1,17 +1,24 @@ #pragma once +#include #include #include -class IniParser +namespace config { -public: - bool load(const std::string &path); + std::string trim(std::string s); + std::vector splitList(const std::string &s, char delim = ','); - std::string get(const std::string §ion, - const std::string &key, - const std::string &def = "") const; + class IniParser + { + public: + bool load(const std::string &path); -private: - using Section = std::unordered_map; - std::unordered_map data_; -}; \ No newline at end of file + std::string get(const std::string §ion, + const std::string &key, + const std::string &def = "") const; + + private: + using Section = std::unordered_map; + std::unordered_map data; + }; +} // namespace config diff --git a/src/Config/Server/BarStyleConfig.h b/src/Config/Server/BarStyleConfig.h index 08a8c5f..aaf5d0d 100644 --- a/src/Config/Server/BarStyleConfig.h +++ b/src/Config/Server/BarStyleConfig.h @@ -2,12 +2,12 @@ #include "Display/Graphics/Color.h" -namespace Config::Server +namespace config::server { struct BarStyleConfig { - Display::Graphics::Color background; - Display::Graphics::Color fill; + display::graphics::Color background; + display::graphics::Color fill; }; -} // namespace Config::Server +} // namespace config::server diff --git a/src/Config/Server/Config.cpp b/src/Config/Server/Config.cpp index b3514ff..11eb3ca 100644 --- a/src/Config/Server/Config.cpp +++ b/src/Config/Server/Config.cpp @@ -2,9 +2,9 @@ #include "Config/Common/IniParser.h" #include -namespace Config::Server +namespace config::server { - static Display::Graphics::Color parseColor(const std::string &s) + static display::graphics::Color parseColor(const std::string &s) { int r, g, b; char c; @@ -36,4 +36,4 @@ namespace Config::Server return cfg; } -} // namespace Config::Server +} // namespace config::server diff --git a/src/Config/Server/Config.h b/src/Config/Server/Config.h index 0ff9479..51c6125 100644 --- a/src/Config/Server/Config.h +++ b/src/Config/Server/Config.h @@ -6,7 +6,7 @@ #include "Config/Server/NetworkConfig.h" #include "Config/Server/TextStyleConfig.h" -namespace Config::Server +namespace config::server { class Config { @@ -18,4 +18,4 @@ namespace Config::Server TextStyleConfig textStyle; BarStyleConfig barStyle; }; -} // namespace Config::Server +} // namespace config::server diff --git a/src/Config/Server/DisplayConfig.h b/src/Config/Server/DisplayConfig.h index e738018..7121871 100644 --- a/src/Config/Server/DisplayConfig.h +++ b/src/Config/Server/DisplayConfig.h @@ -2,11 +2,11 @@ #include -namespace Config::Server +namespace config::server { struct DisplayConfig { int rotation = 0; std::chrono::milliseconds refreshMs = std::chrono::milliseconds(1000); }; -} // namespace Config::Server +} // namespace config::server diff --git a/src/Config/Server/NetworkConfig.h b/src/Config/Server/NetworkConfig.h index 05f5639..7c00cfa 100644 --- a/src/Config/Server/NetworkConfig.h +++ b/src/Config/Server/NetworkConfig.h @@ -3,7 +3,7 @@ #include #include -namespace Config::Server +namespace config::server { struct NetworkConfig { @@ -11,4 +11,4 @@ namespace Config::Server int listenPort = 5005; std::chrono::milliseconds intervalMs = std::chrono::milliseconds(1000); }; -} // namespace Config::Server +} // namespace config::server diff --git a/src/Config/Server/TextStyleConfig.h b/src/Config/Server/TextStyleConfig.h index d6c4d9f..60fa875 100644 --- a/src/Config/Server/TextStyleConfig.h +++ b/src/Config/Server/TextStyleConfig.h @@ -2,11 +2,11 @@ #include -namespace Config::Server +namespace config::server { struct TextStyleConfig { std::string fontPath; int fontSize = 10; }; -} // namespace Config::Server +} // namespace config::server diff --git a/src/Display/Graphics/CMakeLists.txt b/src/Display/Graphics/CMakeLists.txt index 262fe7b..fddd236 100644 --- a/src/Display/Graphics/CMakeLists.txt +++ b/src/Display/Graphics/CMakeLists.txt @@ -11,9 +11,9 @@ target_link_libraries(DisplayGraphics PRIVATE Model::All Helpers::All - Display::UI::Text - Display::UI::HostBlock - Display::UI::Header + display::ui::Text + display::ui::HostBlock + display::ui::Header ) target_include_directories(DisplayGraphics diff --git a/src/Display/Graphics/Color.h b/src/Display/Graphics/Color.h index 957e7b3..d090409 100644 --- a/src/Display/Graphics/Color.h +++ b/src/Display/Graphics/Color.h @@ -1,7 +1,7 @@ #pragma once #include -namespace Display::Graphics +namespace display::graphics { struct Color { @@ -35,4 +35,4 @@ namespace Display::Graphics inline Color Red() { return {255, 0, 0}; } inline Color Green() { return {0, 255, 0}; } inline Color Blue() { return {0, 0, 255}; } -} // namespace Display::Graphics \ No newline at end of file +} // namespace display::graphics \ No newline at end of file diff --git a/src/Display/Graphics/Framebuffer.cpp b/src/Display/Graphics/Framebuffer.cpp index ae34e4c..e2d9129 100644 --- a/src/Display/Graphics/Framebuffer.cpp +++ b/src/Display/Graphics/Framebuffer.cpp @@ -7,7 +7,7 @@ #include #include -namespace Display::Graphics +namespace display::graphics { Framebuffer::Framebuffer(const char *device, FramebufferRotation rotation) : rotation(rotation) { @@ -135,4 +135,4 @@ namespace Display::Graphics c.a = 255; return c; } -} // namespace Display::Graphics +} // namespace display::graphics diff --git a/src/Display/Graphics/Framebuffer.h b/src/Display/Graphics/Framebuffer.h index c28be44..4febde2 100644 --- a/src/Display/Graphics/Framebuffer.h +++ b/src/Display/Graphics/Framebuffer.h @@ -5,7 +5,7 @@ #include "Display/Graphics/Color.h" #include "Display/Graphics/FramebufferRotation.h" -namespace Display::Graphics +namespace display::graphics { class Framebuffer { @@ -40,4 +40,4 @@ namespace Display::Graphics size_t size; int line_length; }; -} // namespace Display::Graphics +} // namespace display::graphics diff --git a/src/Display/Graphics/FramebufferRotation.h b/src/Display/Graphics/FramebufferRotation.h index b911c6f..1e33bcb 100644 --- a/src/Display/Graphics/FramebufferRotation.h +++ b/src/Display/Graphics/FramebufferRotation.h @@ -1,6 +1,6 @@ #pragma once -namespace Display::Graphics +namespace display::graphics { enum class FramebufferRotation { @@ -9,4 +9,4 @@ namespace Display::Graphics R180, R270 }; -} // namespace Display::Graphics \ No newline at end of file +} // namespace display::graphics \ No newline at end of file diff --git a/src/Display/Graphics/Renderer.cpp b/src/Display/Graphics/Renderer.cpp index e3cd745..9e040ce 100644 --- a/src/Display/Graphics/Renderer.cpp +++ b/src/Display/Graphics/Renderer.cpp @@ -1,8 +1,8 @@ #include "Renderer.h" -namespace Display::Graphics +namespace display::graphics { - Renderer::Renderer(Framebuffer &framebuffer, Model::HostRegistry ®istry) + Renderer::Renderer(Framebuffer &framebuffer, model::HostRegistry ®istry) : framebuffer(framebuffer), registry(registry) { @@ -15,7 +15,7 @@ namespace Display::Graphics header.draw(framebuffer, textRenderer, START_X, START_Y); int blocksPerRow = - (SCREEN_WIDTH + BLOCK_GAP) / (Display::UI::HostBlock::BLOCK_WIDTH + BLOCK_GAP); + (SCREEN_WIDTH + BLOCK_GAP) / (display::ui::hostblock::BLOCK_WIDTH + BLOCK_GAP); if (blocksPerRow < 1) blocksPerRow = 1; @@ -26,8 +26,8 @@ namespace Display::Graphics int col = index % blocksPerRow; int row = index / blocksPerRow; - int x = START_X + col * (Display::UI::HostBlock::BLOCK_WIDTH + BLOCK_GAP); - int y = START_Y + header.height() + BLOCK_GAP + row * (Display::UI::HostBlock::BLOCK_HEIGHT + BLOCK_GAP); + int x = START_X + col * (display::ui::hostblock::BLOCK_WIDTH + BLOCK_GAP); + int y = START_Y + header.height() + BLOCK_GAP + row * (display::ui::hostblock::BLOCK_HEIGHT + BLOCK_GAP); hostblock.draw( framebuffer, @@ -42,4 +42,4 @@ namespace Display::Graphics framebuffer.present(); } -} // namespace Display::Graphics +} // namespace display::graphics diff --git a/src/Display/Graphics/Renderer.h b/src/Display/Graphics/Renderer.h index 137fc06..e5665c7 100644 --- a/src/Display/Graphics/Renderer.h +++ b/src/Display/Graphics/Renderer.h @@ -7,7 +7,7 @@ #include "Display/Graphics/Color.h" #include -namespace Display::Graphics +namespace display::graphics { static constexpr int START_X = 0; // 0 static constexpr int START_Y = 0; // 20 @@ -18,7 +18,7 @@ namespace Display::Graphics class Renderer { public: - Renderer(Framebuffer &framebuffer, Model::HostRegistry ®istry); + Renderer(Framebuffer &framebuffer, model::HostRegistry ®istry); Renderer(const Renderer &) = delete; Renderer &operator=(const Renderer &) = delete; @@ -27,9 +27,9 @@ namespace Display::Graphics private: Framebuffer &framebuffer; - Model::HostRegistry ®istry; - Display::UI::Text::Renderer textRenderer; - Display::UI::Header::Header header; - Display::UI::HostBlock::HostBlock hostblock; + model::HostRegistry ®istry; + display::ui::text::Renderer textRenderer; + display::ui::header::Header header; + display::ui::hostblock::HostBlock hostblock; }; -} // namespace Display::Graphics +} // namespace display::graphics diff --git a/src/Display/UI/Bar/Bar.cpp b/src/Display/UI/Bar/Bar.cpp index 7f368d1..425a217 100644 --- a/src/Display/UI/Bar/Bar.cpp +++ b/src/Display/UI/Bar/Bar.cpp @@ -1,14 +1,14 @@ #include "Display/UI/Bar/Bar.h" #include -namespace Display::UI::Bar +namespace display::ui::bar { Bar::Bar(int width, int height, Orientation orientation, Style style) : width(width), height(height), orientation(orientation), style(style) { } - void Bar::draw(Display::Graphics::Framebuffer &framebuffer, int x, int y, float value) + void Bar::draw(display::graphics::Framebuffer &framebuffer, int x, int y, float value) { value = std::clamp(value, 0.0f, 1.0f); @@ -16,7 +16,7 @@ namespace Display::UI::Bar framebuffer.fillRect(x, y, width, height, style.background); // 2. Рисуем заполнение - Display::Graphics::Color fillColor = valueToColor(value); + display::graphics::Color fillColor = valueToColor(value); if (orientation == Orientation::Horizontal) { @@ -37,13 +37,13 @@ namespace Display::UI::Bar } } - Display::Graphics::Color Bar::valueToColor(float value) + display::graphics::Color Bar::valueToColor(float value) { value = std::clamp(value, 0.0f, 1.0f); if (value <= 0.5f) { float t = value / 0.5f; - return Display::Graphics::Color{ + return display::graphics::Color{ static_cast(t * 255), // R: 0 → 255 180, // G: остаётся 180 0 // B @@ -52,10 +52,10 @@ namespace Display::UI::Bar else { float t = (value - 0.5f) / 0.5f; - return Display::Graphics::Color{ + return display::graphics::Color{ 255, // R: остаётся 255 static_cast(180 * (1.0f - t)), // G: 180 → 0 0}; } } -} // namespace Display::UI::Bar +} // namespace display::ui::bar diff --git a/src/Display/UI/Bar/Bar.h b/src/Display/UI/Bar/Bar.h index ee28ece..9a5712f 100644 --- a/src/Display/UI/Bar/Bar.h +++ b/src/Display/UI/Bar/Bar.h @@ -4,14 +4,14 @@ #include "Display/UI/Bar/Orientation.h" #include "Display/UI/Bar/Style.h" -namespace Display::UI::Bar +namespace display::ui::bar { class Bar { public: Bar(int width, int height, Orientation orientation = Orientation::Horizontal, Style style = {}); - void draw(Display::Graphics::Framebuffer &framebuffer, + void draw(display::graphics::Framebuffer &framebuffer, int x, int y, float value); // 0.0 .. 1.0 @@ -21,6 +21,6 @@ namespace Display::UI::Bar Orientation orientation; Style style; - Display::Graphics::Color valueToColor(float value); + display::graphics::Color valueToColor(float value); }; -} // namespace Display::UI::Bar +} // namespace display::ui::bar diff --git a/src/Display/UI/Bar/CMakeLists.txt b/src/Display/UI/Bar/CMakeLists.txt index de18b33..f370bb3 100644 --- a/src/Display/UI/Bar/CMakeLists.txt +++ b/src/Display/UI/Bar/CMakeLists.txt @@ -4,7 +4,7 @@ add_library(DisplayUIBar Bar.cpp ) -add_library(Display::UI::Bar ALIAS DisplayUIBar) +add_library(display::ui::Bar ALIAS DisplayUIBar) target_link_libraries(DisplayUIBar PUBLIC diff --git a/src/Display/UI/Bar/Orientation.h b/src/Display/UI/Bar/Orientation.h index 19926a7..a2d0e18 100644 --- a/src/Display/UI/Bar/Orientation.h +++ b/src/Display/UI/Bar/Orientation.h @@ -1,10 +1,10 @@ #pragma once -namespace Display::UI::Bar +namespace display::ui::bar { enum class Orientation { Horizontal, Vertical }; -} // namespace Display::UI::Bar \ No newline at end of file +} // namespace display::ui::bar \ No newline at end of file diff --git a/src/Display/UI/Bar/Style.h b/src/Display/UI/Bar/Style.h index 1c0c08e..ce11807 100644 --- a/src/Display/UI/Bar/Style.h +++ b/src/Display/UI/Bar/Style.h @@ -3,19 +3,19 @@ #include "Display/Graphics/Color.h" #include "Display/UI/Theme/Theme.h" -namespace Display::UI::Bar +namespace display::ui::bar { struct Style { - Display::Graphics::Color background; - Display::Graphics::Color fill; - Display::Graphics::Color border; + display::graphics::Color background; + display::graphics::Color fill; + display::graphics::Color border; bool drawBorder; Style( - Display::Graphics::Color background = Display::UI::Theme::Bar::BACKGROUND, - Display::Graphics::Color fill = Display::UI::Theme::Bar::FILL, - Display::Graphics::Color border = Display::UI::Theme::Bar::BORDER, + display::graphics::Color background = display::ui::theme::bar::BACKGROUND, + display::graphics::Color fill = display::ui::theme::bar::FILL, + display::graphics::Color border = display::ui::theme::bar::BORDER, bool drawBorder = true) : background(background), fill(fill), @@ -24,4 +24,4 @@ namespace Display::UI::Bar { } }; -} // namespace Display::UI::Bar +} // namespace display::ui::bar diff --git a/src/Display/UI/Header/CMakeLists.txt b/src/Display/UI/Header/CMakeLists.txt index 2513e2f..939d206 100644 --- a/src/Display/UI/Header/CMakeLists.txt +++ b/src/Display/UI/Header/CMakeLists.txt @@ -4,12 +4,12 @@ add_library(DisplayUIHeader Header.cpp ) -add_library(Display::UI::Header ALIAS DisplayUIHeader) +add_library(display::ui::Header ALIAS DisplayUIHeader) target_link_libraries(DisplayUIHeader PUBLIC Display::Graphics - Display::UI::Text + display::ui::Text ) target_include_directories(DisplayUIHeader diff --git a/src/Display/UI/Header/Header.cpp b/src/Display/UI/Header/Header.cpp index 7e2c3e3..6842a6e 100644 --- a/src/Display/UI/Header/Header.cpp +++ b/src/Display/UI/Header/Header.cpp @@ -11,20 +11,20 @@ #include "Display/UI/Theme/Theme.h" #include "Display/Graphics/Color.h" -namespace Display::UI::Header +namespace display::ui::header { Header::Header() { } void Header::draw( - Graphics::Framebuffer &fb, - UI::Text::Renderer &text, + display::graphics::Framebuffer &fb, + display::ui::text::Renderer &text, int x, int y) { // ===== Block background ===== - fb.fillRect(x, y, HEADER_WIDTH, HEADER_HEIGHT, Display::UI::Theme::Header::BACKGROUND); - fb.drawRect(x, y, HEADER_WIDTH, HEADER_HEIGHT, Display::UI::Theme::Header::BORDER); + fb.fillRect(x, y, HEADER_WIDTH, HEADER_HEIGHT, display::ui::theme::header::BACKGROUND); + fb.drawRect(x, y, HEADER_WIDTH, HEADER_HEIGHT, display::ui::theme::header::BORDER); int cursorY = y + PADDING; @@ -33,9 +33,9 @@ namespace Display::UI::Header x + PADDING + 120 - 2, cursorY + 8, getCurrentDateTime(), - Display::UI::Theme::Text::TEXT, - Display::UI::Theme::Text::OUTLINE, - Display::UI::Text::Font{std::string(HEADER_FONT_NAME.begin(), HEADER_FONT_NAME.end()), HEADER_FONT_SIZE}); + display::ui::theme::text::TEXT, + display::ui::theme::text::OUTLINE, + display::ui::text::Font{std::string(HEADER_FONT_NAME.begin(), HEADER_FONT_NAME.end()), HEADER_FONT_SIZE}); } std::string Header::getCurrentDateTime() diff --git a/src/Display/UI/Header/Header.h b/src/Display/UI/Header/Header.h index 766f641..cf9b183 100644 --- a/src/Display/UI/Header/Header.h +++ b/src/Display/UI/Header/Header.h @@ -7,7 +7,7 @@ #include "Display/Graphics/Color.h" #include "Display/UI/Text/Renderer.h" -namespace Display::UI::Header +namespace display::ui::header { // ===== Layout ===== constexpr int HEADER_WIDTH = 240; // 116 @@ -25,8 +25,8 @@ namespace Display::UI::Header static constexpr int height() { return HEADER_HEIGHT; } void draw( - Graphics::Framebuffer &fb, - UI::Text::Renderer &text, + display::graphics::Framebuffer &fb, + display::ui::text::Renderer &text, int x, int y); private: diff --git a/src/Display/UI/HostBlock/CMakeLists.txt b/src/Display/UI/HostBlock/CMakeLists.txt index c72079b..7337330 100644 --- a/src/Display/UI/HostBlock/CMakeLists.txt +++ b/src/Display/UI/HostBlock/CMakeLists.txt @@ -4,13 +4,13 @@ add_library(DisplayUIHostBlock HostBlock.cpp ) -add_library(Display::UI::HostBlock ALIAS DisplayUIHostBlock) +add_library(display::ui::HostBlock ALIAS DisplayUIHostBlock) target_link_libraries(DisplayUIHostBlock PUBLIC Display::Graphics - Display::UI::Text - Display::UI::Bar + display::ui::Text + display::ui::Bar ) target_include_directories(DisplayUIHostBlock diff --git a/src/Display/UI/HostBlock/HostBlock.cpp b/src/Display/UI/HostBlock/HostBlock.cpp index e6ede0f..bbe3423 100644 --- a/src/Display/UI/HostBlock/HostBlock.cpp +++ b/src/Display/UI/HostBlock/HostBlock.cpp @@ -8,33 +8,33 @@ #include "Display/Graphics/Color.h" #include "Display/UI/Text/Helpers.h" -namespace Display::UI::HostBlock +namespace display::ui::hostblock { HostBlock::HostBlock() : cpuBar( CPU_BAR_WIDTH, CPU_BAR_HEIGHT, - Display::UI::Bar::Orientation::Vertical, - Display::UI::Bar::Style{Display::Graphics::Color{40, 40, 40}, Display::Graphics::Color{0, 180, 0}, Display::Graphics::Color{80, 80, 80}, true}), + display::ui::bar::Orientation::Vertical, + display::ui::bar::Style{display::graphics::Color{40, 40, 40}, display::graphics::Color{0, 180, 0}, display::graphics::Color{80, 80, 80}, true}), memBar( BLOCK_WIDTH - PADDING * 2, MEM_BAR_HEIGHT, - Display::UI::Bar::Orientation::Horizontal, - Display::UI::Bar::Style{Display::Graphics::Color{40, 40, 40}, Display::Graphics::Color{0, 120, 200}, Display::Graphics::Color{80, 80, 80}, true}) + display::ui::bar::Orientation::Horizontal, + display::ui::bar::Style{display::graphics::Color{40, 40, 40}, display::graphics::Color{0, 120, 200}, display::graphics::Color{80, 80, 80}, true}) { } void HostBlock::draw( - Graphics::Framebuffer &fb, - UI::Text::Renderer &text, + display::graphics::Framebuffer &fb, + display::ui::text::Renderer &text, int x, int y, const std::string &hostname, - const Metrics::Host &metrics) + const metrics::Host &metrics) { // ===== Block background ===== - fb.fillRect(x, y, BLOCK_WIDTH, BLOCK_HEIGHT, Display::UI::Theme::HostBlock::BACKGROUND); - fb.drawRect(x, y, BLOCK_WIDTH, BLOCK_HEIGHT, Display::UI::Theme::HostBlock::BORDER); + fb.fillRect(x, y, BLOCK_WIDTH, BLOCK_HEIGHT, display::ui::theme::hostblock::BACKGROUND); + fb.drawRect(x, y, BLOCK_WIDTH, BLOCK_HEIGHT, display::ui::theme::hostblock::BORDER); int cursorY = y + PADDING; @@ -44,18 +44,18 @@ namespace Display::UI::HostBlock cursorY, BLOCK_WIDTH - PADDING * 2, HEADER_HEIGHT, - Display::UI::Theme::HostBlock::HEADER); + display::ui::theme::hostblock::HEADER); text.drawTextOutlined( fb, x + PADDING + 2, cursorY + HEADER_HEIGHT - 3, hostname, - Display::UI::Theme::Text::TEXT, - Display::UI::Theme::Text::OUTLINE, - // Display::UI::Text::Font{"LiberationSans-Regular", HEADER_FONT_SIZE}); - // Display::UI::Text::Font{"PixelFive-Regular", 5}); - Display::UI::Text::Font{std::string(HEADER_FONT_NAME.begin(), HEADER_FONT_NAME.end()), HEADER_FONT_SIZE}); + display::ui::theme::text::TEXT, + display::ui::theme::text::OUTLINE, + // display::ui::text::Font{"LiberationSans-Regular", HEADER_FONT_SIZE}); + // display::ui::text::Font{"PixelFive-Regular", 5}); + display::ui::text::Font{std::string(HEADER_FONT_NAME.begin(), HEADER_FONT_NAME.end()), HEADER_FONT_SIZE}); cursorY += HEADER_HEIGHT + SECTION_GAP; @@ -96,10 +96,10 @@ namespace Display::UI::HostBlock text.drawTextOutlined(fb, x + MEM_BAR_TEXT_PADDING_X, cursorY + 8, - "M: " + Display::UI::Text::formatFloat(metrics.memory.mem_used / 1073741824) + "/" + Display::UI::Text::formatFloat(metrics.memory.mem_total / 1073741824), - Display::UI::Theme::Text::TEXT, - Display::UI::Theme::Text::OUTLINE, - Display::UI::Text::Font{"PixelFive-Regular", 5}); + "M: " + display::ui::text::formatFloat(metrics.memory.mem_used / 1073741824) + "/" + display::ui::text::formatFloat(metrics.memory.mem_total / 1073741824), + display::ui::theme::text::TEXT, + display::ui::theme::text::OUTLINE, + display::ui::text::Font{"PixelFive-Regular", 5}); cursorY += MEM_BAR_HEIGHT + SECTION_GAP; @@ -115,10 +115,10 @@ namespace Display::UI::HostBlock text.drawTextOutlined(fb, x + MEM_BAR_TEXT_PADDING_X, cursorY + 8, - "S: " + Display::UI::Text::formatFloat(metrics.memory.swap_used / 1073741824) + "/" + Display::UI::Text::formatFloat(metrics.memory.swap_total / 1073741824), - Display::UI::Theme::Text::TEXT, - Display::UI::Theme::Text::OUTLINE, - Display::UI::Text::Font{"PixelFive-Regular", 5}); + "S: " + display::ui::text::formatFloat(metrics.memory.swap_used / 1073741824) + "/" + display::ui::text::formatFloat(metrics.memory.swap_total / 1073741824), + display::ui::theme::text::TEXT, + display::ui::theme::text::OUTLINE, + display::ui::text::Font{"PixelFive-Regular", 5}); cursorY += MEM_BAR_HEIGHT + SECTION_GAP; } @@ -137,10 +137,10 @@ namespace Display::UI::HostBlock text.drawTextOutlined(fb, x + MEM_BAR_TEXT_PADDING_X, by + 8, - metrics.disks[i].name + ": " + Display::UI::Text::formatFloat(metrics.disks[i].used / 1073741824) + "/" + Display::UI::Text::formatFloat(metrics.disks[i].total / 1073741824), - Display::UI::Theme::Text::TEXT, - Display::UI::Theme::Text::OUTLINE, - Display::UI::Text::Font{"PixelFive-Regular", 5}); + metrics.disks[i].name + ": " + display::ui::text::formatFloat(metrics.disks[i].used / 1073741824) + "/" + display::ui::text::formatFloat(metrics.disks[i].total / 1073741824), + display::ui::theme::text::TEXT, + display::ui::theme::text::OUTLINE, + display::ui::text::Font{"PixelFive-Regular", 5}); } } } diff --git a/src/Display/UI/HostBlock/HostBlock.h b/src/Display/UI/HostBlock/HostBlock.h index 9b949a9..05dd7bb 100644 --- a/src/Display/UI/HostBlock/HostBlock.h +++ b/src/Display/UI/HostBlock/HostBlock.h @@ -9,7 +9,7 @@ #include "Display/UI/Bar/Bar.h" #include "Metrics/Host.h" -namespace Display::UI::HostBlock +namespace display::ui::hostblock { // ===== Layout ===== constexpr int BLOCK_WIDTH = 118; // 118 @@ -41,14 +41,14 @@ namespace Display::UI::HostBlock static constexpr int height() { return BLOCK_HEIGHT; } void draw( - Graphics::Framebuffer &fb, - UI::Text::Renderer &text, + display::graphics::Framebuffer &fb, + display::ui::text::Renderer &text, int x, int y, const std::string &hostname, - const Metrics::Host &metrics); + const metrics::Host &metrics); private: - UI::Bar::Bar cpuBar; - UI::Bar::Bar memBar; + display::ui::bar::Bar cpuBar; + display::ui::bar::Bar memBar; }; } diff --git a/src/Display/UI/Text/CMakeLists.txt b/src/Display/UI/Text/CMakeLists.txt index ad70a27..f4b4920 100644 --- a/src/Display/UI/Text/CMakeLists.txt +++ b/src/Display/UI/Text/CMakeLists.txt @@ -7,7 +7,7 @@ add_library(DisplayUIText ) -add_library(Display::UI::Text ALIAS DisplayUIText) +add_library(display::ui::Text ALIAS DisplayUIText) find_package(Freetype REQUIRED) diff --git a/src/Display/UI/Text/Font.h b/src/Display/UI/Text/Font.h index b03cce9..c56e761 100644 --- a/src/Display/UI/Text/Font.h +++ b/src/Display/UI/Text/Font.h @@ -2,7 +2,7 @@ #include -namespace Display::UI::Text +namespace display::ui::text { struct Font { @@ -21,4 +21,4 @@ namespace Display::UI::Text return std::hash()(k.name) ^ std::hash()(k.size); } }; -} // namespace Display::UI::Text +} // namespace display::ui::text diff --git a/src/Display/UI/Text/Fonts.cpp b/src/Display/UI/Text/Fonts.cpp index ec010f1..49f433b 100644 --- a/src/Display/UI/Text/Fonts.cpp +++ b/src/Display/UI/Text/Fonts.cpp @@ -6,7 +6,7 @@ #include #include "Helpers/Paths.h" -namespace Display::UI::Text +namespace display::ui::text { struct Fonts::Library { @@ -38,7 +38,7 @@ namespace Display::UI::Text void Fonts::loadAllFonts() { loadFonts("/usr/share/fonts/truetype"); - loadFonts(Helpers::initPaths().exeDir); + loadFonts(helpers::initPaths().exeDir); } void Fonts::loadFonts(const std::string &path) @@ -116,4 +116,4 @@ namespace Display::UI::Text } return glyphs.emplace(key, std::move(glyph)).first->second; } -} // namespace Display::UI::Text \ No newline at end of file +} // namespace display::ui::text \ No newline at end of file diff --git a/src/Display/UI/Text/Fonts.h b/src/Display/UI/Text/Fonts.h index 3a3d0ef..64ac60e 100644 --- a/src/Display/UI/Text/Fonts.h +++ b/src/Display/UI/Text/Fonts.h @@ -6,7 +6,7 @@ #include "Display/UI/Text/Glyph.h" #include "Display/UI/Text/GlyphKey.h" -namespace Display::UI::Text +namespace display::ui::text { class Fonts { @@ -25,4 +25,4 @@ namespace Display::UI::Text void loadAllFonts(); void loadFonts(const std::string &path); }; -} // namespace Display::UI::Text \ No newline at end of file +} // namespace display::ui::text \ No newline at end of file diff --git a/src/Display/UI/Text/Glyph.h b/src/Display/UI/Text/Glyph.h index 9383458..aa4e4a1 100644 --- a/src/Display/UI/Text/Glyph.h +++ b/src/Display/UI/Text/Glyph.h @@ -1,7 +1,7 @@ #include #include -namespace Display::UI::Text +namespace display::ui::text { struct Glyph { @@ -12,4 +12,4 @@ namespace Display::UI::Text int advance; std::vector buffer; // grayscale bitmap }; -} // namespace Display::UI::Text +} // namespace display::ui::text diff --git a/src/Display/UI/Text/GlyphKey.h b/src/Display/UI/Text/GlyphKey.h index d1cd4e1..5d1bd5c 100644 --- a/src/Display/UI/Text/GlyphKey.h +++ b/src/Display/UI/Text/GlyphKey.h @@ -3,7 +3,7 @@ #include #include "Font.h" -namespace Display::UI::Text +namespace display::ui::text { struct GlyphKey { @@ -25,4 +25,4 @@ namespace Display::UI::Text return h1 ^ (h2 << 1); } }; -} // namespace Display::UI::Text +} // namespace display::ui::text diff --git a/src/Display/UI/Text/Helpers.cpp b/src/Display/UI/Text/Helpers.cpp index 886bf94..5d96bfc 100644 --- a/src/Display/UI/Text/Helpers.cpp +++ b/src/Display/UI/Text/Helpers.cpp @@ -2,7 +2,7 @@ #include -namespace Display::UI::Text +namespace display::ui::text { std::string formatFloat(float value, int decimals) { @@ -17,4 +17,4 @@ namespace Display::UI::Text std::snprintf(buffer, sizeof(buffer), "%.*f", decimals, value); return std::string(buffer); } -} // namespace Display::UI::Text +} // namespace display::ui::text diff --git a/src/Display/UI/Text/Helpers.h b/src/Display/UI/Text/Helpers.h index 6f4c31c..fc14bea 100644 --- a/src/Display/UI/Text/Helpers.h +++ b/src/Display/UI/Text/Helpers.h @@ -2,8 +2,8 @@ #include -namespace Display::UI::Text +namespace display::ui::text { std::string formatFloat(float value, int decimals = 1); std::string formatDouble(double value, int decimals = 1); -} // namespace Display::UI::Text +} // namespace display::ui::text diff --git a/src/Display/UI/Text/Renderer.cpp b/src/Display/UI/Text/Renderer.cpp index e3d8f73..a9c1f7a 100644 --- a/src/Display/UI/Text/Renderer.cpp +++ b/src/Display/UI/Text/Renderer.cpp @@ -3,10 +3,10 @@ #include -namespace Display::UI::Text +namespace display::ui::text { - void Renderer::drawText(Display::Graphics::Framebuffer &fb, int x, int y, - const std::string &text, const Display::Graphics::Color &color, const Font &font) + void Renderer::drawText(display::graphics::Framebuffer &fb, int x, int y, + const std::string &text, const display::graphics::Color &color, const Font &font) { int penX = x; int baseline = y; @@ -27,8 +27,8 @@ namespace Display::UI::Text if (!alpha) continue; - Display::Graphics::Color bg = fb.getPixel(px, py); - Display::Graphics::Color out; + display::graphics::Color bg = fb.getPixel(px, py); + display::graphics::Color out; out.r = (alpha * color.r + (255 - alpha) * bg.r) / 255; out.g = (alpha * color.g + (255 - alpha) * bg.g) / 255; out.b = (alpha * color.b + (255 - alpha) * bg.b) / 255; @@ -41,11 +41,11 @@ namespace Display::UI::Text } } - void Renderer::drawTextOutlined(Display::Graphics::Framebuffer &fb, + void Renderer::drawTextOutlined(display::graphics::Framebuffer &fb, int x, int y, const std::string &text, - const Display::Graphics::Color &colorText, - const Display::Graphics::Color &colorOutline, + const display::graphics::Color &colorText, + const display::graphics::Color &colorOutline, const Font &font) { // outline @@ -83,4 +83,4 @@ namespace Display::UI::Text } */ -} // namespace Display::UI::Text \ No newline at end of file +} // namespace display::ui::text \ No newline at end of file diff --git a/src/Display/UI/Text/Renderer.h b/src/Display/UI/Text/Renderer.h index e4e8b73..c745b92 100644 --- a/src/Display/UI/Text/Renderer.h +++ b/src/Display/UI/Text/Renderer.h @@ -8,14 +8,14 @@ #include #include -namespace Display::UI::Text +namespace display::ui::text { class Renderer { public: - void drawText(Display::Graphics::Framebuffer &fb, int x, int y, const std::string &text, const Display::Graphics::Color &color = Display::Graphics::Color{255, 255, 255}, const Font &font = {"LiberationSans-Regular", 12}); - void drawTextOutlined(Display::Graphics::Framebuffer &fb, int x, int y, const std::string &text, const Display::Graphics::Color &colorText = Display::Graphics::Color{255, 255, 255}, const Display::Graphics::Color &colorOutline = Display::Graphics::Color{0, 0, 0}, const Font &font = {"LiberationSans-Regular", 12}); + void drawText(display::graphics::Framebuffer &fb, int x, int y, const std::string &text, const display::graphics::Color &color = display::graphics::Color{255, 255, 255}, const Font &font = {"LiberationSans-Regular", 12}); + void drawTextOutlined(display::graphics::Framebuffer &fb, int x, int y, const std::string &text, const display::graphics::Color &colorText = display::graphics::Color{255, 255, 255}, const display::graphics::Color &colorOutline = display::graphics::Color{0, 0, 0}, const Font &font = {"LiberationSans-Regular", 12}); // int measureWidth(const std::string &text); // int measureHeight(const std::string &text); @@ -24,4 +24,4 @@ namespace Display::UI::Text Fonts fonts; }; -} // namespace Display::UI::Text \ No newline at end of file +} // namespace display::ui::text \ No newline at end of file diff --git a/src/Display/UI/Text/UTFDecoder.h b/src/Display/UI/Text/UTFDecoder.h index 25eefd2..0af1558 100644 --- a/src/Display/UI/Text/UTFDecoder.h +++ b/src/Display/UI/Text/UTFDecoder.h @@ -2,7 +2,7 @@ #include #include -namespace Display::UI::Text +namespace display::ui::text { inline bool utf8Next(std::string_view &s, uint32_t &codepoint) @@ -36,4 +36,4 @@ namespace Display::UI::Text return true; } -} // namespace Display::UI::Text \ No newline at end of file +} // namespace display::ui::text \ No newline at end of file diff --git a/src/Display/UI/Theme/CMakeLists.txt b/src/Display/UI/Theme/CMakeLists.txt index 6ba7839..1743a41 100644 --- a/src/Display/UI/Theme/CMakeLists.txt +++ b/src/Display/UI/Theme/CMakeLists.txt @@ -2,7 +2,7 @@ message(STATUS "···Configuring Theme") add_library(Theme INTERFACE) -add_library(Display::UI::Theme ALIAS Theme) +add_library(display::ui::Theme ALIAS Theme) target_link_libraries(Theme INTERFACE diff --git a/src/Display/UI/Theme/Theme.h b/src/Display/UI/Theme/Theme.h index f2f753f..f7aba2b 100644 --- a/src/Display/UI/Theme/Theme.h +++ b/src/Display/UI/Theme/Theme.h @@ -2,34 +2,34 @@ #include "Display/Graphics/Color.h" -namespace Display::UI::Theme +namespace display::ui::theme { - namespace Text + namespace text { - const Display::Graphics::Color TEXT{220, 220, 220}; - const Display::Graphics::Color OUTLINE{20, 20, 20}; - } // namespace Text + const display::graphics::Color TEXT{220, 220, 220}; + const display::graphics::Color OUTLINE{20, 20, 20}; + } // namespace text - namespace Header + namespace header { // ===== Header ===== - const Display::Graphics::Color BACKGROUND{20, 20, 20}; - const Display::Graphics::Color BORDER{60, 60, 60}; - const Display::Graphics::Color HEADER{30, 30, 30}; - } // namespace Header + const display::graphics::Color BACKGROUND{20, 20, 20}; + const display::graphics::Color BORDER{60, 60, 60}; + const display::graphics::Color HEADER{30, 30, 30}; + } // namespace header - namespace HostBlock + namespace hostblock { // ===== HostBlock ===== - const Display::Graphics::Color BACKGROUND{20, 20, 20}; - const Display::Graphics::Color BORDER{60, 60, 60}; - const Display::Graphics::Color HEADER{30, 30, 30}; - } // namespace HostBlock + const display::graphics::Color BACKGROUND{20, 20, 20}; + const display::graphics::Color BORDER{60, 60, 60}; + const display::graphics::Color HEADER{30, 30, 30}; + } // namespace hostblock - namespace Bar + namespace bar { - const Display::Graphics::Color BACKGROUND{30, 30, 30}; - const Display::Graphics::Color FILL{0, 180, 0}; - const Display::Graphics::Color BORDER{80, 80, 80}; - } // namespace Bar -} // namespace Display::UI::Theme + const display::graphics::Color BACKGROUND{30, 30, 30}; + const display::graphics::Color FILL{0, 180, 0}; + const display::graphics::Color BORDER{80, 80, 80}; + } // namespace bar +} // namespace display::ui::theme diff --git a/src/Helpers/Paths.h b/src/Helpers/Paths.h index f792013..bb364b1 100644 --- a/src/Helpers/Paths.h +++ b/src/Helpers/Paths.h @@ -4,7 +4,7 @@ #include #include -namespace Helpers +namespace helpers { std::filesystem::path getExecutablePath() { @@ -34,4 +34,4 @@ namespace Helpers p.assetsDir = p.exeDir / "assets"; return p; } -} // namespace Helpers +} // namespace helpers diff --git a/src/Main/Client/main.cpp b/src/Main/Client/main.cpp index b67e19b..52d9f5a 100644 --- a/src/Main/Client/main.cpp +++ b/src/Main/Client/main.cpp @@ -10,10 +10,10 @@ int main(int argc, char **argv) { - Config::Client::Config config = Config::Client::Config::load("client.ini"); - Network::Client client(config.network.serverHost, config.network.serverPort); - Metrics::Collector collector; - Network::Agent agent(std::move(client), std::move(collector), config.network.intervalMs); + config::client::Config config = config::client::Config::load("client.ini"); + network::Client client(config.network.serverHost, config.network.serverPort); + metrics::Collector collector(config.collector.disks); + network::Agent agent(std::move(client), std::move(collector), config.network.intervalMs); agent.start(); diff --git a/src/Main/Server/CMakeLists.txt b/src/Main/Server/CMakeLists.txt index fe4d32e..013ae3a 100644 --- a/src/Main/Server/CMakeLists.txt +++ b/src/Main/Server/CMakeLists.txt @@ -9,8 +9,8 @@ target_link_libraries(${TARGET_NAME_SERVER} PRIVATE Config::Server Display::Graphics - Display::UI::Bar - Display::UI::Text + display::ui::Bar + display::ui::Text Helpers::All Metrics::All Model::All diff --git a/src/Main/Server/main.cpp b/src/Main/Server/main.cpp index 9a5e925..912d7d4 100644 --- a/src/Main/Server/main.cpp +++ b/src/Main/Server/main.cpp @@ -12,11 +12,11 @@ int main(int argc, char **argv) { - Config::Server::Config config = Config::Server::Config::load("server.ini"); - Model::HostRegistry registry; - Display::Graphics::Framebuffer fb("/dev/fb1", Display::Graphics::FramebufferRotation::R270); - Display::Graphics::Renderer renderer(fb, registry); - Network::Server server(config.network.listenPort, registry); + config::server::Config config = config::server::Config::load("server.ini"); + model::HostRegistry registry; + display::graphics::Framebuffer fb("/dev/fb1", display::graphics::FramebufferRotation::R270); + display::graphics::Renderer renderer(fb, registry); + network::Server server(config.network.listenPort, registry); server.start(); diff --git a/src/Metrics/Collector.cpp b/src/Metrics/Collector.cpp index 6af07e9..500d0e8 100644 --- a/src/Metrics/Collector.cpp +++ b/src/Metrics/Collector.cpp @@ -8,10 +8,10 @@ #include #include -namespace Metrics +namespace metrics { - Collector::Collector() + Collector::Collector(const std::vector &disks) : disks(disks) { } @@ -33,7 +33,8 @@ namespace Metrics prevCpu = curCpu; host.memory = readMemory(); - host.disks.push_back(readDisk()); + for (const std::string &disk : disks) + host.disks.push_back(readDisk(disk.c_str())); readLoad(host.load1, host.load5, host.load15); host.uptime = readUptime(); host.hostname = readHostname(); diff --git a/src/Metrics/Collector.h b/src/Metrics/Collector.h index cb2c8d5..f951b8e 100644 --- a/src/Metrics/Collector.h +++ b/src/Metrics/Collector.h @@ -1,12 +1,14 @@ #pragma once #include "Metrics/Host.h" +#include #include -namespace Metrics +namespace metrics { class Collector { public: + Collector(const std::vector &disks = {"/"}); explicit Collector(); Host collect(); @@ -22,6 +24,7 @@ namespace Metrics std::pair> prevCpu; std::pair> readCpuTimes(); + const std::vector disks; float cpuLoad(const CpuTimes &prev, const CpuTimes &cur); Memory readMemory(); Disk readDisk(const char *path = "/"); @@ -29,4 +32,4 @@ namespace Metrics uint64_t readUptime(); std::string readHostname(); }; -} // namespace Metrics +} // namespace metrics diff --git a/src/Metrics/Cpu.h b/src/Metrics/Cpu.h index 9ba1d1c..8321617 100644 --- a/src/Metrics/Cpu.h +++ b/src/Metrics/Cpu.h @@ -1,11 +1,11 @@ #pragma once #include -namespace Metrics +namespace metrics { struct Cpu { float totalLoad; std::vector coreLoads; // длина = num_cores }; -} // namespace Metrics \ No newline at end of file +} // namespace metrics \ No newline at end of file diff --git a/src/Metrics/Disk.h b/src/Metrics/Disk.h index ba0ebca..96b2aa5 100644 --- a/src/Metrics/Disk.h +++ b/src/Metrics/Disk.h @@ -1,7 +1,7 @@ #pragma once #include -namespace Metrics +namespace metrics { struct Disk { @@ -10,4 +10,4 @@ namespace Metrics float free; float total; }; -} // namespace Metrics +} // namespace metrics diff --git a/src/Metrics/Host.cpp b/src/Metrics/Host.cpp index c1133b0..bb2a6ab 100644 --- a/src/Metrics/Host.cpp +++ b/src/Metrics/Host.cpp @@ -6,7 +6,7 @@ #include "Network/Common/Buffer.h" -namespace Metrics +namespace metrics { // ---- Вспомогательные функции для float <-> uint32_t ---- @@ -29,7 +29,7 @@ namespace Metrics // ---- Сериализация ---- std::vector Host::serialize() const { - Network::Buffer buf; + network::Buffer buf; buf.writeUint8(1); // version buf.writeString(hostname); @@ -62,7 +62,7 @@ namespace Metrics Host Host::deserialize(const std::vector &data) { Host h; - Network::Buffer buf(const_cast &>(data)); + network::Buffer buf(const_cast &>(data)); uint8_t version = buf.readUint8(); if (version != 1) @@ -98,4 +98,4 @@ namespace Metrics return h; } -} // namespace Metrics \ No newline at end of file +} // namespace metrics \ No newline at end of file diff --git a/src/Metrics/Host.h b/src/Metrics/Host.h index b79a33c..89a18d2 100644 --- a/src/Metrics/Host.h +++ b/src/Metrics/Host.h @@ -7,7 +7,7 @@ #include "Metrics/Memory.h" #include "Metrics/Disk.h" -namespace Metrics +namespace metrics { struct Host { @@ -24,4 +24,4 @@ namespace Metrics // Десериализация из вектора байт static Host deserialize(const std::vector &data); }; -} // namespace Metrics +} // namespace metrics diff --git a/src/Metrics/Memory.h b/src/Metrics/Memory.h index bd9dfc0..d67758d 100644 --- a/src/Metrics/Memory.h +++ b/src/Metrics/Memory.h @@ -1,6 +1,6 @@ #pragma once -namespace Metrics +namespace metrics { struct Memory { @@ -11,4 +11,4 @@ namespace Metrics float swap_total; float swap_available; }; -} // namespace Metrics +} // namespace metrics diff --git a/src/Model/HostRegistry.cpp b/src/Model/HostRegistry.cpp index c145f5e..6d97729 100644 --- a/src/Model/HostRegistry.cpp +++ b/src/Model/HostRegistry.cpp @@ -1,16 +1,16 @@ #include "Model/HostRegistry.h" -namespace Model +namespace model { - void HostRegistry::update(const std::string &host, const Metrics::Host &m) + void HostRegistry::update(const std::string &host, const metrics::Host &m) { std::lock_guard lock(mutex); hosts[host] = m; } - std::map HostRegistry::snapshot() + std::map HostRegistry::snapshot() { std::lock_guard lock(mutex); return hosts; } -} // namespace Model +} // namespace model diff --git a/src/Model/HostRegistry.h b/src/Model/HostRegistry.h index 54eba7f..5441297 100644 --- a/src/Model/HostRegistry.h +++ b/src/Model/HostRegistry.h @@ -4,16 +4,16 @@ #include #include "Metrics/Host.h" -namespace Model +namespace model { class HostRegistry { public: - void update(const std::string &host, const Metrics::Host &m); - std::map snapshot(); + void update(const std::string &host, const metrics::Host &m); + std::map snapshot(); private: - std::map hosts; + std::map hosts; std::mutex mutex; }; -} // namespace Model +} // namespace model diff --git a/src/Network/Client/Agent.cpp b/src/Network/Client/Agent.cpp index 7169201..825ba2e 100644 --- a/src/Network/Client/Agent.cpp +++ b/src/Network/Client/Agent.cpp @@ -1,12 +1,12 @@ #include "Network/Client/Agent.h" #include -namespace Network +namespace network { Agent::Agent( Client client, - Metrics::Collector collector, + metrics::Collector collector, std::chrono::milliseconds interval) : client(std::move(client)), collector(std::move(collector)), interval(interval) { diff --git a/src/Network/Client/Agent.h b/src/Network/Client/Agent.h index b6b54e5..4b99195 100644 --- a/src/Network/Client/Agent.h +++ b/src/Network/Client/Agent.h @@ -7,7 +7,7 @@ #include #include -namespace Network +namespace network { class Agent @@ -15,7 +15,7 @@ namespace Network public: Agent( Client client, - Metrics::Collector collector, + metrics::Collector collector, std::chrono::milliseconds interval); ~Agent(); @@ -27,7 +27,7 @@ namespace Network void run(); Client client; - Metrics::Collector collector; + metrics::Collector collector; std::chrono::milliseconds interval; std::thread worker; diff --git a/src/Network/Client/Client.cpp b/src/Network/Client/Client.cpp index d42c035..75d0a89 100644 --- a/src/Network/Client/Client.cpp +++ b/src/Network/Client/Client.cpp @@ -4,7 +4,7 @@ #include #include -namespace Network +namespace network { Client::Client(const std::string &host, uint16_t port) @@ -53,7 +53,7 @@ namespace Network return *this; } - bool Client::sendMetrics(const Metrics::Host &metrics) + bool Client::sendMetrics(const metrics::Host &metrics) { auto buffer = metrics.serialize(); ssize_t sent = sendto(sockfd, buffer.data(), buffer.size(), 0, @@ -66,4 +66,4 @@ namespace Network return sent == static_cast(buffer.size()); } -} // namespace Network \ No newline at end of file +} // namespace network \ No newline at end of file diff --git a/src/Network/Client/Client.h b/src/Network/Client/Client.h index d55e054..f0a4aa9 100644 --- a/src/Network/Client/Client.h +++ b/src/Network/Client/Client.h @@ -3,7 +3,7 @@ #include #include "Metrics/Host.h" -namespace Network +namespace network { class Client @@ -19,11 +19,11 @@ namespace Network Client &operator=(Client &&other) noexcept; // Отправить данные - bool sendMetrics(const Metrics::Host &metrics); + bool sendMetrics(const metrics::Host &metrics); private: int sockfd; struct sockaddr_in serverAddr; }; -} // namespace Network \ No newline at end of file +} // namespace network \ No newline at end of file diff --git a/src/Network/Common/Buffer.cpp b/src/Network/Common/Buffer.cpp index 4d60fd1..249552e 100644 --- a/src/Network/Common/Buffer.cpp +++ b/src/Network/Common/Buffer.cpp @@ -1,6 +1,6 @@ #include "Network/Common/Buffer.h" -namespace Network +namespace network { void Buffer::writeUint8(uint8_t v) { @@ -83,4 +83,4 @@ namespace Network if (pos + n > buffer.size()) throw std::runtime_error("Buffer underrun"); } -} // namespace Network +} // namespace network diff --git a/src/Network/Common/Buffer.h b/src/Network/Common/Buffer.h index 6a2fe50..4afef6d 100644 --- a/src/Network/Common/Buffer.h +++ b/src/Network/Common/Buffer.h @@ -5,7 +5,7 @@ #include #include -namespace Network +namespace network { class Buffer { @@ -34,4 +34,4 @@ namespace Network std::vector buffer; size_t pos; }; -} // namespace Network +} // namespace network diff --git a/src/Network/Server/Server.cpp b/src/Network/Server/Server.cpp index c11f005..ba26467 100644 --- a/src/Network/Server/Server.cpp +++ b/src/Network/Server/Server.cpp @@ -5,23 +5,23 @@ #include #include "Metrics/Host.h" -namespace Network +namespace network { - Server::Server(uint16_t port, Model::HostRegistry ®istry) - : port_(port), registry_(registry), running_(false) + Server::Server(uint16_t port, model::HostRegistry ®istry) + : port(port), registry(registry), running(false) { - sockfd_ = socket(AF_INET, SOCK_DGRAM, 0); - if (sockfd_ < 0) + sockfd = socket(AF_INET, SOCK_DGRAM, 0); + if (sockfd < 0) throw std::runtime_error("Failed to create UDP socket"); sockaddr_in addr{}; addr.sin_family = AF_INET; addr.sin_addr.s_addr = INADDR_ANY; - addr.sin_port = htons(port_); + addr.sin_port = htons(port); - if (bind(sockfd_, reinterpret_cast(&addr), sizeof(addr)) < 0) + if (bind(sockfd, reinterpret_cast(&addr), sizeof(addr)) < 0) { throw std::runtime_error("Failed to bind UDP socket"); } @@ -30,20 +30,20 @@ namespace Network Server::~Server() { stop(); - close(sockfd_); + close(sockfd); } void Server::start() { - running_ = true; - serverThread_ = std::thread(&Server::run, this); + running = true; + serverThread = std::thread(&Server::run, this); } void Server::stop() { - running_ = false; - if (serverThread_.joinable()) - serverThread_.join(); + running = false; + if (serverThread.joinable()) + serverThread.join(); } void Server::run() @@ -51,17 +51,17 @@ namespace Network constexpr size_t BUF_SIZE = 4096; uint8_t buffer[BUF_SIZE]; - while (running_) + while (running) { fd_set readfds; FD_ZERO(&readfds); - FD_SET(sockfd_, &readfds); + FD_SET(sockfd, &readfds); timeval tv{}; tv.tv_sec = 0; tv.tv_usec = 500 * 1000; // 500 ms - int ret = select(sockfd_ + 1, &readfds, nullptr, nullptr, &tv); + int ret = select(sockfd + 1, &readfds, nullptr, nullptr, &tv); if (ret < 0) { @@ -77,12 +77,12 @@ namespace Network continue; } - if (FD_ISSET(sockfd_, &readfds)) + if (FD_ISSET(sockfd, &readfds)) { sockaddr_in clientAddr{}; socklen_t addrLen = sizeof(clientAddr); ssize_t len = recvfrom( - sockfd_, + sockfd, buffer, BUF_SIZE, 0, @@ -95,8 +95,8 @@ namespace Network try { std::vector data(buffer, buffer + len); - auto metrics = Metrics::Host::deserialize(data); - registry_.update(metrics.hostname, metrics); + auto metrics = metrics::Host::deserialize(data); + registry.update(metrics.hostname, metrics); } catch (const std::exception &e) { @@ -106,4 +106,4 @@ namespace Network } } -} // namespace Network \ No newline at end of file +} // namespace network \ No newline at end of file diff --git a/src/Network/Server/Server.h b/src/Network/Server/Server.h index 938c1f2..9c5e8a8 100644 --- a/src/Network/Server/Server.h +++ b/src/Network/Server/Server.h @@ -4,13 +4,13 @@ #include #include -namespace Network +namespace network { class Server { public: - Server(uint16_t port, Model::HostRegistry ®istry); + Server(uint16_t port, model::HostRegistry ®istry); ~Server(); void start(); @@ -19,11 +19,11 @@ namespace Network private: void run(); - int sockfd_; - uint16_t port_; - std::thread serverThread_; - std::atomic running_; - Model::HostRegistry ®istry_; + int sockfd; + uint16_t port; + std::thread serverThread; + std::atomic running; + model::HostRegistry ®istry; }; -} // namespace Network \ No newline at end of file +} // namespace network \ No newline at end of file