GNU Octave
4.4.1
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
Logger.cc
Go to the documentation of this file.
1
/*
2
3
Copyright (C) 2011-2018 Michael Goffioul
4
5
This file is part of Octave.
6
7
Octave is free software: you can redistribute it and/or modify it
8
under the terms of the GNU General Public License as published by
9
the Free Software Foundation, either version 3 of the License, or
10
(at your option) any later version.
11
12
Octave is distributed in the hope that it will be useful, but
13
WITHOUT ANY WARRANTY; without even the implied warranty of
14
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
GNU General Public License for more details.
16
17
You should have received a copy of the GNU General Public License
18
along with Octave; see the file COPYING. If not, see
19
<https://www.gnu.org/licenses/>.
20
21
*/
22
23
#if defined (HAVE_CONFIG_H)
24
# include "config.h"
25
#endif
26
27
#include <QMutex>
28
#include <QMutexLocker>
29
#include <QProcessEnvironment>
30
31
#include <cstdio>
32
33
#include "
Logger.h
"
34
35
namespace
QtHandles
36
{
37
38
Logger *
Logger::s_instance
=
nullptr
;
39
QMutex *
Logger::s_mutex
=
nullptr
;
40
41
Logger::Logger
(
void
)
42
: m_debugEnabled (
false
)
43
{
44
QProcessEnvironment pe (QProcessEnvironment::systemEnvironment ());
45
46
if
(pe.value (
"QTHANDLES_DEBUG"
,
"0"
) !=
"0"
)
47
m_debugEnabled
=
true
;
48
}
49
50
Logger::~Logger
(
void
)
51
{ }
52
53
Logger
*
54
Logger::instance
(
void
)
55
{
56
if
(!
s_instance
)
57
{
58
s_instance
=
new
Logger
();
59
s_mutex
=
new
QMutex ();
60
}
61
62
return
s_instance
;
63
}
64
65
#define STATIC_LOGGER(fun) \
66
void Logger::fun (const char *fmt, ...) \
67
{ \
68
QMutexLocker lock (s_mutex); \
69
va_list vl; \
70
va_start (vl, fmt); \
71
instance ()->fun ## V (fmt, vl); \
72
va_end (vl); \
73
}
74
75
STATIC_LOGGER
(
debug
)
76
77
void
78
Logger::debugV
(
const
char
*fmt, va_list
arg
)
79
{
80
if
(
m_debugEnabled
)
81
{
82
vfprintf (stderr, fmt,
arg
);
83
fprintf (stderr,
"\n"
);
84
}
85
}
86
87
}
STATIC_LOGGER
#define STATIC_LOGGER(fun)
Definition:
Logger.cc:65
QtHandles::Logger::debugV
void debugV(const char *fmt, va_list arg)
Definition:
Logger.cc:78
QtHandles::Logger::Logger
Logger(void)
Definition:
Logger.cc:41
QtHandles::Logger::instance
static Logger * instance(void)
Definition:
Logger.cc:54
arg
octave_value arg
Definition:
pr-output.cc:3244
debug
static bool debug
Definition:
mkoctfile.in.cc:286
QtHandles
Definition:
__init_qt__.cc:44
false
is false
Definition:
cellfun.cc:400
QtHandles::Logger
Definition:
Logger.h:33
Logger.h
QtHandles::Logger::~Logger
~Logger(void)
Definition:
Logger.cc:50
QtHandles::Logger::s_instance
static Logger * s_instance
Definition:
Logger.h:41
QtHandles::Logger::s_mutex
static QMutex * s_mutex
Definition:
Logger.h:42
QtHandles::Logger::m_debugEnabled
bool m_debugEnabled
Definition:
Logger.h:39
libgui
graphics
Logger.cc
Generated on Sat Sep 1 2018 14:01:37 for GNU Octave by
1.8.14