summaryrefslogtreecommitdiff
path: root/modules/io_codec/c++
diff options
context:
space:
mode:
Diffstat (limited to 'modules/io_codec/c++')
-rw-r--r--modules/io_codec/c++/io_peer.hpp18
-rw-r--r--modules/io_codec/c++/io_peer.tmpl.hpp29
2 files changed, 24 insertions, 23 deletions
diff --git a/modules/io_codec/c++/io_peer.hpp b/modules/io_codec/c++/io_peer.hpp
index 0cb3959..d29c7b8 100644
--- a/modules/io_codec/c++/io_peer.hpp
+++ b/modules/io_codec/c++/io_peer.hpp
@@ -10,6 +10,7 @@ namespace saw {
template <typename Incoming, typename Outgoing,
typename TransportEncoding, typename ContentEncoding,
+ typename Net = net::Os,
typename BufferT = ring_buffer>
class streaming_io_peer {
private:
@@ -20,14 +21,14 @@ public:
*/
streaming_io_peer(
own<conveyor_feeder<data<Incoming, ContentEncoding>>> feed,
- own<async_io_stream> stream, transport<TransportEncoding> in_codec);
+ own<async_io_stream<Net>> stream, transport<TransportEncoding> in_codec);
/**
* Constructor with mostly default assignements
*/
streaming_io_peer(
own<conveyor_feeder<data<Incoming, ContentEncoding>>> feed,
- own<async_io_stream> stream);
+ own<async_io_stream<Net>> stream);
/**
* Deleted copy and move constructors
@@ -54,8 +55,8 @@ private:
: public conveyor_feeder<data<Outgoing, ContentEncoding>> {
public:
peer_conveyor_feeder(
- streaming_io_peer<Incoming, Outgoing, TransportEncoding, ContentEncoding, BufferT> &peer_)
- : peer_{peer_} {}
+ streaming_io_peer<Incoming, Outgoing, TransportEncoding, ContentEncoding, Net, BufferT> &peer__)
+ : peer_{peer__} {}
void feed(data<Outgoing, ContentEncoding> &&data_) override {
(void)data_;
@@ -69,7 +70,7 @@ private:
error_or<void> swap(conveyor<data<Outgoing, ContentEncoding>> &&) noexcept override { return make_error<err::not_implemented>();}
private:
- streaming_io_peer<Incoming, Outgoing, TransportEncoding, ContentEncoding,
+ streaming_io_peer<Incoming, Outgoing, TransportEncoding, ContentEncoding, Net,
BufferT> &peer_;
};
@@ -77,7 +78,7 @@ private:
own<conveyor_feeder<data<Incoming, ContentEncoding>>>
incoming_feeder_ = nullptr;
- own<async_io_stream> io_stream_;
+ own<async_io_stream<Net>> io_stream_;
transport<TransportEncoding> in_codec_;
@@ -99,10 +100,11 @@ private:
*/
template <typename Incoming, typename Outgoing,
typename TransportEncoding, typename ContentEncoding,
+ typename Net = net::Os,
typename BufferT = ring_buffer>
-std::pair<own<streaming_io_peer<Incoming, Outgoing, TransportEncoding, ContentEncoding, BufferT>>,
+std::pair<own<streaming_io_peer<Incoming, Outgoing, TransportEncoding, ContentEncoding, Net, BufferT>>,
conveyor<data<Incoming, ContentEncoding>>>
-new_streaming_io_peer(own<async_io_stream> stream);
+new_streaming_io_peer(own<async_io_stream<Net>> stream);
} // namespace saw
diff --git a/modules/io_codec/c++/io_peer.tmpl.hpp b/modules/io_codec/c++/io_peer.tmpl.hpp
index 0322631..e046f92 100644
--- a/modules/io_codec/c++/io_peer.tmpl.hpp
+++ b/modules/io_codec/c++/io_peer.tmpl.hpp
@@ -1,25 +1,24 @@
namespace saw {
}
-#include <iostream>
namespace saw {
-template <typename Incoming, typename Outgoing, typename TransportEncoding, typename ContentEncoding,
+template <typename Incoming, typename Outgoing, typename TransportEncoding, typename ContentEncoding, typename Net,
typename BufferT>
-streaming_io_peer<Incoming, Outgoing, TransportEncoding, ContentEncoding,
+streaming_io_peer<Incoming, Outgoing, TransportEncoding, ContentEncoding, Net,
BufferT>::
streaming_io_peer(
own<conveyor_feeder<data<Incoming, ContentEncoding>>> feed,
- own<async_io_stream> str)
+ own<async_io_stream<Net>> str)
: streaming_io_peer{std::move(feed), std::move(str), {}} {}
-template <typename Incoming, typename Outgoing, typename TransportEncoding, typename ContentEncoding, typename BufferT>
-streaming_io_peer<Incoming, Outgoing, TransportEncoding, ContentEncoding,
+template <typename Incoming, typename Outgoing, typename TransportEncoding, typename ContentEncoding, typename Net, typename BufferT>
+streaming_io_peer<Incoming, Outgoing, TransportEncoding, ContentEncoding, Net,
BufferT>::
streaming_io_peer(
own<conveyor_feeder<data<Incoming, ContentEncoding>>> feed,
- own<async_io_stream> stream, transport<TransportEncoding> in_codec)
+ own<async_io_stream<Net>> stream, transport<TransportEncoding> in_codec)
: incoming_feeder_{std::move(feed)},
io_stream_{std::move(stream)},
in_codec_{std::move(in_codec)},
@@ -99,8 +98,8 @@ streaming_io_peer<Incoming, Outgoing, TransportEncoding, ContentEncoding,
template <typename Incoming, typename Outgoing, typename TransportEncoding,
- typename ContentEncoding, typename BufferT>
-error_or<void> streaming_io_peer<Incoming, Outgoing, TransportEncoding, ContentEncoding,
+ typename ContentEncoding, typename Net, typename BufferT>
+error_or<void> streaming_io_peer<Incoming, Outgoing, TransportEncoding, ContentEncoding, Net,
BufferT>::send(data<Outgoing, ContentEncoding>
msg) {
bool restart_write = (out_buffer_.read_segment_length() == 0u);
@@ -132,10 +131,10 @@ error_or<void> streaming_io_peer<Incoming, Outgoing, TransportEncoding, ContentE
return void_t{};
}
-template <typename Incoming, typename Outgoing, typename TransportEncoding, typename ContentEncoding,
+template <typename Incoming, typename Outgoing, typename TransportEncoding, typename ContentEncoding, typename Net,
typename BufferT>
conveyor<void>
-streaming_io_peer<Incoming, Outgoing, TransportEncoding, ContentEncoding,
+streaming_io_peer<Incoming, Outgoing, TransportEncoding, ContentEncoding, Net,
BufferT>::on_disconnected() {
io_read_disconnected_ = io_stream_->on_read_disconnected().then([this](){
if(disconnect_feeder_){
@@ -148,14 +147,14 @@ streaming_io_peer<Incoming, Outgoing, TransportEncoding, ContentEncoding,
return std::move(caf.conveyor);
}
-template <typename Incoming, typename Outgoing, typename TransportEncoding, typename ContentEncoding, typename BufferT>
-std::pair<own<streaming_io_peer<Incoming, Outgoing, TransportEncoding, ContentEncoding, BufferT>>,
+template <typename Incoming, typename Outgoing, typename TransportEncoding, typename ContentEncoding, typename Net, typename BufferT>
+std::pair<own<streaming_io_peer<Incoming, Outgoing, TransportEncoding, ContentEncoding, Net, BufferT>>,
conveyor<data<Incoming,ContentEncoding>>>
-new_streaming_io_peer(own<async_io_stream> stream) {
+new_streaming_io_peer(own<async_io_stream<Net>> stream) {
auto caf =
new_conveyor_and_feeder<data<Incoming, ContentEncoding>>();
- return {heap<streaming_io_peer<Incoming, Outgoing, TransportEncoding, ContentEncoding,BufferT>>(
+ return {heap<streaming_io_peer<Incoming, Outgoing, TransportEncoding, ContentEncoding,Net,BufferT>>(
std::move(caf.feeder), std::move(stream)),
std::move(caf.conveyor)};
}