From 9f88390b1ac3d2a735ca6934a3b9a3f35b37620c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B0=D1=88=D0=B5=20=D0=98=D0=BC=D1=8F?= Date: Sun, 5 Oct 2025 14:13:52 +0400 Subject: [PATCH] refactor(option_utils): enhance option handling with default values and names Removed server.hpp as part of refactoring the option utilities to use Boost's program_options more effectively, allowing for named default values. --- src/common/option_utils.hpp | 10 ++++++++-- src/common/option_utils.tpp | 11 ++++++++--- src/common/server.hpp | 9 --------- 3 files changed, 16 insertions(+), 14 deletions(-) delete mode 100644 src/common/server.hpp diff --git a/src/common/option_utils.hpp b/src/common/option_utils.hpp index 2f8bbc1..a907ef2 100644 --- a/src/common/option_utils.hpp +++ b/src/common/option_utils.hpp @@ -4,11 +4,17 @@ class OptionUtils { + public: + template + using OptionValue = boost::program_options::typed_value *; + + template + static OptionValue + withDefault(const T &value, const char *name = nullptr); + protected: OptionUtils() = default; ~OptionUtils() = default; - - template static auto withDefault(T value); }; #include "option_utils.tpp" diff --git a/src/common/option_utils.tpp b/src/common/option_utils.tpp index 7788a96..4ce5df9 100644 --- a/src/common/option_utils.tpp +++ b/src/common/option_utils.tpp @@ -1,8 +1,13 @@ #pragma once - #include "option_utils.hpp" -template auto OptionUtils::withDefault(T value) +template +OptionUtils::OptionValue +OptionUtils::withDefault(const T &value, const char *name) { - return boost::program_options::value()->default_value(value); + auto v = boost::program_options::value()->default_value(value); + if (name) { + v->value_name(name); // Optional + } + return v; } diff --git a/src/common/server.hpp b/src/common/server.hpp deleted file mode 100644 index 60a60a1..0000000 --- a/src/common/server.hpp +++ /dev/null @@ -1,9 +0,0 @@ -#pragma once - -class Server -{ - public: - virtual ~Server() = default; - virtual void start() = 0; - virtual void stop() = 0; -};