From 868936626cd32590b697cc5ba0c67e032deabd38 Mon Sep 17 00:00:00 2001 From: crupest Date: Mon, 7 Jun 2021 19:24:39 +0800 Subject: import(life): ... --- works/life/computer-network-experiment/Output.cpp | 27 ++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) (limited to 'works/life/computer-network-experiment/Output.cpp') diff --git a/works/life/computer-network-experiment/Output.cpp b/works/life/computer-network-experiment/Output.cpp index 8efb525..e3dc69e 100644 --- a/works/life/computer-network-experiment/Output.cpp +++ b/works/life/computer-network-experiment/Output.cpp @@ -1,5 +1,9 @@ #include "Output.h" -#include "folly/CancellationToken.h" + +#include + +#include +#include folly::MPMCQueue output_queue(100); @@ -8,12 +12,29 @@ folly::CancellationSource cancellation_source; std::thread output_thread(OutputThread); void PrintOutput(const Output &output) { + std::basic_ostream *stream; + switch (output.type) { case OutputType::Error: - error_stream << output.message; + stream = &error_stream; break; default: - output_stream << output.message; + 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[0m"); + break; + case OutputColor::Red: + (*stream) << CRUT("\x1b[31m") << output.message << CRUT("\x1b[0m"); + break; + case OutputColor::Yellow: + (*stream) << CRUT("\x1b[33m") << output.message << CRUT("\x1b[0m"); break; } } -- cgit v1.2.3