ngscopeclient
0.1-dev+51fbda87c
src
ngscopeclient
GuiLogSink.h
Go to the documentation of this file.
1
/***********************************************************************************************************************
2
* *
3
* ngscopeclient *
4
* *
5
* Copyright (c) 2012-2024 Andrew D. Zonenberg *
6
* All rights reserved. *
7
* *
8
* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the *
9
* following conditions are met: *
10
* *
11
* * Redistributions of source code must retain the above copyright notice, this list of conditions, and the *
12
* following disclaimer. *
13
* *
14
* * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the *
15
* following disclaimer in the documentation and/or other materials provided with the distribution. *
16
* *
17
* * Neither the name of the author nor the names of any contributors may be used to endorse or promote products *
18
* derived from this software without specific prior written permission. *
19
* *
20
* THIS SOFTWARE IS PROVIDED BY THE AUTHORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED *
21
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL *
22
* THE AUTHORS BE HELD LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES *
23
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR *
24
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *
25
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE *
26
* POSSIBILITY OF SUCH DAMAGE. *
27
* *
28
***********************************************************************************************************************/
29
35
#ifndef GuiLogSink_h
36
#define GuiLogSink_h
37
38
#include "
Marker.h
"
39
43
class
LogLine
44
{
45
public
:
46
LogLine
(
Severity
sev,
const
std::string& str)
47
: m_sev(sev)
48
, m_msg(str)
49
, m_timestamp(GetTime())
50
{
51
}
52
53
Severity
m_sev;
54
std::string m_msg;
55
TimePoint
m_timestamp;
56
};
57
61
class
GuiLogSink
:
public
LogSink
62
{
63
public
:
64
GuiLogSink
(
Severity
min_severity =
Severity::DEBUG
);
65
virtual
~GuiLogSink
()
override
;
66
67
void
Clear();
68
69
void
Log(
Severity
severity,
const
std::string &msg)
override
;
70
void
Log(
Severity
severity,
const
char
*format, va_list va)
override
;
71
72
const
std::vector<LogLine>& GetLines()
73
{
return
m_lines; }
74
75
protected
:
76
std::vector<LogLine> m_lines;
77
78
std::string m_unbufferedLine;
79
};
80
81
#endif
Marker.h
Declaration of Marker.
GuiLogSink
Log sink for displaying logs in the GUI.
Definition:
GuiLogSink.h:62
LogLine
A single line of the log.
Definition:
GuiLogSink.h:44
LogSink
Base class for all log sinks.
Definition:
log.h:81
TimePoint
A timestamp, measured in seconds + femtoseconds.
Definition:
Marker.h:42
Severity
Severity
Severity of a logging message.
Definition:
log.h:54
Severity::DEBUG
@ DEBUG
Extremely detailed information only useful to people working on application internals.
Generated by
1.9.4