ClickHouse/programs/odbc-bridge/MainHandler.h

44 lines
968 B
C++
Raw Normal View History

#pragma once
#include <Interpreters/Context.h>
#include <Server/HTTP/HTTPRequestHandler.h>
#include <Poco/Logger.h>
namespace DB
{
/** Main handler for requests to ODBC driver
* requires connection_string and columns in request params
* and also query in request body
* response in RowBinary format
*/
class ODBCHandler : public HTTPRequestHandler
{
public:
2021-03-22 11:40:29 +00:00
ODBCHandler(
size_t keep_alive_timeout_,
Context & context_,
2020-04-28 00:56:44 +00:00
const String & mode_)
: log(&Poco::Logger::get("ODBCHandler"))
, keep_alive_timeout(keep_alive_timeout_)
, context(context_)
2020-04-28 00:56:44 +00:00
, mode(mode_)
{
}
void handleRequest(HTTPServerRequest & request, HTTPServerResponse & response) override;
private:
Poco::Logger * log;
size_t keep_alive_timeout;
2020-04-17 14:40:39 +00:00
Context & context;
2020-04-28 00:56:44 +00:00
String mode;
static inline std::mutex mutex;
void processError(HTTPServerResponse & response, const std::string & message);
};
}