2012-03-09 03:06:09 +00:00
|
|
|
|
#pragma once
|
|
|
|
|
|
2013-08-10 09:21:09 +00:00
|
|
|
|
#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>
|
2013-08-10 09:21:09 +00:00
|
|
|
|
#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>
|
2012-12-14 13:31:48 +00:00
|
|
|
|
#include "OLAPQueryParser.h"
|
|
|
|
|
#include "OLAPQueryConverter.h"
|
2012-03-09 03:06:09 +00:00
|
|
|
|
|
2012-12-14 11:21:07 +00:00
|
|
|
|
/** Сервер предоставляет три интерфейса:
|
2012-03-09 03:06:09 +00:00
|
|
|
|
* 1. HTTP - простой интерфейс для доступа из любых приложений.
|
|
|
|
|
* 2. TCP - интерфейс для доступа из родной библиотеки, родного клиента, и для межсерверного взаимодействия.
|
|
|
|
|
* Более эффективен, так как
|
|
|
|
|
* - данные передаются по столбцам;
|
|
|
|
|
* - данные передаются со сжатием;
|
|
|
|
|
* Позволяет тонко управлять настройками и получать более подробную информацию в ответах.
|
2012-12-14 11:21:07 +00:00
|
|
|
|
* 3. OLAP-server HTTP - интерфейс для совместимости с устаревшим демоном OLAP-server.
|
2012-03-09 03:06:09 +00:00
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
namespace DB
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
class Server : public Daemon
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
/// Глобальные настройки севрера
|
2014-07-21 11:21:09 +00:00
|
|
|
|
std::unique_ptr<Context> global_context;
|
2012-03-09 03:06:09 +00:00
|
|
|
|
|
2014-07-21 11:21:09 +00:00
|
|
|
|
std::unique_ptr<OLAP::QueryParser> olap_parser;
|
|
|
|
|
std::unique_ptr<OLAP::QueryConverter> olap_converter;
|
2014-02-13 07:17:22 +00:00
|
|
|
|
|
2014-07-21 11:21:09 +00:00
|
|
|
|
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
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
}
|