From 8dad985328e2183b224300aa992951131956fdb3 Mon Sep 17 00:00:00 2001 From: "Claudius \"keldu\" Holeksa" Date: Tue, 23 Jan 2024 13:12:11 +0100 Subject: core,codec-json,codec-minecraft,codec-netcdf,codec,io-tls,io,io_codec,window,window-opengl: Renamed file endings and changed includes --- modules/io_codec/io_peer.h | 104 --------------------------------- modules/io_codec/io_peer.hpp | 104 +++++++++++++++++++++++++++++++++ modules/io_codec/io_peer.tmpl.h | 117 -------------------------------------- modules/io_codec/io_peer.tmpl.hpp | 117 ++++++++++++++++++++++++++++++++++++++ modules/io_codec/rpc.h | 31 ---------- modules/io_codec/rpc.hpp | 31 ++++++++++ 6 files changed, 252 insertions(+), 252 deletions(-) delete mode 100644 modules/io_codec/io_peer.h create mode 100644 modules/io_codec/io_peer.hpp delete mode 100644 modules/io_codec/io_peer.tmpl.h create mode 100644 modules/io_codec/io_peer.tmpl.hpp delete mode 100644 modules/io_codec/rpc.h create mode 100644 modules/io_codec/rpc.hpp (limited to 'modules/io_codec') diff --git a/modules/io_codec/io_peer.h b/modules/io_codec/io_peer.h deleted file mode 100644 index b9a4b34..0000000 --- a/modules/io_codec/io_peer.h +++ /dev/null @@ -1,104 +0,0 @@ -#pragma once - -#include -#include -#include -#include - -namespace saw { - -template , - typename OutContainer = message_container, - typename BufferT = ring_buffer> -class streaming_io_peer { -public: - /** - * - */ - streaming_io_peer( - own>> feed, - own stream, Codec codec, BufferT in, BufferT out); - /** - * - */ - streaming_io_peer( - own>> feed, - own stream); - - /** - * Deleted copy and move constructors - */ - SAW_FORBID_COPY(streaming_io_peer); - SAW_FORBID_MOVE(streaming_io_peer); - - /** - * Send a message to the remote peer - */ - error send(heap_message_root builder); - - /** - * A phantom conveyor feeder. Meant for interfacing with other components - */ - conveyor_feeder> &feeder(); - - conveyor on_read_disconnected(); - -private: - /// @unimplemented - class peer_conveyor_feeder final - : public conveyor_feeder> { - public: - peer_conveyor_feeder( - streaming_io_peer &peer_) - : peer_{peer_} {} - - void feed(heap_message_root &&data) override { - (void)data; - } - - void fail(error &&error) override { (void)error; } - - size_t space() const override { return 0; } - - size_t queued() const override { return 0; } - - private: - streaming_io_peer &peer_; - }; - -private: - own>> - incoming_feeder_ = nullptr; - - own io_stream_; - - Codec codec_; - - BufferT in_buffer_; - BufferT out_buffer_; - - conveyor_sink sink_read_; - conveyor_sink sink_write_; - - peer_conveyor_feeder conveyor_feeder_; -}; - -/** - * Setup new streaming io peer with the provided network protocols. - * This is a convenience wrapper intended for a faster setup of this class - */ -template , - typename OutContainer = message_container, - typename BufferT = ring_buffer> -std::pair>, - conveyor>> -new_streaming_io_peer(own stream); - -} // namespace saw - -#include "io_peer.tmpl.h" diff --git a/modules/io_codec/io_peer.hpp b/modules/io_codec/io_peer.hpp new file mode 100644 index 0000000..46a7d11 --- /dev/null +++ b/modules/io_codec/io_peer.hpp @@ -0,0 +1,104 @@ +#pragma once + +#include +#include +#include +#include + +namespace saw { + +template , + typename OutContainer = message_container, + typename BufferT = ring_buffer> +class streaming_io_peer { +public: + /** + * + */ + streaming_io_peer( + own>> feed, + own stream, Codec codec, BufferT in, BufferT out); + /** + * + */ + streaming_io_peer( + own>> feed, + own stream); + + /** + * Deleted copy and move constructors + */ + SAW_FORBID_COPY(streaming_io_peer); + SAW_FORBID_MOVE(streaming_io_peer); + + /** + * Send a message to the remote peer + */ + error send(heap_message_root builder); + + /** + * A phantom conveyor feeder. Meant for interfacing with other components + */ + conveyor_feeder> &feeder(); + + conveyor on_read_disconnected(); + +private: + /// @unimplemented + class peer_conveyor_feeder final + : public conveyor_feeder> { + public: + peer_conveyor_feeder( + streaming_io_peer &peer_) + : peer_{peer_} {} + + void feed(heap_message_root &&data) override { + (void)data; + } + + void fail(error &&error) override { (void)error; } + + size_t space() const override { return 0; } + + size_t queued() const override { return 0; } + + private: + streaming_io_peer &peer_; + }; + +private: + own>> + incoming_feeder_ = nullptr; + + own io_stream_; + + Codec codec_; + + BufferT in_buffer_; + BufferT out_buffer_; + + conveyor_sink sink_read_; + conveyor_sink sink_write_; + + peer_conveyor_feeder conveyor_feeder_; +}; + +/** + * Setup new streaming io peer with the provided network protocols. + * This is a convenience wrapper intended for a faster setup of this class + */ +template , + typename OutContainer = message_container, + typename BufferT = ring_buffer> +std::pair>, + conveyor>> +new_streaming_io_peer(own stream); + +} // namespace saw + +#include "io_peer.tmpl.hpp diff --git a/modules/io_codec/io_peer.tmpl.h b/modules/io_codec/io_peer.tmpl.h deleted file mode 100644 index 880a58a..0000000 --- a/modules/io_codec/io_peer.tmpl.h +++ /dev/null @@ -1,117 +0,0 @@ -namespace saw { - -template -streaming_io_peer:: - streaming_io_peer( - own>> feed, - own str) - : streaming_io_peer{std::move(feed), std::move(str), {}, {}, {}} {} - -template -streaming_io_peer:: - streaming_io_peer( - own>> feed, - own stream, Codec codec, BufferT in, BufferT out) - : incoming_feeder_{std::move(feed)}, - io_stream_{std::move(stream)}, codec_{std::move(codec)}, - in_buffer_{std::move(in)}, out_buffer_{std::move(out)}, - sink_read_{ - io_stream_->read_done() - .then([this](size_t bytes) -> error_or { - in_buffer_.write_advance(bytes); - - if (in_buffer_.write_segment_length() == 0) { - return critical_error("Message too long"); - } - - io_stream_->read(&in_buffer_.write(), 1, - in_buffer_.write_segment_length()); - - while (true) { - auto root = heap_message_root(); - auto builder = root.build(); - - error err = codec_.template decode( - builder, in_buffer_); - if (err.is_critical()) { - return err; - } - - if (!err.failed()) { - incoming_feeder_->feed(std::move(root)); - } else { - break; - } - } - - return void_t{}; - }) - .sink([this](error err) { - incoming_feeder_->fail(err.copy_error()); - - return err; - })}, - sink_write_{io_stream_->write_done() - .then([this](size_t bytes) -> error_or { - out_buffer_.read_advance(bytes); - if (out_buffer_.readCompositeLength() > 0) { - io_stream_->write( - &out_buffer_.read(), - out_buffer_.read_segment_length()); - } - - return void_t{}; - }) - .sink()} { - io_stream_->read(&in_buffer_.write(), 1, in_buffer_.write_segment_length()); -} - -template -error streaming_io_peer::send(heap_message_root - msg) { - bool restart_write = out_buffer_.read_segment_length() == 0; - - error err = - codec_.template encode(msg.read(), out_buffer_); - if (err.failed()) { - return err; - } - - if (restart_write) { - io_stream_->write(&out_buffer_.read(), - out_buffer_.read_segment_length()); - } - - return no_error(); -} - -template -conveyor -streaming_io_peer::on_read_disconnected() { - return io_stream_->on_read_disconnected(); -} - -template -std::pair>, - conveyor>> -newstreaming_io_peer(own stream) { - auto caf = - new_conveyor_and_feeder>(); - - return {heap>( - std::move(caf.feeder), std::move(stream)), - std::move(caf.conveyor)}; -} - -} // namespace saw diff --git a/modules/io_codec/io_peer.tmpl.hpp b/modules/io_codec/io_peer.tmpl.hpp new file mode 100644 index 0000000..880a58a --- /dev/null +++ b/modules/io_codec/io_peer.tmpl.hpp @@ -0,0 +1,117 @@ +namespace saw { + +template +streaming_io_peer:: + streaming_io_peer( + own>> feed, + own str) + : streaming_io_peer{std::move(feed), std::move(str), {}, {}, {}} {} + +template +streaming_io_peer:: + streaming_io_peer( + own>> feed, + own stream, Codec codec, BufferT in, BufferT out) + : incoming_feeder_{std::move(feed)}, + io_stream_{std::move(stream)}, codec_{std::move(codec)}, + in_buffer_{std::move(in)}, out_buffer_{std::move(out)}, + sink_read_{ + io_stream_->read_done() + .then([this](size_t bytes) -> error_or { + in_buffer_.write_advance(bytes); + + if (in_buffer_.write_segment_length() == 0) { + return critical_error("Message too long"); + } + + io_stream_->read(&in_buffer_.write(), 1, + in_buffer_.write_segment_length()); + + while (true) { + auto root = heap_message_root(); + auto builder = root.build(); + + error err = codec_.template decode( + builder, in_buffer_); + if (err.is_critical()) { + return err; + } + + if (!err.failed()) { + incoming_feeder_->feed(std::move(root)); + } else { + break; + } + } + + return void_t{}; + }) + .sink([this](error err) { + incoming_feeder_->fail(err.copy_error()); + + return err; + })}, + sink_write_{io_stream_->write_done() + .then([this](size_t bytes) -> error_or { + out_buffer_.read_advance(bytes); + if (out_buffer_.readCompositeLength() > 0) { + io_stream_->write( + &out_buffer_.read(), + out_buffer_.read_segment_length()); + } + + return void_t{}; + }) + .sink()} { + io_stream_->read(&in_buffer_.write(), 1, in_buffer_.write_segment_length()); +} + +template +error streaming_io_peer::send(heap_message_root + msg) { + bool restart_write = out_buffer_.read_segment_length() == 0; + + error err = + codec_.template encode(msg.read(), out_buffer_); + if (err.failed()) { + return err; + } + + if (restart_write) { + io_stream_->write(&out_buffer_.read(), + out_buffer_.read_segment_length()); + } + + return no_error(); +} + +template +conveyor +streaming_io_peer::on_read_disconnected() { + return io_stream_->on_read_disconnected(); +} + +template +std::pair>, + conveyor>> +newstreaming_io_peer(own stream) { + auto caf = + new_conveyor_and_feeder>(); + + return {heap>( + std::move(caf.feeder), std::move(stream)), + std::move(caf.conveyor)}; +} + +} // namespace saw diff --git a/modules/io_codec/rpc.h b/modules/io_codec/rpc.h deleted file mode 100644 index 020bf96..0000000 --- a/modules/io_codec/rpc.h +++ /dev/null @@ -1,31 +0,0 @@ -#pragma once - -#include - -namespace saw { -namespace rmt { -struct Network {}; -} - -template<> -class remote { -private: - std::string addr_str_; -public: - remote(std::string addr_str); - - template - conveyor> create_client(); -}; - -template