summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaudius "keldu" Holeksa <mail@keldu.de>2024-03-17 19:31:33 +0100
committerClaudius "keldu" Holeksa <mail@keldu.de>2024-03-17 19:31:33 +0100
commit89ee081584efbd215ad7780ee6500c387d776845 (patch)
tree788f41ef456fcfefd08b4a5b020de93cefe1714c
parent7f486d6c8fad66f77daa8c3321aa078e01f4c718 (diff)
io, io_codec: Minor work on io code
-rw-r--r--modules/io/examples/echo_client.cpp4
-rw-r--r--modules/io_codec/c++/io_peer.hpp7
-rw-r--r--modules/io_codec/c++/io_peer.tmpl.hpp2
3 files changed, 9 insertions, 4 deletions
diff --git a/modules/io/examples/echo_client.cpp b/modules/io/examples/echo_client.cpp
index fa9781d..53ebe54 100644
--- a/modules/io/examples/echo_client.cpp
+++ b/modules/io/examples/echo_client.cpp
@@ -50,6 +50,10 @@ int main(){
keep_running = false;
}).detach();
+
+ async_rmt->on_read_disconnected().then([&](){
+ keep_running = false;
+ }).detach();
}).detach();
}).detach();
diff --git a/modules/io_codec/c++/io_peer.hpp b/modules/io_codec/c++/io_peer.hpp
index 9ba623f..a92e236 100644
--- a/modules/io_codec/c++/io_peer.hpp
+++ b/modules/io_codec/c++/io_peer.hpp
@@ -14,13 +14,14 @@ template <typename Codec, typename Incoming, typename Outgoing,
class streaming_io_peer {
public:
/**
- *
+ * Constructor with the option to provide a custom codec, in and out buffer
*/
streaming_io_peer(
own<conveyor_feeder<heap_message_root<Incoming, InContainer>>> feed,
own<async_io_stream> stream, Codec codec, BufferT in, BufferT out);
+
/**
- *
+ * Constructor
*/
streaming_io_peer(
own<conveyor_feeder<heap_message_root<Incoming, InContainer>>> feed,
@@ -35,7 +36,7 @@ public:
/**
* Send a message to the remote peer
*/
- error send(heap_message_root<Outgoing, OutContainer> builder);
+ error_or<void> send(heap_message_root<Outgoing, OutContainer> builder);
/**
* A phantom conveyor feeder. Meant for interfacing with other components
diff --git a/modules/io_codec/c++/io_peer.tmpl.hpp b/modules/io_codec/c++/io_peer.tmpl.hpp
index 880a58a..342ca42 100644
--- a/modules/io_codec/c++/io_peer.tmpl.hpp
+++ b/modules/io_codec/c++/io_peer.tmpl.hpp
@@ -72,7 +72,7 @@ streaming_io_peer<Codec, Incoming, Outgoing, InContainer, OutContainer,
template <typename Codec, typename Incoming, typename Outgoing,
typename InContainer, typename OutContainer, typename BufferT>
-error streaming_io_peer<Codec, Incoming, Outgoing, InContainer, OutContainer,
+error_or<void> streaming_io_peer<Codec, Incoming, Outgoing, InContainer, OutContainer,
BufferT>::send(heap_message_root<Outgoing, OutContainer>
msg) {
bool restart_write = out_buffer_.read_segment_length() == 0;