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#ifndef NET_CONFIG_CONFIGINSTANCE_HPP
43#define NET_CONFIG_CONFIGINSTANCE_HPP
45#ifndef DOXYGEN_SHOULD_SKIP_THIS
47#include "net/config/ConfigInstance.h"
48#include "utils/Config.h"
49#include "utils/ConfigApp.h"
63 instanceSc->option_defaults()->take_last();
65 instanceSc->option_defaults()->group(instanceSc->get_formatter()->get_label(
"Nonpersistent Options"));
70 template <
typename SectionType>
75 return sectionApp !=
nullptr ? sectionApp->getPtr() :
nullptr;
78 template <
typename ConcreteConfigSection,
typename... Args>
80 return dynamic_cast<ConcreteConfigSection*>(addSection(std::make_shared<ConcreteConfigSection>(
this, std::forward<Args>(args)...)));
89 auto* appWithPtr = app->get_subcommand_no_throw(std::string(T::name));
93 return instanceApp !=
nullptr ? instanceApp->getPtr() :
nullptr;
98 return std::static_pointer_cast<T>(configSections.emplace_back(std::make_shared<T>())).get();
static constexpr std::string_view name
static constexpr std::string_view description
ConfigDb & setHost(const std::string &host)
void * operator new(std::size_t count)=delete
static void init(int argc, char *argv[])
static TickStatus tick(const utils::Timeval &timeOut=0)
static int start(const utils::Timeval &timeOut={LONG_MAX, 0})
Timer(Timer &&timer) noexcept
Timer & operator=(Timer &&timer) noexcept
Timer(core::TimerEventReceiver *timerEventReceiver)
TimerEventReceiver * timerEventReceiver
void removeTimerEventReceiver()
Timer & operator=(const Timer &)=delete
Timer & operator=(Timer &&timer) noexcept=default
static Timer singleshotTimer(const std::function< void()> &dispatcher, const utils::Timeval &timeout)
static Timer intervalTimer(const std::function< void(const std::function< void()> &)> &dispatcher, const utils::Timeval &timeout)
Timer(Timer &&timer) noexcept=default
static Timer intervalTimer(const std::function< void()> &dispatcher, const utils::Timeval &timeout)
MariaDBClientASyncAPI(const MariaDBClientASyncAPI &)=default
virtual MariaDBCommandSequence & execute_async(MariaDBCommand *mariaDBCommand)=0
virtual ~MariaDBClientASyncAPI()
MariaDBClientASyncAPI()=default
virtual ~MariaDBClientSyncAPI()
virtual void execute_sync(MariaDBCommandSync *mariaDBCommand)=0
MariaDBClientSyncAPI()=default
MariaDBClientSyncAPI(const MariaDBClientSyncAPI &)=default
MariaDBClient(const MariaDBConnectionDetails &details, const std::function< void(const MariaDBState &)> &onStateChanged)
void execute_sync(MariaDBCommandSync *mariaDBCommand) final
MariaDBCommandSequence & execute_async(MariaDBCommand *mariaDBCommand) final
std::function< void(const MariaDBState &)> onStateChanged
~MariaDBClient() override
MariaDBConnection * mariaDBConnection
MariaDBConnectionDetails details
void connectionVanished()
MariaDBCommandSequence()=default
MariaDBCommandSequence & operator=(MariaDBCommandSequence &&mariaDBCommandSequence)=default
void execute_sync(MariaDBCommandSync *mariaDBCommand) final
std::deque< MariaDBCommand * > & sequence()
MariaDBCommandSequence & execute_async(MariaDBCommand *mariaDBCommand) final
std::deque< MariaDBCommand * > commandSequence
~MariaDBCommandSequence() override=default
MariaDBCommandSequence(MariaDBCommandSequence &&mariaDBCommandSequence) noexcept=default
MariaDBCommand * nextCommand()
ConcreteConfigSection * addSection(Args &&... args)
SectionTypeT * getSection() const
static std::shared_ptr< CLI::Formatter > sectionFormatter
static CLI::App * newInstance(std::shared_ptr< CLI::App > appWithPtr, const std::string &group, bool final=false)
Timeval(const std::initializer_list< time_t > &initList) noexcept
int main(int argc, char *argv[])
std::shared_ptr< utils::AppWithPtr< T > > Instance(const std::string &name, const std::string &description, T *section)
std::string connectionName