|
11 | 11 | #include <fstream>
|
12 | 12 | #include <iostream>
|
13 | 13 |
|
14 |
| -#include "xml.h" |
| 14 | +#include "cmdline.h" |
15 | 15 | #include "json.h"
|
16 |
| -#include "xml_expr.h" |
17 | 16 | #include "json_expr.h"
|
18 | 17 | #include "json_stream.h"
|
19 |
| -#include "cout_message.h" |
20 |
| -#include "cmdline.h" |
| 18 | +#include "make_unique.h" |
| 19 | +#include "xml.h" |
| 20 | +#include "xml_expr.h" |
21 | 21 |
|
22 | 22 | ui_message_handlert::ui_message_handlert(
|
23 |
| - message_handlert *message_handler, |
| 23 | + message_handlert *_message_handler, |
24 | 24 | uit __ui,
|
25 | 25 | const std::string &program,
|
26 | 26 | bool always_flush,
|
27 | 27 | timestampert::clockt clock_type)
|
28 |
| - : message_handler(message_handler), |
| 28 | + : message_handler(_message_handler), |
29 | 29 | _ui(__ui),
|
30 | 30 | always_flush(always_flush),
|
31 | 31 | time(timestampert::make(clock_type)),
|
@@ -80,6 +80,12 @@ ui_message_handlert::ui_message_handlert(
|
80 | 80 | : timestampert::clockt::NONE
|
81 | 81 | : timestampert::clockt::NONE)
|
82 | 82 | {
|
| 83 | + if(get_ui() == uit::PLAIN) |
| 84 | + { |
| 85 | + console_message_handler = |
| 86 | + util_make_unique<console_message_handlert>(always_flush); |
| 87 | + message_handler = &*console_message_handler; |
| 88 | + } |
83 | 89 | }
|
84 | 90 |
|
85 | 91 | ui_message_handlert::ui_message_handlert(message_handlert &message_handler)
|
@@ -132,19 +138,9 @@ void ui_message_handlert::print(
|
132 | 138 | std::stringstream ss;
|
133 | 139 | const std::string timestamp = time->stamp();
|
134 | 140 | ss << timestamp << (timestamp.empty() ? "" : " ") << message;
|
135 |
| - if(message_handler) |
136 |
| - { |
137 |
| - message_handler->print(level, ss.str()); |
138 |
| - if(always_flush) |
139 |
| - message_handler->flush(level); |
140 |
| - } |
141 |
| - else |
142 |
| - { |
143 |
| - console_message_handlert msg(always_flush); |
144 |
| - msg.print(level, ss.str()); |
145 |
| - if(always_flush) |
146 |
| - msg.flush(level); |
147 |
| - } |
| 141 | + message_handler->print(level, ss.str()); |
| 142 | + if(always_flush) |
| 143 | + message_handler->flush(level); |
148 | 144 | }
|
149 | 145 | break;
|
150 | 146 |
|
@@ -306,24 +302,12 @@ void ui_message_handlert::flush(unsigned level)
|
306 | 302 | switch(get_ui())
|
307 | 303 | {
|
308 | 304 | case uit::PLAIN:
|
309 |
| - { |
310 |
| - if(message_handler) |
311 |
| - { |
312 |
| - message_handler->flush(level); |
313 |
| - } |
314 |
| - else |
315 |
| - { |
316 |
| - console_message_handlert msg(always_flush); |
317 |
| - msg.flush(level); |
318 |
| - } |
319 |
| - } |
320 |
| - break; |
| 305 | + message_handler->flush(level); |
| 306 | + break; |
321 | 307 |
|
322 | 308 | case uit::XML_UI:
|
323 | 309 | case uit::JSON_UI:
|
324 |
| - { |
325 | 310 | out << std::flush;
|
326 |
| - } |
327 |
| - break; |
| 311 | + break; |
328 | 312 | }
|
329 | 313 | }
|
0 commit comments