19#include <boost/beast/http/serializer.hpp>
28 if (!parser.is_done())
31 boost::system::error_code ec = {};
36 return parser.is_done();
44 while (!serializer.is_done())
46 size_t totalBytes = 0;
47 boost::system::error_code ec = {};
48 serializer.next(ec, [&]<
typename ConstBufferSequence>(boost::system::error_code
const&, ConstBufferSequence
const& buffers)
50 size_t totalBytesInBuffers = boost::asio::buffer_size(buffers);
52 buffer.reserve(buffer.size() + totalBytes);
54 auto begin = boost::asio::buffers_begin(buffers);
55 auto end = boost::asio::buffers_end(buffers);
57 std::copy(begin, end, std::back_inserter(buffer));
58 totalBytes += totalBytesInBuffers;
61 serializer.consume(totalBytes);
69 response.prepare_payload();
73 if (request.method() != boost::beast::http::verb::head)
80 serializer.split(
true);
84 while (!serializerIsDone(serializer))
88 size_t totalBytes = 0;
89 boost::system::error_code ec = {};
90 serializer.next(ec, [&]<
typename ConstBufferSequence>(boost::system::error_code& currentError, ConstBufferSequence
const& buffers)
92 size_t totalBytesInBuffers = boost::asio::buffer_size(buffers);
95 currentError = boost::beast::http::error::need_more;
99 auto begin = boost::asio::buffers_begin(buffers);
100 auto end = boost::asio::buffers_end(buffers);
104 totalBytes += totalBytesInBuffers;
107 serializer.consume(totalBytes);
109 if (ec == boost::beast::http::error::need_more)
void Resize(size_type bytes)
size_type GetRemainingSpace() const
void ReadCompleted(size_type bytes)
void WriteCompleted(size_type bytes)
size_type GetActiveSize() const
uint8 * GetWritePointer()
size_type GetBufferSize() const
static std::string SerializeRequest(Request const &request)
static MessageBuffer SerializeResponse(Request const &request, Response &response)
static bool ParseRequest(MessageBuffer &packet, RequestParser &parser)
boost::beast::http::request_serializer< ResponseBody > RequestSerializer
boost::beast::http::response< ResponseBody > Response
boost::beast::http::request_parser< RequestBody > RequestParser
boost::beast::http::response_serializer< ResponseBody > ResponseSerializer
boost::beast::http::request< RequestBody > Request