#pragma once #include #include #include "stream_buffer.h" struct sockaddr_in6; class FastCGIRequest; class FastCGIConn { public: FastCGIConn(int sock, const sockaddr_in6& client_addr, const std::function)>& callback); ~FastCGIConn(); void Serve(); void WriteBlock(uint8_t type, uint16_t request_id, const std::vector& vecs); void WriteOutput(uint16_t request_id, const std::vector& vecs); void WriteEnd(uint16_t request_id); private: const int sock_; std::function)> callback_; StreamBuffer buf_; std::unique_ptr request_; };