From 5896691b31146458370446f70e136598ad880623 Mon Sep 17 00:00:00 2001 From: Matthieu Gautier Date: Wed, 12 Oct 2022 15:48:56 +0200 Subject: [PATCH] fixup! Introduce a ServerConfiguration object. Move from `ServerConfiguration` to `Server::Configuration`. --- include/server.h | 145 +++++++++++++++++----------------- src/server.cpp | 4 +- src/server/internalServer.cpp | 2 +- src/server/internalServer.h | 4 +- test/server_testing_tools.h | 2 +- 5 files changed, 78 insertions(+), 79 deletions(-) diff --git a/include/server.h b/include/server.h index c9d2dcbc8..1c98d19db 100644 --- a/include/server.h +++ b/include/server.h @@ -29,85 +29,84 @@ namespace kiwix class NameMapper; class InternalServer; - class ServerConfiguration { - public: - ServerConfiguration(Library* library, NameMapper* nameMapper=nullptr) - : mp_library(library), - mp_nameMapper(nameMapper) - {} - - ServerConfiguration& setRoot(const std::string& root); - ServerConfiguration& setAddress(const std::string& addr) { - m_addr = addr; - return *this; - } - - ServerConfiguration& setPort(int port) { - m_port = port; - return *this; - } - - ServerConfiguration& setNbThreads(int threads) { - m_nbThreads = threads; - return *this; - } - - ServerConfiguration& setMultiZimSearchLimit(unsigned int limit) { - m_multizimSearchLimit = limit; - return *this; - } - - ServerConfiguration& setIpConnectionLimit(int limit) { - m_ipConnectionLimit = limit; - return *this; - } - - ServerConfiguration& setVerbose(bool verbose) { - m_verbose = verbose; - return *this; - } - - ServerConfiguration& setIndexTemplateString(const std::string& indexTemplateString) { - m_indexTemplateString = indexTemplateString; - return *this; - } - - ServerConfiguration& setTaskbar(bool withTaskbar, bool withLibraryButton) { - m_withTaskbar = withTaskbar; - m_withLibraryButton = withLibraryButton; - return *this; - } - - ServerConfiguration& setBlockExternalLinks(bool blockExternalLinks) { - m_blockExternalLinks = blockExternalLinks; - return *this; - } - - Library* mp_library; - NameMapper* mp_nameMapper; - std::string m_root = ""; - std::string m_addr = ""; - std::string m_indexTemplateString = ""; - int m_port = 80; - int m_nbThreads = 1; - unsigned int m_multizimSearchLimit = 0; - bool m_verbose = false; - bool m_withTaskbar = true; - bool m_withLibraryButton = true; - bool m_blockExternalLinks = false; - int m_ipConnectionLimit = 0; - }; - - class Server { - public: + public: + class Configuration { + public: + explicit Configuration(Library* library, NameMapper* nameMapper=nullptr) + : mp_library(library), + mp_nameMapper(nameMapper) + {} + + Configuration& setRoot(const std::string& root); + Configuration& setAddress(const std::string& addr) { + m_addr = addr; + return *this; + } + + Configuration& setPort(int port) { + m_port = port; + return *this; + } + + Configuration& setNbThreads(int threads) { + m_nbThreads = threads; + return *this; + } + + Configuration& setMultiZimSearchLimit(unsigned int limit) { + m_multizimSearchLimit = limit; + return *this; + } + + Configuration& setIpConnectionLimit(int limit) { + m_ipConnectionLimit = limit; + return *this; + } + + Configuration& setVerbose(bool verbose) { + m_verbose = verbose; + return *this; + } + + Configuration& setIndexTemplateString(const std::string& indexTemplateString) { + m_indexTemplateString = indexTemplateString; + return *this; + } + + Configuration& setTaskbar(bool withTaskbar, bool withLibraryButton) { + m_withTaskbar = withTaskbar; + m_withLibraryButton = withLibraryButton; + return *this; + } + + Configuration& setBlockExternalLinks(bool blockExternalLinks) { + m_blockExternalLinks = blockExternalLinks; + return *this; + } + + Library* mp_library; + NameMapper* mp_nameMapper; + std::string m_root = ""; + std::string m_addr = ""; + std::string m_indexTemplateString = ""; + int m_port = 80; + int m_nbThreads = 1; + unsigned int m_multizimSearchLimit = 0; + bool m_verbose = false; + bool m_withTaskbar = true; + bool m_withLibraryButton = true; + bool m_blockExternalLinks = false; + int m_ipConnectionLimit = 0; + }; + /** * The default constructor. * * @param library The library to serve. */ - Server(const ServerConfiguration& configuration); + explicit Server(const Configuration& configuration); virtual ~Server(); @@ -125,7 +124,7 @@ namespace kiwix std::string getAddress(); protected: - ServerConfiguration m_configuration; + Configuration m_configuration; std::unique_ptr mp_server; }; } diff --git a/src/server.cpp b/src/server.cpp index fa092edb0..699301ade 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -29,7 +29,7 @@ namespace kiwix { -Server::Server(const ServerConfiguration& configuration) : +Server::Server(const Server::Configuration& configuration) : m_configuration(configuration), mp_server(nullptr) { @@ -49,7 +49,7 @@ void Server::stop() { } } -ServerConfiguration& ServerConfiguration::setRoot(const std::string& root) +Server::Configuration& Server::Configuration::setRoot(const std::string& root) { m_root = root; if (m_root[0] != '/') { diff --git a/src/server/internalServer.cpp b/src/server/internalServer.cpp index 86b208bc5..ecb3722b4 100644 --- a/src/server/internalServer.cpp +++ b/src/server/internalServer.cpp @@ -366,7 +366,7 @@ public: }; -InternalServer::InternalServer(const ServerConfiguration& configuration) : +InternalServer::InternalServer(const Server::Configuration& configuration) : m_configuration(configuration), m_root(normalizeRootUrl(configuration.m_root)), m_indexTemplateString(configuration.m_indexTemplateString.empty() ? RESOURCE::templates::index_html : configuration.m_indexTemplateString), diff --git a/src/server/internalServer.h b/src/server/internalServer.h index 33817c520..9f9acfd1e 100644 --- a/src/server/internalServer.h +++ b/src/server/internalServer.h @@ -93,7 +93,7 @@ class OPDSDumper; class InternalServer { public: - InternalServer(const ServerConfiguration& configuration); + InternalServer(const Server::Configuration& configuration); virtual ~InternalServer(); MHD_Result handlerCallback(struct MHD_Connection* connection, @@ -149,7 +149,7 @@ class InternalServer { typedef ConcurrentCache> SuggestionSearcherCache; private: // data - ServerConfiguration m_configuration; + Server::Configuration m_configuration; std::string m_addr; std::string m_root; std::string m_indexTemplateString; diff --git a/test/server_testing_tools.h b/test/server_testing_tools.h index 77a9da64c..db79d5dae 100644 --- a/test/server_testing_tools.h +++ b/test/server_testing_tools.h @@ -130,7 +130,7 @@ void ZimFileServer::run(int serverPort, std::string indexTemplateString) } else { nameMapper.reset(new kiwix::HumanReadableNameMapper(library, false)); } - kiwix::ServerConfiguration configuration(&library, nameMapper.get()); + kiwix::Server::Configuration configuration(&library, nameMapper.get()); configuration.setRoot("ROOT") .setAddress(address) .setPort(serverPort)