Remove obsolete serializer allocator (API Change)

This commit is contained in:
Vinnie Falco
2017-06-07 05:10:58 -07:00
parent aa752e4dce
commit 7d89fdc46f
6 changed files with 105 additions and 138 deletions

View File

@@ -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
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------

View File

@@ -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;

View File

@@ -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);

View File

@@ -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

View File

@@ -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);
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------

View File

@@ -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;