management: Making LocalControlHeader encoding independent of Interest/Data wire
Boost.Asio support multi-buffer send operation, which is enabled in this
commit for prepending (potentially different) LocalControlHeader's to
Interest/Data wire.
Change-Id: I39b979f89f196d3e47d6466fb71f6d440bce74d4
refs: #1265
diff --git a/src/transport/unix-transport.hpp b/src/transport/unix-transport.hpp
index dc85eac..4a89bc8 100644
--- a/src/transport/unix-transport.hpp
+++ b/src/transport/unix-transport.hpp
@@ -1,7 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
+ * Copyright (C) 2013-2014 Regents of the University of California.
* See COPYING for copyright and distribution information.
*/
@@ -11,8 +10,15 @@
#include "../common.hpp"
#include "transport.hpp"
+// forward declaration
+namespace boost { namespace asio { namespace local { class stream_protocol; } } }
+
namespace ndn {
+// forward declaration
+template<class T, class U>
+class StreamTransportImpl;
+
class UnixTransport : public Transport
{
public:
@@ -32,11 +38,15 @@
virtual void
send(const Block& wire);
+ virtual void
+ send(const Block& header, const Block& payload);
+
private:
- std::string unixSocket_;
+ std::string m_unixSocket;
- class Impl;
- ptr_lib::shared_ptr<Impl> impl_;
+ typedef StreamTransportImpl<UnixTransport, boost::asio::local::stream_protocol> Impl;
+ friend class StreamTransportImpl<UnixTransport, boost::asio::local::stream_protocol>;
+ ptr_lib::shared_ptr< Impl > m_impl;
};
}