From 99e2e923d0c77b02f3fb4ff648ea916954868606 Mon Sep 17 00:00:00 2001 From: Yuqian Yang Date: Fri, 28 Feb 2025 23:13:39 +0800 Subject: chore(store): move everything to store. --- works/life/computer-network-experiment/IO.cpp | 81 --------------------------- 1 file changed, 81 deletions(-) delete mode 100644 works/life/computer-network-experiment/IO.cpp (limited to 'works/life/computer-network-experiment/IO.cpp') diff --git a/works/life/computer-network-experiment/IO.cpp b/works/life/computer-network-experiment/IO.cpp deleted file mode 100644 index 5d3fe12..0000000 --- a/works/life/computer-network-experiment/IO.cpp +++ /dev/null @@ -1,81 +0,0 @@ -#include "IO.h" - -#include - -#include -#include -#include -#include - -folly::MPMCQueue output_queue(100); - -namespace { -folly::CancellationSource cancellation_source; -std::thread io_thread; -} - -void PrintOutput(const Output &output) { - std::basic_ostream *stream; - - switch (output.type) { - case OutputType::Error: - stream = &error_stream; - break; - default: - stream = &output_stream; - break; - } - - switch (output.color) { - case OutputColor::Normal: - (*stream) << output.message; - break; - case OutputColor::Green: - (*stream) << CRUT("\x1b[32m") << output.message << CRUT("\x1b[39m") - << std::flush; - break; - case OutputColor::Red: - (*stream) << CRUT("\x1b[31m") << output.message << CRUT("\x1b[39m") - << std::flush; - break; - case OutputColor::Yellow: - (*stream) << CRUT("\x1b[33m") << output.message << CRUT("\x1b[39m") - << std::flush; - break; - } -} - -String ReadInputLine() { - String line; - std::getline(input_stream, line); - return line; -} - -void IOThread() { - while (true) { - if (cancellation_source.isCancellationRequested()) { - while (true) { - Output output; - if (output_queue.readIfNotEmpty(output)) { - PrintOutput(output); - } else { - return; - } - } - } - - Output output; - while (output_queue.readIfNotEmpty(output)) - PrintOutput(output); - - PrintOutput({CRUT("> ")}); - OnInputLine(ReadInputLine()); - } -} - -void SignalAndWaitForOutputThreadStop() { - cancellation_source.requestCancellation(); - io_thread.join(); -} - -void StartIOThread() { io_thread = std::thread(IOThread); } -- cgit v1.2.3