Make `kiwix::Server` a simple wrapper around `kiwix::InternalServer`.

`kiwix::Server` is now a simple exposition of a public API on top of the
private `InternalServer`.
This commit is contained in:
Matthieu Gautier 2022-10-07 18:03:25 +02:00
parent 1fcc2ad709
commit d1124704f9
2 changed files with 9 additions and 12 deletions

View File

@ -104,7 +104,6 @@ namespace kiwix
* @param library The library to serve.
*/
explicit Server(const Configuration& configuration);
virtual ~Server();
/**
@ -122,11 +121,17 @@ namespace kiwix
*/
bool isRunning();
/**
* Get the port of the server
*/
int getPort();
/**
* Get the ipAddress of the server
*/
std::string getAddress();
protected:
Configuration m_configuration;
std::unique_ptr<InternalServer> mp_server;
};
}

View File

@ -42,29 +42,21 @@ Server::Configuration& Server::Configuration::setRoot(const std::string& root)
}
Server::Server(const Server::Configuration& configuration) :
m_configuration(configuration),
mp_server(nullptr)
mp_server(new InternalServer(configuration))
{
}
Server::~Server() = default;
bool Server::start() {
mp_server.reset(new InternalServer(m_configuration));
return mp_server->start();
}
void Server::stop() {
if (mp_server) {
mp_server->stop();
mp_server.reset(nullptr);
}
mp_server->stop();
}
bool Server::isRunning() {
if (!mp_server) {
return false;
}
return mp_server->isRunning();
}