forked from boostorg/beast
Remove obsolete serializer allocator (API Change)
This commit is contained in:
@@ -18,6 +18,7 @@ API Changes:
|
|||||||
* Protect basic_fields special members
|
* Protect basic_fields special members
|
||||||
* Remove message connection settings
|
* Remove message connection settings
|
||||||
* Remove message free functions
|
* Remove message free functions
|
||||||
|
* Remove obsolete serializer allocator
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@@ -16,43 +16,39 @@
|
|||||||
namespace beast {
|
namespace beast {
|
||||||
namespace http {
|
namespace http {
|
||||||
|
|
||||||
template<bool isRequest, class Body, class Fields,
|
template<bool isRequest, class Body,
|
||||||
class ChunkDecorator, class Allocator>
|
class Fields, class ChunkDecorator>
|
||||||
void
|
void
|
||||||
serializer<isRequest, Body, Fields,
|
serializer<isRequest, Body, Fields, ChunkDecorator>::
|
||||||
ChunkDecorator, Allocator>::
|
|
||||||
frdinit(std::true_type)
|
frdinit(std::true_type)
|
||||||
{
|
{
|
||||||
frd_.emplace(m_, m_.version, m_.method());
|
frd_.emplace(m_, m_.version, m_.method());
|
||||||
}
|
}
|
||||||
|
|
||||||
template<bool isRequest, class Body, class Fields,
|
template<bool isRequest, class Body,
|
||||||
class ChunkDecorator, class Allocator>
|
class Fields, class ChunkDecorator>
|
||||||
void
|
void
|
||||||
serializer<isRequest, Body, Fields,
|
serializer<isRequest, Body, Fields, ChunkDecorator>::
|
||||||
ChunkDecorator, Allocator>::
|
|
||||||
frdinit(std::false_type)
|
frdinit(std::false_type)
|
||||||
{
|
{
|
||||||
frd_.emplace(m_, m_.version, m_.result_int());
|
frd_.emplace(m_, m_.version, m_.result_int());
|
||||||
}
|
}
|
||||||
|
|
||||||
template<bool isRequest, class Body, class Fields,
|
template<bool isRequest, class Body,
|
||||||
class ChunkDecorator, class Allocator>
|
class Fields, class ChunkDecorator>
|
||||||
serializer<isRequest, Body, Fields,
|
serializer<isRequest, Body, Fields, ChunkDecorator>::
|
||||||
ChunkDecorator, Allocator>::
|
|
||||||
serializer(message<isRequest, Body, Fields> const& m,
|
serializer(message<isRequest, Body, Fields> const& m,
|
||||||
ChunkDecorator const& d, Allocator const& alloc)
|
ChunkDecorator const& d)
|
||||||
: m_(m)
|
: m_(m)
|
||||||
, d_(d)
|
, d_(d)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
template<bool isRequest, class Body, class Fields,
|
template<bool isRequest, class Body,
|
||||||
class ChunkDecorator, class Allocator>
|
class Fields, class ChunkDecorator>
|
||||||
template<class Visit>
|
template<class Visit>
|
||||||
void
|
void
|
||||||
serializer<isRequest, Body, Fields,
|
serializer<isRequest, Body, Fields, ChunkDecorator>::
|
||||||
ChunkDecorator, Allocator>::
|
|
||||||
get(error_code& ec, Visit&& visit)
|
get(error_code& ec, Visit&& visit)
|
||||||
{
|
{
|
||||||
using boost::asio::buffer_size;
|
using boost::asio::buffer_size;
|
||||||
@@ -258,11 +254,10 @@ get(error_code& ec, Visit&& visit)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
template<bool isRequest, class Body, class Fields,
|
template<bool isRequest, class Body,
|
||||||
class ChunkDecorator, class Allocator>
|
class Fields, class ChunkDecorator>
|
||||||
void
|
void
|
||||||
serializer<isRequest, Body, Fields,
|
serializer<isRequest, Body, Fields, ChunkDecorator>::
|
||||||
ChunkDecorator, Allocator>::
|
|
||||||
consume(std::size_t n)
|
consume(std::size_t n)
|
||||||
{
|
{
|
||||||
using boost::asio::buffer_size;
|
using boost::asio::buffer_size;
|
||||||
|
@@ -27,14 +27,14 @@ namespace beast {
|
|||||||
namespace http {
|
namespace http {
|
||||||
namespace detail {
|
namespace detail {
|
||||||
|
|
||||||
template<class Stream, bool isRequest, class Body,
|
template<class Stream, bool isRequest,
|
||||||
class Fields, class Decorator, class Allocator,
|
class Body, class Fields, class Decorator,
|
||||||
class Handler>
|
class Handler>
|
||||||
class write_some_op
|
class write_some_op
|
||||||
{
|
{
|
||||||
Stream& s_;
|
Stream& s_;
|
||||||
serializer<isRequest, Body, Fields,
|
serializer<isRequest,
|
||||||
Decorator, Allocator>& sr_;
|
Body, Fields, Decorator>& sr_;
|
||||||
Handler h_;
|
Handler h_;
|
||||||
|
|
||||||
class lambda
|
class lambda
|
||||||
@@ -68,7 +68,7 @@ public:
|
|||||||
template<class DeducedHandler>
|
template<class DeducedHandler>
|
||||||
write_some_op(DeducedHandler&& h,
|
write_some_op(DeducedHandler&& h,
|
||||||
Stream& s, serializer<isRequest, Body,
|
Stream& s, serializer<isRequest, Body,
|
||||||
Fields, Decorator, Allocator>& sr)
|
Fields, Decorator>& sr)
|
||||||
: s_(s)
|
: s_(s)
|
||||||
, sr_(sr)
|
, sr_(sr)
|
||||||
, h_(std::forward<DeducedHandler>(h))
|
, h_(std::forward<DeducedHandler>(h))
|
||||||
@@ -118,11 +118,10 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
template<class Stream, bool isRequest,class Body,
|
template<class Stream, bool isRequest,class Body,
|
||||||
class Fields, class Decorator, class Allocator,
|
class Fields, class Decorator, class Handler>
|
||||||
class Handler>
|
|
||||||
void
|
void
|
||||||
write_some_op<Stream, isRequest, Body,
|
write_some_op<Stream, isRequest, Body,
|
||||||
Fields, Decorator, Allocator, Handler>::
|
Fields, Decorator, Handler>::
|
||||||
operator()()
|
operator()()
|
||||||
{
|
{
|
||||||
error_code ec;
|
error_code ec;
|
||||||
@@ -146,11 +145,10 @@ operator()()
|
|||||||
}
|
}
|
||||||
|
|
||||||
template<class Stream, bool isRequest, class Body,
|
template<class Stream, bool isRequest, class Body,
|
||||||
class Fields, class Decorator, class Allocator,
|
class Fields, class Decorator, class Handler>
|
||||||
class Handler>
|
|
||||||
void
|
void
|
||||||
write_some_op<Stream, isRequest, Body,
|
write_some_op<Stream, isRequest, Body,
|
||||||
Fields, Decorator, Allocator, Handler>::
|
Fields, Decorator, Handler>::
|
||||||
operator()(error_code ec, std::size_t bytes_transferred)
|
operator()(error_code ec, std::size_t bytes_transferred)
|
||||||
{
|
{
|
||||||
if(! ec)
|
if(! ec)
|
||||||
@@ -162,11 +160,11 @@ operator()(error_code ec, std::size_t bytes_transferred)
|
|||||||
|
|
||||||
struct serializer_is_header_done
|
struct serializer_is_header_done
|
||||||
{
|
{
|
||||||
template<bool isRequest, class Body, class Fields,
|
template<bool isRequest, class Body,
|
||||||
class Decorator, class Allocator>
|
class Fields, class Decorator>
|
||||||
bool
|
bool
|
||||||
operator()(serializer<isRequest, Body, Fields,
|
operator()(serializer<isRequest, Body,
|
||||||
Decorator, Allocator> const& sr) const
|
Fields, Decorator> const& sr) const
|
||||||
{
|
{
|
||||||
return sr.is_header_done();
|
return sr.is_header_done();
|
||||||
}
|
}
|
||||||
@@ -174,25 +172,25 @@ struct serializer_is_header_done
|
|||||||
|
|
||||||
struct serializer_is_done
|
struct serializer_is_done
|
||||||
{
|
{
|
||||||
template<bool isRequest, class Body, class Fields,
|
template<bool isRequest, class Body,
|
||||||
class Decorator, class Allocator>
|
class Fields, class Decorator>
|
||||||
bool
|
bool
|
||||||
operator()(serializer<isRequest, Body, Fields,
|
operator()(serializer<isRequest, Body,
|
||||||
Decorator, Allocator> const& sr) const
|
Fields, Decorator> const& sr) const
|
||||||
{
|
{
|
||||||
return sr.is_done();
|
return sr.is_done();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template<class Stream, bool isRequest, class Body,
|
template<class Stream, bool isRequest,
|
||||||
class Fields, class Decorator, class Allocator,
|
class Body, class Fields, class Decorator,
|
||||||
class Predicate, class Handler>
|
class Predicate, class Handler>
|
||||||
class write_op
|
class write_op
|
||||||
{
|
{
|
||||||
int state_ = 0;
|
int state_ = 0;
|
||||||
Stream& s_;
|
Stream& s_;
|
||||||
serializer<isRequest, Body, Fields,
|
serializer<isRequest,
|
||||||
Decorator, Allocator>& sr_;
|
Body, Fields, Decorator>& sr_;
|
||||||
Handler h_;
|
Handler h_;
|
||||||
|
|
||||||
class lambda
|
class lambda
|
||||||
@@ -226,7 +224,7 @@ public:
|
|||||||
template<class DeducedHandler>
|
template<class DeducedHandler>
|
||||||
write_op(DeducedHandler&& h, Stream& s,
|
write_op(DeducedHandler&& h, Stream& s,
|
||||||
serializer<isRequest, Body, Fields,
|
serializer<isRequest, Body, Fields,
|
||||||
Decorator, Allocator>& sr)
|
Decorator>& sr)
|
||||||
: s_(s)
|
: s_(s)
|
||||||
, sr_(sr)
|
, sr_(sr)
|
||||||
, h_(std::forward<DeducedHandler>(h))
|
, h_(std::forward<DeducedHandler>(h))
|
||||||
@@ -275,11 +273,11 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
template<class Stream, bool isRequest, class Body,
|
template<class Stream, bool isRequest, class Body,
|
||||||
class Fields, class Decorator, class Allocator,
|
class Fields, class Decorator, class Predicate,
|
||||||
class Predicate, class Handler>
|
class Handler>
|
||||||
void
|
void
|
||||||
write_op<Stream, isRequest, Body, Fields,
|
write_op<Stream, isRequest, Body, Fields,
|
||||||
Decorator, Allocator, Predicate, Handler>::
|
Decorator, Predicate, Handler>::
|
||||||
operator()(error_code ec,
|
operator()(error_code ec,
|
||||||
std::size_t bytes_transferred)
|
std::size_t bytes_transferred)
|
||||||
{
|
{
|
||||||
@@ -354,14 +352,13 @@ class write_msg_op
|
|||||||
struct data
|
struct data
|
||||||
{
|
{
|
||||||
Stream& s;
|
Stream& s;
|
||||||
serializer<isRequest, Body, Fields,
|
serializer<isRequest,
|
||||||
no_chunk_decorator, handler_alloc<char, Handler>> sr;
|
Body, Fields, no_chunk_decorator> sr;
|
||||||
|
|
||||||
data(Handler& h, Stream& s_, message<
|
data(Handler& h, Stream& s_, message<
|
||||||
isRequest, Body, Fields> const& m_)
|
isRequest, Body, Fields> const& m_)
|
||||||
: s(s_)
|
: s(s_)
|
||||||
, sr(m_, no_chunk_decorator{},
|
, sr(m_, no_chunk_decorator{})
|
||||||
handler_alloc<char, Handler>{h})
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -503,11 +500,10 @@ public:
|
|||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
template<class SyncWriteStream, bool isRequest,
|
template<class SyncWriteStream, bool isRequest,
|
||||||
class Body, class Fields, class Decorator,
|
class Body, class Fields, class Decorator>
|
||||||
class Allocator>
|
|
||||||
void
|
void
|
||||||
write_some(SyncWriteStream& stream, serializer<
|
write_some(SyncWriteStream& stream, serializer<
|
||||||
isRequest, Body, Fields, Decorator, Allocator>& sr)
|
isRequest, Body, Fields, Decorator>& sr)
|
||||||
{
|
{
|
||||||
static_assert(is_sync_write_stream<SyncWriteStream>::value,
|
static_assert(is_sync_write_stream<SyncWriteStream>::value,
|
||||||
"SyncWriteStream requirements not met");
|
"SyncWriteStream requirements not met");
|
||||||
@@ -521,13 +517,12 @@ write_some(SyncWriteStream& stream, serializer<
|
|||||||
BOOST_THROW_EXCEPTION(system_error{ec});
|
BOOST_THROW_EXCEPTION(system_error{ec});
|
||||||
}
|
}
|
||||||
|
|
||||||
template<
|
template<class SyncWriteStream,
|
||||||
class SyncWriteStream,
|
|
||||||
bool isRequest, class Body, class Fields,
|
bool isRequest, class Body, class Fields,
|
||||||
class Decorator, class Allocator>
|
class Decorator>
|
||||||
void
|
void
|
||||||
write_some(SyncWriteStream& stream, serializer<
|
write_some(SyncWriteStream& stream, serializer<
|
||||||
isRequest, Body, Fields, Decorator, Allocator>& sr,
|
isRequest, Body, Fields, Decorator>& sr,
|
||||||
error_code& ec)
|
error_code& ec)
|
||||||
{
|
{
|
||||||
static_assert(is_sync_write_stream<SyncWriteStream>::value,
|
static_assert(is_sync_write_stream<SyncWriteStream>::value,
|
||||||
@@ -549,10 +544,10 @@ write_some(SyncWriteStream& stream, serializer<
|
|||||||
|
|
||||||
template<class AsyncWriteStream,
|
template<class AsyncWriteStream,
|
||||||
bool isRequest, class Body, class Fields,
|
bool isRequest, class Body, class Fields,
|
||||||
class Decorator, class Allocator, class WriteHandler>
|
class Decorator, class WriteHandler>
|
||||||
async_return_type<WriteHandler, void(error_code)>
|
async_return_type<WriteHandler, void(error_code)>
|
||||||
async_write_some(AsyncWriteStream& stream, serializer<
|
async_write_some(AsyncWriteStream& stream, serializer<
|
||||||
isRequest, Body, Fields, Decorator, Allocator>& sr,
|
isRequest, Body, Fields, Decorator>& sr,
|
||||||
WriteHandler&& handler)
|
WriteHandler&& handler)
|
||||||
{
|
{
|
||||||
static_assert(is_async_write_stream<
|
static_assert(is_async_write_stream<
|
||||||
@@ -565,7 +560,7 @@ async_write_some(AsyncWriteStream& stream, serializer<
|
|||||||
async_completion<WriteHandler,
|
async_completion<WriteHandler,
|
||||||
void(error_code)> init{handler};
|
void(error_code)> init{handler};
|
||||||
detail::write_some_op<AsyncWriteStream, isRequest,
|
detail::write_some_op<AsyncWriteStream, isRequest,
|
||||||
Body, Fields, Decorator, Allocator, handler_type<
|
Body, Fields, Decorator, handler_type<
|
||||||
WriteHandler, void(error_code)>>{
|
WriteHandler, void(error_code)>>{
|
||||||
init.completion_handler, stream, sr}();
|
init.completion_handler, stream, sr}();
|
||||||
return init.result.get();
|
return init.result.get();
|
||||||
@@ -573,13 +568,12 @@ async_write_some(AsyncWriteStream& stream, serializer<
|
|||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
template<
|
template<class SyncWriteStream,
|
||||||
class SyncWriteStream,
|
|
||||||
bool isRequest, class Body, class Fields,
|
bool isRequest, class Body, class Fields,
|
||||||
class Decorator, class Allocator>
|
class Decorator>
|
||||||
void
|
void
|
||||||
write_header(SyncWriteStream& stream, serializer<
|
write_header(SyncWriteStream& stream, serializer<
|
||||||
isRequest, Body, Fields, Decorator, Allocator>& sr)
|
isRequest, Body, Fields, Decorator>& sr)
|
||||||
{
|
{
|
||||||
static_assert(is_sync_write_stream<SyncWriteStream>::value,
|
static_assert(is_sync_write_stream<SyncWriteStream>::value,
|
||||||
"SyncWriteStream requirements not met");
|
"SyncWriteStream requirements not met");
|
||||||
@@ -593,13 +587,12 @@ write_header(SyncWriteStream& stream, serializer<
|
|||||||
BOOST_THROW_EXCEPTION(system_error{ec});
|
BOOST_THROW_EXCEPTION(system_error{ec});
|
||||||
}
|
}
|
||||||
|
|
||||||
template<
|
template<class SyncWriteStream,
|
||||||
class SyncWriteStream,
|
|
||||||
bool isRequest, class Body, class Fields,
|
bool isRequest, class Body, class Fields,
|
||||||
class Decorator, class Allocator>
|
class Decorator>
|
||||||
void
|
void
|
||||||
write_header(SyncWriteStream& stream, serializer<
|
write_header(SyncWriteStream& stream, serializer<
|
||||||
isRequest, Body, Fields, Decorator, Allocator>& sr,
|
isRequest, Body, Fields, Decorator>& sr,
|
||||||
error_code& ec)
|
error_code& ec)
|
||||||
{
|
{
|
||||||
static_assert(is_sync_write_stream<SyncWriteStream>::value,
|
static_assert(is_sync_write_stream<SyncWriteStream>::value,
|
||||||
@@ -622,10 +615,10 @@ write_header(SyncWriteStream& stream, serializer<
|
|||||||
|
|
||||||
template<class AsyncWriteStream,
|
template<class AsyncWriteStream,
|
||||||
bool isRequest, class Body, class Fields,
|
bool isRequest, class Body, class Fields,
|
||||||
class Decorator, class Allocator, class WriteHandler>
|
class Decorator, class WriteHandler>
|
||||||
async_return_type<WriteHandler, void(error_code)>
|
async_return_type<WriteHandler, void(error_code)>
|
||||||
async_write_header(AsyncWriteStream& stream, serializer<
|
async_write_header(AsyncWriteStream& stream, serializer<
|
||||||
isRequest, Body, Fields, Decorator, Allocator>& sr,
|
isRequest, Body, Fields, Decorator>& sr,
|
||||||
WriteHandler&& handler)
|
WriteHandler&& handler)
|
||||||
{
|
{
|
||||||
static_assert(is_async_write_stream<
|
static_assert(is_async_write_stream<
|
||||||
@@ -639,7 +632,7 @@ async_write_header(AsyncWriteStream& stream, serializer<
|
|||||||
async_completion<WriteHandler,
|
async_completion<WriteHandler,
|
||||||
void(error_code)> init{handler};
|
void(error_code)> init{handler};
|
||||||
detail::write_op<AsyncWriteStream, isRequest, Body, Fields,
|
detail::write_op<AsyncWriteStream, isRequest, Body, Fields,
|
||||||
Decorator, Allocator, detail::serializer_is_header_done,
|
Decorator, detail::serializer_is_header_done,
|
||||||
handler_type<WriteHandler, void(error_code)>>{
|
handler_type<WriteHandler, void(error_code)>>{
|
||||||
init.completion_handler, stream, sr}(
|
init.completion_handler, stream, sr}(
|
||||||
error_code{}, 0);
|
error_code{}, 0);
|
||||||
@@ -648,13 +641,12 @@ async_write_header(AsyncWriteStream& stream, serializer<
|
|||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
template<
|
template<class SyncWriteStream,
|
||||||
class SyncWriteStream,
|
|
||||||
bool isRequest, class Body, class Fields,
|
bool isRequest, class Body, class Fields,
|
||||||
class Decorator, class Allocator>
|
class Decorator>
|
||||||
void
|
void
|
||||||
write(SyncWriteStream& stream, serializer<
|
write(SyncWriteStream& stream, serializer<
|
||||||
isRequest, Body, Fields, Decorator, Allocator>& sr)
|
isRequest, Body, Fields, Decorator>& sr)
|
||||||
{
|
{
|
||||||
static_assert(is_sync_write_stream<SyncWriteStream>::value,
|
static_assert(is_sync_write_stream<SyncWriteStream>::value,
|
||||||
"SyncWriteStream requirements not met");
|
"SyncWriteStream requirements not met");
|
||||||
@@ -664,13 +656,12 @@ write(SyncWriteStream& stream, serializer<
|
|||||||
BOOST_THROW_EXCEPTION(system_error{ec});
|
BOOST_THROW_EXCEPTION(system_error{ec});
|
||||||
}
|
}
|
||||||
|
|
||||||
template<
|
template<class SyncWriteStream,
|
||||||
class SyncWriteStream,
|
|
||||||
bool isRequest, class Body, class Fields,
|
bool isRequest, class Body, class Fields,
|
||||||
class Decorator, class Allocator>
|
class Decorator>
|
||||||
void
|
void
|
||||||
write(SyncWriteStream& stream, serializer<
|
write(SyncWriteStream& stream, serializer<
|
||||||
isRequest, Body, Fields, Decorator, Allocator>& sr,
|
isRequest, Body, Fields, Decorator>& sr,
|
||||||
error_code& ec)
|
error_code& ec)
|
||||||
{
|
{
|
||||||
static_assert(is_sync_write_stream<SyncWriteStream>::value,
|
static_assert(is_sync_write_stream<SyncWriteStream>::value,
|
||||||
@@ -691,10 +682,10 @@ write(SyncWriteStream& stream, serializer<
|
|||||||
|
|
||||||
template<class AsyncWriteStream,
|
template<class AsyncWriteStream,
|
||||||
bool isRequest, class Body, class Fields,
|
bool isRequest, class Body, class Fields,
|
||||||
class Decorator, class Allocator, class WriteHandler>
|
class Decorator, class WriteHandler>
|
||||||
async_return_type<WriteHandler, void(error_code)>
|
async_return_type<WriteHandler, void(error_code)>
|
||||||
async_write(AsyncWriteStream& stream, serializer<
|
async_write(AsyncWriteStream& stream, serializer<
|
||||||
isRequest, Body, Fields, Decorator, Allocator>& sr,
|
isRequest, Body, Fields, Decorator>& sr,
|
||||||
WriteHandler&& handler)
|
WriteHandler&& handler)
|
||||||
{
|
{
|
||||||
static_assert(is_async_write_stream<
|
static_assert(is_async_write_stream<
|
||||||
@@ -708,7 +699,7 @@ async_write(AsyncWriteStream& stream, serializer<
|
|||||||
async_completion<WriteHandler,
|
async_completion<WriteHandler,
|
||||||
void(error_code)> init{handler};
|
void(error_code)> init{handler};
|
||||||
detail::write_op<AsyncWriteStream, isRequest, Body,
|
detail::write_op<AsyncWriteStream, isRequest, Body,
|
||||||
Fields, Decorator, Allocator, detail::serializer_is_done,
|
Fields, Decorator, detail::serializer_is_done,
|
||||||
handler_type<WriteHandler, void(error_code)>>{
|
handler_type<WriteHandler, void(error_code)>>{
|
||||||
init.completion_handler, stream, sr}(
|
init.completion_handler, stream, sr}(
|
||||||
error_code{}, 0);
|
error_code{}, 0);
|
||||||
|
@@ -9,7 +9,6 @@
|
|||||||
#define BEAST_HTTP_SERIALIZER_HPP
|
#define BEAST_HTTP_SERIALIZER_HPP
|
||||||
|
|
||||||
#include <beast/config.hpp>
|
#include <beast/config.hpp>
|
||||||
#include <beast/core/async_result.hpp>
|
|
||||||
#include <beast/core/buffer_cat.hpp>
|
#include <beast/core/buffer_cat.hpp>
|
||||||
#include <beast/core/consuming_buffers.hpp>
|
#include <beast/core/consuming_buffers.hpp>
|
||||||
#include <beast/core/string_view.hpp>
|
#include <beast/core/string_view.hpp>
|
||||||
@@ -19,7 +18,6 @@
|
|||||||
#include <boost/asio/buffer.hpp>
|
#include <boost/asio/buffer.hpp>
|
||||||
#include <boost/optional.hpp>
|
#include <boost/optional.hpp>
|
||||||
#include <boost/variant.hpp>
|
#include <boost/variant.hpp>
|
||||||
#include <memory>
|
|
||||||
|
|
||||||
namespace beast {
|
namespace beast {
|
||||||
namespace http {
|
namespace http {
|
||||||
@@ -117,15 +115,11 @@ struct no_chunk_decorator
|
|||||||
|
|
||||||
@tparam ChunkDecorator The type of chunk decorator to use.
|
@tparam ChunkDecorator The type of chunk decorator to use.
|
||||||
|
|
||||||
@tparam Allocator The type of allocator to use.
|
|
||||||
|
|
||||||
@see @ref make_serializer
|
@see @ref make_serializer
|
||||||
*/
|
*/
|
||||||
template<
|
template<
|
||||||
bool isRequest, class Body, class Fields,
|
bool isRequest, class Body, class Fields,
|
||||||
class ChunkDecorator = no_chunk_decorator,
|
class ChunkDecorator = no_chunk_decorator>
|
||||||
class Allocator = std::allocator<char>
|
|
||||||
>
|
|
||||||
class serializer
|
class serializer
|
||||||
{
|
{
|
||||||
static_assert(is_body<Body>::value,
|
static_assert(is_body<Body>::value,
|
||||||
@@ -194,7 +188,6 @@ class serializer
|
|||||||
|
|
||||||
message<isRequest, Body, Fields> const& m_;
|
message<isRequest, Body, Fields> const& m_;
|
||||||
boost::optional<typename Fields::reader> frd_;
|
boost::optional<typename Fields::reader> frd_;
|
||||||
ChunkDecorator d_;
|
|
||||||
boost::optional<reader> rd_;
|
boost::optional<reader> rd_;
|
||||||
boost::variant<boost::blank,
|
boost::variant<boost::blank,
|
||||||
ch_t, cb0_t, cb1_t, ch0_t, ch1_t, ch2_t> v_;
|
ch_t, cb0_t, cb1_t, ch0_t, ch1_t, ch2_t> v_;
|
||||||
@@ -204,6 +197,7 @@ class serializer
|
|||||||
bool chunked_;
|
bool chunked_;
|
||||||
bool close_;
|
bool close_;
|
||||||
bool more_;
|
bool more_;
|
||||||
|
ChunkDecorator d_;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/** Constructor
|
/** Constructor
|
||||||
@@ -217,13 +211,10 @@ public:
|
|||||||
for the lifetime of the serializer.
|
for the lifetime of the serializer.
|
||||||
|
|
||||||
@param decorator An optional decorator to use.
|
@param decorator An optional decorator to use.
|
||||||
|
|
||||||
@param alloc An optional allocator to use.
|
|
||||||
*/
|
*/
|
||||||
explicit
|
explicit
|
||||||
serializer(message<isRequest, Body, Fields> const& msg,
|
serializer(message<isRequest, Body, Fields> const& msg,
|
||||||
ChunkDecorator const& decorator = ChunkDecorator{},
|
ChunkDecorator const& decorator = ChunkDecorator{});
|
||||||
Allocator const& alloc = Allocator{});
|
|
||||||
|
|
||||||
/** Returns `true` if we will pause after writing the complete header.
|
/** Returns `true` if we will pause after writing the complete header.
|
||||||
*/
|
*/
|
||||||
@@ -340,20 +331,16 @@ public:
|
|||||||
*/
|
*/
|
||||||
template<
|
template<
|
||||||
bool isRequest, class Body, class Fields,
|
bool isRequest, class Body, class Fields,
|
||||||
class ChunkDecorator = no_chunk_decorator,
|
class ChunkDecorator = no_chunk_decorator>
|
||||||
class Allocator = std::allocator<char>>
|
|
||||||
inline
|
inline
|
||||||
serializer<isRequest, Body, Fields,
|
serializer<isRequest, Body, Fields,
|
||||||
typename std::decay<ChunkDecorator>::type,
|
typename std::decay<ChunkDecorator>::type>
|
||||||
typename std::decay<Allocator>::type>
|
|
||||||
make_serializer(message<isRequest, Body, Fields> const& m,
|
make_serializer(message<isRequest, Body, Fields> const& m,
|
||||||
ChunkDecorator const& decorator = ChunkDecorator{},
|
ChunkDecorator const& decorator = ChunkDecorator{})
|
||||||
Allocator const& allocator = Allocator{})
|
|
||||||
{
|
{
|
||||||
return serializer<isRequest, Body, Fields,
|
return serializer<isRequest, Body, Fields,
|
||||||
typename std::decay<ChunkDecorator>::type,
|
typename std::decay<ChunkDecorator>::type>{
|
||||||
typename std::decay<Allocator>::type>{
|
m, decorator};
|
||||||
m, decorator, allocator};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // http
|
} // http
|
||||||
|
@@ -58,12 +58,11 @@ namespace http {
|
|||||||
|
|
||||||
@see serializer
|
@see serializer
|
||||||
*/
|
*/
|
||||||
template<class SyncWriteStream,
|
template<class SyncWriteStream, bool isRequest,
|
||||||
bool isRequest, class Body, class Fields,
|
class Body, class Fields, class Decorator>
|
||||||
class Decorator, class Allocator>
|
|
||||||
void
|
void
|
||||||
write_some(SyncWriteStream& stream, serializer<
|
write_some(SyncWriteStream& stream, serializer<
|
||||||
isRequest, Body, Fields, Decorator, Allocator>& sr);
|
isRequest, Body, Fields, Decorator>& sr);
|
||||||
|
|
||||||
/** Write part of a message to a stream using a serializer.
|
/** Write part of a message to a stream using a serializer.
|
||||||
|
|
||||||
@@ -95,12 +94,11 @@ write_some(SyncWriteStream& stream, serializer<
|
|||||||
|
|
||||||
@see @ref async_write_some, @ref serializer
|
@see @ref async_write_some, @ref serializer
|
||||||
*/
|
*/
|
||||||
template<class SyncWriteStream,
|
template<class SyncWriteStream, bool isRequest,
|
||||||
bool isRequest, class Body, class Fields,
|
class Body, class Fields, class Decorator>
|
||||||
class Decorator, class Allocator>
|
|
||||||
void
|
void
|
||||||
write_some(SyncWriteStream& stream, serializer<
|
write_some(SyncWriteStream& stream, serializer<
|
||||||
isRequest, Body, Fields, Decorator, Allocator>& sr,
|
isRequest, Body, Fields, Decorator>& sr,
|
||||||
error_code& ec);
|
error_code& ec);
|
||||||
|
|
||||||
/** Write part of a message to a stream asynchronously using a serializer.
|
/** Write part of a message to a stream asynchronously using a serializer.
|
||||||
@@ -149,14 +147,14 @@ write_some(SyncWriteStream& stream, serializer<
|
|||||||
*/
|
*/
|
||||||
template<class AsyncWriteStream,
|
template<class AsyncWriteStream,
|
||||||
bool isRequest, class Body, class Fields,
|
bool isRequest, class Body, class Fields,
|
||||||
class Decorator, class Allocator, class WriteHandler>
|
class Decorator, class WriteHandler>
|
||||||
#if BEAST_DOXYGEN
|
#if BEAST_DOXYGEN
|
||||||
void_or_deduced
|
void_or_deduced
|
||||||
#else
|
#else
|
||||||
async_return_type<WriteHandler, void(error_code)>
|
async_return_type<WriteHandler, void(error_code)>
|
||||||
#endif
|
#endif
|
||||||
async_write_some(AsyncWriteStream& stream, serializer<
|
async_write_some(AsyncWriteStream& stream, serializer<
|
||||||
isRequest, Body, Fields, Decorator, Allocator>& sr,
|
isRequest, Body, Fields, Decorator>& sr,
|
||||||
WriteHandler&& handler);
|
WriteHandler&& handler);
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
@@ -186,12 +184,11 @@ async_write_some(AsyncWriteStream& stream, serializer<
|
|||||||
|
|
||||||
@see @ref serializer
|
@see @ref serializer
|
||||||
*/
|
*/
|
||||||
template<class SyncWriteStream,
|
template<class SyncWriteStream, bool isRequest,
|
||||||
bool isRequest, class Body, class Fields,
|
class Body, class Fields, class Decorator>
|
||||||
class Decorator, class Allocator>
|
|
||||||
void
|
void
|
||||||
write_header(SyncWriteStream& stream, serializer<
|
write_header(SyncWriteStream& stream, serializer<
|
||||||
isRequest, Body, Fields, Decorator, Allocator>& sr);
|
isRequest, Body, Fields, Decorator>& sr);
|
||||||
|
|
||||||
/** Write a header to a stream using a serializer.
|
/** Write a header to a stream using a serializer.
|
||||||
|
|
||||||
@@ -218,12 +215,11 @@ write_header(SyncWriteStream& stream, serializer<
|
|||||||
|
|
||||||
@see @ref serializer
|
@see @ref serializer
|
||||||
*/
|
*/
|
||||||
template<class SyncWriteStream,
|
template<class SyncWriteStream, bool isRequest,
|
||||||
bool isRequest, class Body, class Fields,
|
class Body, class Fields, class Decorator>
|
||||||
class Decorator, class Allocator>
|
|
||||||
void
|
void
|
||||||
write_header(SyncWriteStream& stream, serializer<
|
write_header(SyncWriteStream& stream, serializer<
|
||||||
isRequest, Body, Fields, Decorator, Allocator>& sr,
|
isRequest, Body, Fields, Decorator>& sr,
|
||||||
error_code& ec);
|
error_code& ec);
|
||||||
|
|
||||||
/** Write a header to a stream asynchronously using a serializer.
|
/** Write a header to a stream asynchronously using a serializer.
|
||||||
@@ -267,14 +263,14 @@ write_header(SyncWriteStream& stream, serializer<
|
|||||||
*/
|
*/
|
||||||
template<class AsyncWriteStream,
|
template<class AsyncWriteStream,
|
||||||
bool isRequest, class Body, class Fields,
|
bool isRequest, class Body, class Fields,
|
||||||
class Decorator, class Allocator, class WriteHandler>
|
class Decorator, class WriteHandler>
|
||||||
#if BEAST_DOXYGEN
|
#if BEAST_DOXYGEN
|
||||||
void_or_deduced
|
void_or_deduced
|
||||||
#else
|
#else
|
||||||
async_return_type<WriteHandler, void(error_code)>
|
async_return_type<WriteHandler, void(error_code)>
|
||||||
#endif
|
#endif
|
||||||
async_write_header(AsyncWriteStream& stream, serializer<
|
async_write_header(AsyncWriteStream& stream, serializer<
|
||||||
isRequest, Body, Fields, Decorator, Allocator>& sr,
|
isRequest, Body, Fields, Decorator>& sr,
|
||||||
WriteHandler&& handler);
|
WriteHandler&& handler);
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
@@ -301,12 +297,11 @@ async_write_header(AsyncWriteStream& stream, serializer<
|
|||||||
|
|
||||||
@see @ref serializer
|
@see @ref serializer
|
||||||
*/
|
*/
|
||||||
template<class SyncWriteStream,
|
template<class SyncWriteStream, bool isRequest,
|
||||||
bool isRequest, class Body, class Fields,
|
class Body, class Fields, class Decorator>
|
||||||
class Decorator, class Allocator>
|
|
||||||
void
|
void
|
||||||
write(SyncWriteStream& stream, serializer<
|
write(SyncWriteStream& stream, serializer<
|
||||||
isRequest, Body, Fields, Decorator, Allocator>& sr);
|
isRequest, Body, Fields, Decorator>& sr);
|
||||||
|
|
||||||
/** Write a complete message to a stream using a serializer.
|
/** Write a complete message to a stream using a serializer.
|
||||||
|
|
||||||
@@ -330,12 +325,11 @@ write(SyncWriteStream& stream, serializer<
|
|||||||
|
|
||||||
@see @ref serializer
|
@see @ref serializer
|
||||||
*/
|
*/
|
||||||
template<class SyncWriteStream,
|
template<class SyncWriteStream, bool isRequest,
|
||||||
bool isRequest, class Body, class Fields,
|
class Body, class Fields, class Decorator>
|
||||||
class Decorator, class Allocator>
|
|
||||||
void
|
void
|
||||||
write(SyncWriteStream& stream, serializer<
|
write(SyncWriteStream& stream, serializer<
|
||||||
isRequest, Body, Fields, Decorator, Allocator>& sr,
|
isRequest, Body, Fields, Decorator>& sr,
|
||||||
error_code& ec);
|
error_code& ec);
|
||||||
|
|
||||||
/** Write a complete message to a stream asynchronously using a serializer.
|
/** Write a complete message to a stream asynchronously using a serializer.
|
||||||
@@ -376,14 +370,14 @@ write(SyncWriteStream& stream, serializer<
|
|||||||
*/
|
*/
|
||||||
template<class AsyncWriteStream,
|
template<class AsyncWriteStream,
|
||||||
bool isRequest, class Body, class Fields,
|
bool isRequest, class Body, class Fields,
|
||||||
class Decorator, class Allocator, class WriteHandler>
|
class Decorator, class WriteHandler>
|
||||||
#if BEAST_DOXYGEN
|
#if BEAST_DOXYGEN
|
||||||
void_or_deduced
|
void_or_deduced
|
||||||
#else
|
#else
|
||||||
async_return_type<WriteHandler, void(error_code)>
|
async_return_type<WriteHandler, void(error_code)>
|
||||||
#endif
|
#endif
|
||||||
async_write(AsyncWriteStream& stream, serializer<
|
async_write(AsyncWriteStream& stream, serializer<
|
||||||
isRequest, Body, Fields, Decorator, Allocator>& sr,
|
isRequest, Body, Fields, Decorator>& sr,
|
||||||
WriteHandler&& handler);
|
WriteHandler&& handler);
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
@@ -342,8 +342,7 @@ template<
|
|||||||
bool isRequest,
|
bool isRequest,
|
||||||
class Body,
|
class Body,
|
||||||
class Fields,
|
class Fields,
|
||||||
class ChunkDecorator = no_chunk_decorator,
|
class ChunkDecorator = no_chunk_decorator
|
||||||
class Allocator = std::allocator<char>
|
|
||||||
>
|
>
|
||||||
class serializer;
|
class serializer;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user