diff options
Diffstat (limited to 'ttwhy/main.cpp')
| -rw-r--r-- | ttwhy/main.cpp | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/ttwhy/main.cpp b/ttwhy/main.cpp index 94c1330..6a813c0 100644 --- a/ttwhy/main.cpp +++ b/ttwhy/main.cpp @@ -3,9 +3,8 @@ #include <stdio.h> -#include <format> - import ttwhy; +import ttwhy.routers; auto app(int in, int out, int error) -> asio::awaitable<void> { @@ -17,15 +16,9 @@ auto app(int in, int out, int error) -> asio::awaitable<void> auto output_stream = asio::posix::stream_descriptor{executor, out}; auto error_stream = asio::posix::stream_descriptor{executor, error}; - auto result = - co_await (ttwhy::io::handle_signals(error_stream) || ttwhy::io::echo(input_stream, output_stream, error_stream)); - auto final_error = result.index() == 0 ? std::get<0>(result) : std::get<1>(result); + auto router = ttwhy::routers::echo{input_stream}; - if (final_error && final_error != asio::error::operation_aborted) - { - auto message = std::format("Terminated with error: {}\n", final_error.message()); - co_await asio::async_write(error_stream, asio::buffer(message), asio::use_awaitable); - } + co_await (ttwhy::io::handle_signals(error_stream) || ttwhy::io::read_events(input_stream, router)); } auto main() -> int |
