2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
42#include "net/config/ConfigInstance.h"
44#ifndef DOXYGEN_SHOULD_SKIP_THIS
46#include "utils/Config.h"
52#pragma GCC diagnostic push
53#pragma GCC diagnostic ignored "-Wfloat-equal"
55#if __has_warning
("-Wweak-vtables")
56#pragma GCC diagnostic ignored "-Wweak-vtables"
58#if __has_warning
("-Wcovered-switch-default")
59#pragma GCC diagnostic ignored "-Wcovered-switch-default"
63#include "utils/CLI11.hpp"
65#pragma GCC diagnostic pop
70namespace net::config {
77 instanceSc = utils::Config::addInstance(instanceName,
78 std::string(
"Configuration for ")
80 .append(
" instance '")
94 "Disable this instance")
96 ->default_val(
"false")
98 ->check(
CLI::IsMember({
"true",
"false"}))
99 ->group(
instanceSc->get_formatter()->get_label(
"Persistent Options"));
120 ->add_subcommand(name, description)
122 ->configurable(
false)
123 ->allow_extras(
false)
129 ->configurable(!sectionSc->get_disabled());
131 if (!sectionSc->get_disabled()) {
132 utils::Config::addStandardFlags(sectionSc);
133 utils::Config::addSimpleHelp(sectionSc);
140 if (req != section->get_required()) {
149 section->required(req);
162 return instanceSc->get_subcommand_no_throw(name);
172 ->default_val(disabled ?
"true" :
"false")
175 utils::Config::disabled(
instanceSc, disabled);
CLI::App * getSection(const std::string &name) const
virtual ~ConfigInstance()
void setDisabled(bool disabled=true)
void setInstanceName(const std::string &instanceName)
ConfigInstance(const std::string &instanceName, Role role)
static const std::string nameAnonymous
CLI::App * addSection(const std::string &name, const std::string &description)
const std::string & getInstanceName() const
void required(CLI::App *section, bool req=true)