#ifndef seafire__protocol__message_hxx_ #define seafire__protocol__message_hxx_ #include #include #include #include #include namespace seafire::protocol { /// Common base class for HTTP messages. /// class message_t { public: message_t(); explicit message_t(version_t); version_t const& version() const; void set_version(version_t); header_collection_t const& headers() const; void set_headers(header_collection_t); void set_header(std::string, std::string); void append_header(std::string, std::string); void erase_header(std::string); private: version_t version_; header_collection_t headers_; }; template bool has(message_t const& m); template bool has_quick(message_t const& m); template std::optional> get(message_t const& m); template std::optional> get(message_t const& m, std::error_code& ec); template void set(message_t& m, Args&&... args); template void set_if_not_set(message_t& m, Args&&... args); template void erase(message_t& m); std::ostream& operator<<(std::ostream& o, message_t const& m); } // namespace seafire::protocol #include #endif