#pragma once #include #include #include #include #include "firebuf/stream_buffer.h" #include "request.h" namespace firecgi { class Connection { public: Connection(int sock, const sockaddr_in6& client_addr, const std::function)>& callback, const std::unordered_set& headers); ~Connection(); [[nodiscard]] int Read(); [[nodiscard]] bool Write(const std::vector& vecs); private: const int sock_; const std::function)>& callback_; const std::unordered_set& headers_; uint64_t requests_ = 0; firebuf::StreamBuffer buf_; std::unique_ptr request_; }; } // namespace firecgi