transport: Serialize socket write operations
Change-Id: Ieccaf0ccbd6ee8bd08b1eee77d781edd47b2cbb2
Refs: #1769, #1775
diff --git a/src/encoding/block.cpp b/src/encoding/block.cpp
index ed265b0..eeb0c3f 100644
--- a/src/encoding/block.cpp
+++ b/src/encoding/block.cpp
@@ -31,6 +31,7 @@
#include "buffer-stream.hpp"
#include <boost/lexical_cast.hpp>
+#include <boost/asio/buffer.hpp>
namespace ndn {
@@ -397,4 +398,10 @@
boost::lexical_cast<std::string>(type) + "] from Block");
}
+Block::operator boost::asio::const_buffer() const
+{
+ return boost::asio::const_buffer(wire(), size());
+}
+
+
} // namespace ndn
diff --git a/src/encoding/block.hpp b/src/encoding/block.hpp
index c91d12c..17192d8 100644
--- a/src/encoding/block.hpp
+++ b/src/encoding/block.hpp
@@ -29,6 +29,12 @@
#include "buffer.hpp"
#include "tlv.hpp"
+namespace boost {
+namespace asio {
+class const_buffer;
+} // namespace asio
+} // namespace boost
+
namespace ndn {
template<bool> class EncodingImpl;
@@ -281,6 +287,9 @@
bool
operator!=(const Block& other) const;
+public: // ConvertibleToConstBuffer
+ operator boost::asio::const_buffer() const;
+
protected:
ConstBufferPtr m_buffer;