#pragma once #include #include #include namespace DB { /** Работает с готовым Poco::Net::Socket. Операции блокирующие. */ class WriteBufferFromPocoSocket : public BufferWithOwnMemory { protected: Poco::Net::Socket & socket; /** Для сообщений об ошибках. Нужно получать этот адрес заранее, так как, * например, если соединение разорвано, то адрес уже будет получить нельзя * (getpeername вернёт ошибку). */ Poco::Net::SocketAddress peer_address; void nextImpl(); public: WriteBufferFromPocoSocket(Poco::Net::Socket & socket_, size_t buf_size = DBMS_DEFAULT_BUFFER_SIZE); ~WriteBufferFromPocoSocket(); }; }