#pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "OLAPQueryParser.h" #include "OLAPQueryConverter.h" /** Сервер предоставляет три интерфейса: * 1. HTTP - простой интерфейс для доступа из любых приложений. * 2. TCP - интерфейс для доступа из родной библиотеки, родного клиента, и для межсерверного взаимодействия. * Более эффективен, так как * - данные передаются по столбцам; * - данные передаются со сжатием; * Позволяет тонко управлять настройками и получать более подробную информацию в ответах. * 3. OLAP-server HTTP - интерфейс для совместимости с устаревшим демоном OLAP-server. */ namespace DB { class Server : public Daemon { public: /// Глобальные настройки севрера std::unique_ptr global_context; std::unique_ptr olap_parser; std::unique_ptr olap_converter; protected: void initialize(Application& self) { Daemon::initialize(self); logger().information("starting up"); } void uninitialize() { logger().information("shutting down"); Daemon::uninitialize(); } int main(const std::vector& args); }; }