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 | ce6348fa3731326046d8d69ec2171c1648a3d7d6 (patch) | |
tree | fbfd5a657de86dab73fbab446a8c0955bbd76104 /computer-network-experiment/Output.cpp | |
parent | ad9a2ad2a3f0488127e3fb618e4b30a40b50f57d (diff) | |
download | life-ce6348fa3731326046d8d69ec2171c1648a3d7d6.tar.gz life-ce6348fa3731326046d8d69ec2171c1648a3d7d6.tar.bz2 life-ce6348fa3731326046d8d69ec2171c1648a3d7d6.zip |
...
Diffstat (limited to 'computer-network-experiment/Output.cpp')
-rw-r--r-- | computer-network-experiment/Output.cpp | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/computer-network-experiment/Output.cpp b/computer-network-experiment/Output.cpp index 8efb525..e3dc69e 100644 --- a/computer-network-experiment/Output.cpp +++ b/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;
}
}
|