90 lines
1.4 KiB
C++
90 lines
1.4 KiB
C++
#include <seafire/protocol/message.hxx>
|
|
|
|
namespace seafire::protocol
|
|
{
|
|
|
|
/// Construct a new message.
|
|
///
|
|
message_t::
|
|
message_t() = default;
|
|
|
|
/// Construct a new message.
|
|
///
|
|
message_t::
|
|
message_t(version_t version)
|
|
: version_{version}
|
|
{}
|
|
|
|
/// Get the message version.
|
|
///
|
|
version_t const&
|
|
message_t::
|
|
version() const
|
|
{
|
|
return version_;
|
|
}
|
|
|
|
/// Set the message version.
|
|
///
|
|
void
|
|
message_t::
|
|
set_version(version_t v)
|
|
{
|
|
version_ = std::move(v);
|
|
}
|
|
|
|
/// Access the message headers.
|
|
///
|
|
header_collection_t const&
|
|
message_t::
|
|
headers() const
|
|
{
|
|
return headers_;
|
|
}
|
|
|
|
/// Set/replace message header.
|
|
///
|
|
void
|
|
message_t::
|
|
set_header(std::string name, std::string value)
|
|
{
|
|
headers_.set(std::move(name), std::move(value));
|
|
}
|
|
|
|
/// Append message header.
|
|
///
|
|
void
|
|
message_t::
|
|
append_header(std::string name, std::string value)
|
|
{
|
|
headers_.append(std::move(name), std::move(value));
|
|
}
|
|
|
|
/// Erase message header.
|
|
///
|
|
void
|
|
message_t::
|
|
erase_header(std::string name)
|
|
{
|
|
headers_.erase(name);
|
|
}
|
|
|
|
/// Set/replace message headers.
|
|
///
|
|
void
|
|
message_t::
|
|
set_headers(header_collection_t headers)
|
|
{
|
|
headers_ = std::move(headers);
|
|
}
|
|
|
|
/// Write headers to output stream.
|
|
///
|
|
std::ostream&
|
|
operator<<(std::ostream& o, message_t const& m)
|
|
{
|
|
return o << m.headers();
|
|
}
|
|
|
|
} // namespace seafire::protocol
|