GNU Octave
4.0.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Pages
libgui
graphics
Logger.cc
Go to the documentation of this file.
1
/*
2
3
Copyright (C) 2011-2015 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 the
9
Free Software Foundation; either version 3 of the License, or (at your
10
option) any later version.
11
12
Octave is distributed in the hope that it will be useful, but WITHOUT
13
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15
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
<http://www.gnu.org/licenses/>.
20
21
*/
22
23
#ifdef 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
= 0;
39
QMutex*
Logger::s_mutex
= 0;
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
54
Logger
*
55
Logger::instance
(
void
)
56
{
57
if
(!
s_instance
)
58
{
59
s_instance
=
new
Logger
();
60
s_mutex
=
new
QMutex ();
61
}
62
63
return
s_instance
;
64
}
65
66
#define STATIC_LOGGER(fun) \
67
void Logger::fun (const char* fmt, ...) \
68
{ \
69
QMutexLocker lock (s_mutex); \
70
va_list vl; \
71
va_start (vl, fmt); \
72
instance ()->fun ## V (fmt, vl); \
73
va_end (vl); \
74
}
75
76
STATIC_LOGGER
(
debug
)
77
78
void
79
Logger
::debugV (const
char
* fmt, va_list
arg
)
80
{
81
if
(m_debugEnabled)
82
{
83
vfprintf (stderr, fmt, arg);
84
fprintf (stderr,
"\n"
);
85
}
86
}
87
88
};
// namespace QtHandles
STATIC_LOGGER
#define STATIC_LOGGER(fun)
Definition:
Logger.cc:66
QtHandles::Logger::Logger
Logger(void)
Definition:
Logger.cc:41
QtHandles::Logger::instance
static Logger * instance(void)
Definition:
Logger.cc:55
QtHandles
Definition:
__init_qt__.cc:41
QtHandles::Logger
Definition:
Logger.h:33
arg
double arg(double x)
Definition:
lo-mappers.h:37
Logger.h
debug
static bool debug
Definition:
mkoctfile.cc:227
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
Generated on Thu Jun 4 2015 23:30:10 for GNU Octave by
1.8.8