ClickHouse/dbms/src/Server/Server.h

68 lines
2.1 KiB
C
Raw Normal View History

2012-03-09 03:06:09 +00:00
#pragma once
#include <Poco/URI.h>
2012-03-09 03:06:09 +00:00
#include <Poco/Util/LayeredConfiguration.h>
#include <Poco/Net/HTTPServer.h>
#include <Poco/Net/HTTPRequestHandlerFactory.h>
#include <Poco/Net/HTTPRequestHandler.h>
#include <Poco/Net/HTTPRequest.h>
#include <Poco/Net/HTTPServerParams.h>
#include <Poco/Net/HTTPServerRequest.h>
#include <Poco/Net/HTTPServerResponse.h>
#include <Poco/Net/HTMLForm.h>
2012-03-09 03:06:09 +00:00
2012-03-09 15:46:52 +00:00
#include <Poco/Net/TCPServer.h>
#include <Poco/Net/TCPServerConnectionFactory.h>
#include <Poco/Net/TCPServerConnection.h>
2015-09-29 19:19:54 +00:00
#include <common/logger_useful.h>
2013-04-28 02:56:13 +00:00
#include <statdaemons/daemon.h>
2014-01-09 19:11:49 +00:00
#include <statdaemons/HTMLForm.h>
2012-03-09 03:06:09 +00:00
#include <DB/Interpreters/Context.h>
#include "OLAPQueryParser.h"
#include "OLAPQueryConverter.h"
2012-03-09 03:06:09 +00:00
/** Сервер предоставляет три интерфейса:
2012-03-09 03:06:09 +00:00
* 1. HTTP - простой интерфейс для доступа из любых приложений.
* 2. TCP - интерфейс для доступа из родной библиотеки, родного клиента, и для межсерверного взаимодействия.
* Более эффективен, так как
* - данные передаются по столбцам;
* - данные передаются со сжатием;
* Позволяет тонко управлять настройками и получать более подробную информацию в ответах.
* 3. OLAP-server HTTP - интерфейс для совместимости с устаревшим демоном OLAP-server.
2012-03-09 03:06:09 +00:00
*/
namespace DB
{
class Server : public Daemon
{
public:
/// Глобальные настройки севрера
std::unique_ptr<Context> global_context;
2012-03-09 03:06:09 +00:00
std::unique_ptr<OLAP::QueryParser> olap_parser;
std::unique_ptr<OLAP::QueryConverter> olap_converter;
protected:
2015-01-22 14:33:29 +00:00
void initialize(Application & self)
2012-03-09 03:06:09 +00:00
{
Daemon::initialize(self);
logger().information("starting up");
}
void uninitialize()
{
logger().information("shutting down");
Daemon::uninitialize();
}
2015-01-22 14:33:29 +00:00
int main(const std::vector<std::string> & args);
2012-03-09 03:06:09 +00:00
};
}