kdelibs/kdecore/io/kdebug.h
Ivailo Monev 625373ffa8 kdecore: drop KDateTime
with the rewrite (see f452e2e50b),
KDateTime is just glue-code for compatibility now. the exception is
KDateTime::isNightTime() (written by me) which is used only in one place
(kde-workspace/plasma/dataengines/weather/ions/wetter.com/ion_wettercom.cpp)
and can be moved there

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-08-14 22:35:08 +03:00

120 lines
3.8 KiB
C++

/* This file is part of the KDE libraries
Copyright (C) 2022 Ivailo Monev <xakepa10@gmail.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License version 2, as published by the Free Software Foundation.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef KDEBUG_H
#define KDEBUG_H
#include <kdecore_export.h>
#include <QtCore/qdebug.h>
/*!
\addtogroup kdebug Debug message generators
@{
KDE debug message streams let you and the user control just how many debug
messages you see. Debug message can be controled by editing kdebugrc and
by setting or unsetting environment variables:
KDE_DEBUG_TIMESTAMP - adds timestamp to the message, does not apply for
syslog output type
KDE_DEBUG_METHODNAME - adds the method to the message
KDE_DEBUG_COLOR - colorizes the message, applies only for shell output type
and when it is TTY
*/
#ifndef KDE_DEFAULT_DEBUG_AREA
# define KDE_DEFAULT_DEBUG_AREA 0
#endif
/*!
\macro KDE_DEFAULT_DEBUG_AREA
@brief Denotes the debug area to use in kDebug/kWarning etc when not
explicitly specified. The default is 0 (zero).
@note Define this macro to the debug area of your application/component
before including any KDE headers. Usually, you want to add code like this
to your \c CMakeLists.txt:
\code
...
add_definitions(-DKDE_DEFAULT_DEBUG_AREA=1234)
...
\endcode
This way, you save repeating the debug area all over your source code in
each debug/warning statement.
*/
/*!
@brief Returns a backtrace.
@note Hidden symbol visibility may negatively affect the information
provided by kBacktrace - you may want to pass -DCXX_VISIBILITY_PRESET=FALSE
to CMake to turn hidden symbol visibility off.
@param levels the number of levels of the backtrace
@return a backtrace
*/
KDECORE_EXPORT QByteArray kBacktrace(int levels = -1);
/*!
@brief Clears the KDebug cache and therefore forces it to reread the config
file and environment variables.
*/
KDECORE_EXPORT void kClearDebugConfig();
/*!
@brief Returns a debug stream.
@note In most cases you should not use this function directly, use the
convenience kDebug(), kWarning(), kError() and kFatal() macros instead.
@param type type of message
@param funcinfo caller of KDebug
@param area number to identify the output
*/
KDECORE_EXPORT QDebug KDebug(const QtMsgType type, const char* const funcinfo, const int area = KDE_DEFAULT_DEBUG_AREA);
// operators for KDE types
class KUrl;
KDECORE_EXPORT QDebug operator<<(QDebug s, const KUrl &url);
#define kDebug(...) KDebug(QtDebugMsg, Q_FUNC_INFO, ##__VA_ARGS__)
#define kWarning(...) KDebug(QtWarningMsg, Q_FUNC_INFO, ##__VA_ARGS__)
#define kError(...) KDebug(QtCriticalMsg, Q_FUNC_INFO, ##__VA_ARGS__)
#define kFatal(...) KDebug(QtFatalMsg, Q_FUNC_INFO, ##__VA_ARGS__)
/*!
@brief Convenience macro, use this to remind yourself to finish the
implementation of a function.
@since 4.6
*/
#define KWARNING_NOTIMPLEMENTED kWarning() << "NOT-IMPLEMENTED" << Q_FUNC_INFO;
/*!
@brief Convenience macro, use this to alert other developers to stop using
a function.
@since 4.6
*/
#define KWARNING_DEPRECATED kWarning() << "DEPRECATED" << Q_FUNC_INFO;
/** @} */
#endif // KDEBUG_H