aboutsummaryrefslogtreecommitdiff
path: root/ttwhy/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ttwhy/main.cpp')
-rw-r--r--ttwhy/main.cpp13
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