cprover
Toggle main menu visibility
Loading...
Searching...
No Matches
ui_message.h
Go to the documentation of this file.
1
/*******************************************************************\
2
3
Module:
4
5
Author: Daniel Kroening, kroening@kroening.com
6
7
\*******************************************************************/
8
9
10
#ifndef CPROVER_UTIL_UI_MESSAGE_H
11
#define CPROVER_UTIL_UI_MESSAGE_H
12
13
#include <memory>
14
15
#include "
message.h
"
16
#include "
timestamper.h
"
17
18
class
console_message_handlert
;
19
class
json_stream_arrayt
;
20
21
class
ui_message_handlert
:
public
message_handlert
22
{
23
public
:
24
enum class
uit
{
PLAIN
,
XML_UI
,
JSON_UI
};
25
26
ui_message_handlert
(
const
class
cmdlinet
&,
const
std::string &program);
27
28
explicit
ui_message_handlert
(
message_handlert
&);
29
ui_message_handlert
(
ui_message_handlert
&&) =
default
;
30
31
virtual
~ui_message_handlert
();
32
33
virtual
uit
get_ui
()
const
34
{
35
return
_ui
;
36
}
37
38
virtual
void
flush
(
unsigned
level)
override
;
39
40
virtual
json_stream_arrayt
&
get_json_stream
()
41
{
42
PRECONDITION
(
json_stream
!=
nullptr
);
43
return
*
json_stream
;
44
}
45
void
print
(
unsigned
level,
const
structured_datat
&
data
)
override
;
46
47
protected
:
48
std::unique_ptr<console_message_handlert>
console_message_handler
;
49
message_handlert
*
message_handler
;
50
uit
_ui
;
51
const
bool
always_flush
;
52
std::unique_ptr<const timestampert>
time
;
53
std::ostream &
out
;
54
std::unique_ptr<json_stream_arrayt>
json_stream
;
55
56
ui_message_handlert
(
57
message_handlert
*,
58
uit
,
59
const
std::string &program,
60
const
bool
always_flush
,
61
timestampert::clockt
clock_type);
62
63
virtual
void
print
(
64
unsigned
level,
65
const
std::string &message)
override
;
66
67
virtual
void
print
(
68
unsigned
level,
69
const
std::string &message,
70
const
source_locationt
&location)
override
;
71
72
virtual
void
print
(
73
unsigned
level,
74
const
xmlt
&
data
)
override
;
75
76
virtual
void
print
(
77
unsigned
level,
78
const
jsont
&
data
)
override
;
79
80
virtual
void
xml_ui_msg
(
81
const
std::string &type,
82
const
std::string &msg,
83
const
source_locationt
&location);
84
85
virtual
void
json_ui_msg
(
86
const
std::string &type,
87
const
std::string &msg,
88
const
source_locationt
&location);
89
90
virtual
void
ui_msg
(
91
const
std::string &type,
92
const
std::string &msg,
93
const
source_locationt
&location);
94
95
const
char
*
level_string
(
unsigned
level);
96
97
std::string
command
(
unsigned
c)
const override
98
{
99
if
(
message_handler
)
100
return
message_handler
->command(c);
101
else
102
return
std::string();
103
}
104
};
105
106
#define OPT_FLUSH "(flush)"
107
108
#define HELP_FLUSH " {y--flush} \t flush every line of output\n"
109
110
#endif
// CPROVER_UTIL_UI_MESSAGE_H
cmdlinet
Definition
cmdline.h:20
console_message_handlert
Definition
cout_message.h:30
json_stream_arrayt
Provides methods for streaming JSON arrays.
Definition
json_stream.h:93
jsont
Definition
json.h:27
message_handlert
Definition
message.h:27
message_handlert::message_handlert
message_handlert()
Definition
message.h:29
source_locationt
Definition
source_location.h:20
structured_datat
A way of representing nested key/value data.
Definition
structured_data.h:74
timestampert::clockt
clockt
Derived types of timestampert.
Definition
timestamper.h:46
ui_message_handlert::print
void print(unsigned level, const structured_datat &data) override
Definition
ui_message.cpp:316
ui_message_handlert::json_ui_msg
virtual void json_ui_msg(const std::string &type, const std::string &msg, const source_locationt &location)
Definition
ui_message.cpp:283
ui_message_handlert::level_string
const char * level_string(unsigned level)
Definition
ui_message.cpp:120
ui_message_handlert::command
std::string command(unsigned c) const override
Create an ECMA-48 SGR (Select Graphic Rendition) command.
Definition
ui_message.h:97
ui_message_handlert::get_ui
virtual uit get_ui() const
Definition
ui_message.h:33
ui_message_handlert::out
std::ostream & out
Definition
ui_message.h:53
ui_message_handlert::ui_message_handlert
ui_message_handlert(ui_message_handlert &&)=default
ui_message_handlert::always_flush
const bool always_flush
Definition
ui_message.h:51
ui_message_handlert::_ui
uit _ui
Definition
ui_message.h:50
ui_message_handlert::message_handler
message_handlert * message_handler
Definition
ui_message.h:49
ui_message_handlert::time
std::unique_ptr< const timestampert > time
Definition
ui_message.h:52
ui_message_handlert::flush
virtual void flush(unsigned level) override
Definition
ui_message.cpp:302
ui_message_handlert::xml_ui_msg
virtual void xml_ui_msg(const std::string &type, const std::string &msg, const source_locationt &location)
Definition
ui_message.cpp:261
ui_message_handlert::json_stream
std::unique_ptr< json_stream_arrayt > json_stream
Definition
ui_message.h:54
ui_message_handlert::uit
uit
Definition
ui_message.h:24
ui_message_handlert::uit::JSON_UI
@ JSON_UI
Definition
ui_message.h:24
ui_message_handlert::uit::XML_UI
@ XML_UI
Definition
ui_message.h:24
ui_message_handlert::uit::PLAIN
@ PLAIN
Definition
ui_message.h:24
ui_message_handlert::~ui_message_handlert
virtual ~ui_message_handlert()
Definition
ui_message.cpp:99
ui_message_handlert::get_json_stream
virtual json_stream_arrayt & get_json_stream()
Definition
ui_message.h:40
ui_message_handlert::ui_message_handlert
ui_message_handlert(const class cmdlinet &, const std::string &program)
Definition
ui_message.cpp:66
ui_message_handlert::ui_msg
virtual void ui_msg(const std::string &type, const std::string &msg, const source_locationt &location)
Definition
ui_message.cpp:241
ui_message_handlert::console_message_handler
std::unique_ptr< console_message_handlert > console_message_handler
Definition
ui_message.h:48
xmlt
Definition
xml.h:21
PRECONDITION
#define PRECONDITION(CONDITION)
Definition
invariant.h:463
message.h
data
Definition
kdev_t.h:24
timestamper.h
Emit timestamps.
util
ui_message.h
Generated by
1.17.0