GNU Octave
4.2.1
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-2017 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
#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
= 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
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::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:3440
QtHandles
Definition:
__init_qt__.cc:41
false
is false
Definition:
cellfun.cc:398
QtHandles::Logger
Definition:
Logger.h:33
Logger.h
debug
static bool debug
Definition:
mkoctfile.cc:239
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 Wed May 10 2017 15:42:41 for GNU Octave by
1.8.8