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.
This commit is contained in:
@@ -4,11 +4,17 @@
|
|||||||
|
|
||||||
class OptionUtils
|
class OptionUtils
|
||||||
{
|
{
|
||||||
|
public:
|
||||||
|
template <typename T>
|
||||||
|
using OptionValue = boost::program_options::typed_value<T> *;
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
static OptionValue<T>
|
||||||
|
withDefault(const T &value, const char *name = nullptr);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
OptionUtils() = default;
|
OptionUtils() = default;
|
||||||
~OptionUtils() = default;
|
~OptionUtils() = default;
|
||||||
|
|
||||||
template <typename T> static auto withDefault(T value);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#include "option_utils.tpp"
|
#include "option_utils.tpp"
|
||||||
|
|||||||
@@ -1,8 +1,13 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "option_utils.hpp"
|
#include "option_utils.hpp"
|
||||||
|
|
||||||
template <typename T> auto OptionUtils::withDefault(T value)
|
template <typename T>
|
||||||
|
OptionUtils::OptionValue<T>
|
||||||
|
OptionUtils::withDefault(const T &value, const char *name)
|
||||||
{
|
{
|
||||||
return boost::program_options::value<T>()->default_value(value);
|
auto v = boost::program_options::value<T>()->default_value(value);
|
||||||
|
if (name) {
|
||||||
|
v->value_name(name); // Optional
|
||||||
|
}
|
||||||
|
return v;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
class Server
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
virtual ~Server() = default;
|
|
||||||
virtual void start() = 0;
|
|
||||||
virtual void stop() = 0;
|
|
||||||
};
|
|
||||||
Reference in New Issue
Block a user