#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, int max_request_len); ~Connection(); [[nodiscard]] int Read(); [[nodiscard]] bool Write(const std::vector& vecs); [[nodiscard]] uint64_t Requests() const; private: const int sock_; const std::function& callback_; const std::unordered_set& headers_; firebuf::StreamBuffer buf_; Request request_; uint64_t requests_ = 0; }; } // namespace firecgi