@@ -11,21 +11,21 @@ Author: Daniel Kroening, kroening@kroening.com
1111#include < fstream>
1212#include < iostream>
1313
14- #include " xml .h"
14+ #include " cmdline .h"
1515#include " json.h"
16- #include " xml_expr.h"
1716#include " json_expr.h"
1817#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"
2121
2222ui_message_handlert::ui_message_handlert (
23- message_handlert *message_handler ,
23+ message_handlert *_message_handler ,
2424 uit __ui,
2525 const std::string &program,
2626 bool always_flush,
2727 timestampert::clockt clock_type)
28- : message_handler(message_handler ),
28+ : message_handler(_message_handler ),
2929 _ui(__ui),
3030 always_flush(always_flush),
3131 time(timestampert::make(clock_type)),
@@ -80,6 +80,12 @@ ui_message_handlert::ui_message_handlert(
8080 : timestampert::clockt::NONE
8181 : timestampert::clockt::NONE)
8282{
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+ }
8389}
8490
8591ui_message_handlert::ui_message_handlert (message_handlert &message_handler)
@@ -132,19 +138,9 @@ void ui_message_handlert::print(
132138 std::stringstream ss;
133139 const std::string timestamp = time->stamp ();
134140 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);
148144 }
149145 break ;
150146
@@ -306,24 +302,12 @@ void ui_message_handlert::flush(unsigned level)
306302 switch (get_ui ())
307303 {
308304 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 ;
321307
322308 case uit::XML_UI:
323309 case uit::JSON_UI:
324- {
325310 out << std::flush;
326- }
327- break ;
311+ break ;
328312 }
329313}
0 commit comments