Use beast message_generator
Beast 331 added the message_generator class, which allows deduplicating
some templated code for the HTTP parser. When we use it, we can drop
our binary size, and ensure that we have code reuse.
This saves 2.2% on the compressed binary size.
Tested: Redfish service validator passes.
Change-Id: I5540d52dc256adfb62507c67ea642a9ea86d27ee
Signed-off-by: Ed Tanous <ed@tanous.net>
diff --git a/http/http_client.hpp b/http/http_client.hpp
index 75304f6..6a20453 100644
--- a/http/http_client.hpp
+++ b/http/http_client.hpp
@@ -29,9 +29,9 @@
#include <boost/asio/ssl/context.hpp>
#include <boost/asio/ssl/error.hpp>
#include <boost/asio/steady_timer.hpp>
-#include <boost/beast/core/flat_buffer.hpp>
#include <boost/beast/core/flat_static_buffer.hpp>
#include <boost/beast/http/message.hpp>
+#include <boost/beast/http/message_generator.hpp>
#include <boost/beast/http/parser.hpp>
#include <boost/beast/http/read.hpp>
#include <boost/beast/http/write.hpp>
@@ -279,19 +279,19 @@
// Set a timeout on the operation
timer.expires_after(std::chrono::seconds(30));
timer.async_wait(std::bind_front(onTimeout, weak_from_this()));
-
+ boost::beast::http::message_generator messageGenerator(std::move(req));
// Send the HTTP request to the remote host
if (sslConn)
{
- boost::beast::http::async_write(
- *sslConn, req,
+ boost::beast::async_write(
+ *sslConn, std::move(messageGenerator),
std::bind_front(&ConnectionInfo::afterWrite, this,
shared_from_this()));
}
else
{
- boost::beast::http::async_write(
- conn, req,
+ boost::beast::async_write(
+ conn, std::move(messageGenerator),
std::bind_front(&ConnectionInfo::afterWrite, this,
shared_from_this()));
}