diff options
author | crupest <crupest@outlook.com> | 2021-06-07 19:24:39 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2021-06-07 19:24:39 +0800 |
commit | 868936626cd32590b697cc5ba0c67e032deabd38 (patch) | |
tree | 1834fb5eabb761252f34022284ed221cfa83b110 /works/life/computer-network-experiment/Output.cpp | |
parent | 0dd20e5dde39d1cc42ca5c92f56cdb087c1b8f00 (diff) | |
download | crupest-868936626cd32590b697cc5ba0c67e032deabd38.tar.gz crupest-868936626cd32590b697cc5ba0c67e032deabd38.tar.bz2 crupest-868936626cd32590b697cc5ba0c67e032deabd38.zip |
import(life): ...
Diffstat (limited to 'works/life/computer-network-experiment/Output.cpp')
-rw-r--r-- | works/life/computer-network-experiment/Output.cpp | 27 |
1 files changed, 24 insertions, 3 deletions
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 <folly/CancellationToken.h>
+
+#include <ostream>
+#include <type_traits>
folly::MPMCQueue<Output> output_queue(100);
@@ -8,12 +12,29 @@ folly::CancellationSource cancellation_source; std::thread output_thread(OutputThread);
void PrintOutput(const Output &output) {
+ std::basic_ostream<Char> *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;
}
}
|