debug.h
00001 /*
00002  * This file is part of signon
00003  *
00004  * Copyright (C) 2015 Canonical Ltd.
00005  *
00006  * Contact: Alberto Mardegan <alberto.mardegan@canonical.com>
00007  *
00008  * This library is free software; you can redistribute it and/or
00009  * modify it under the terms of the GNU Lesser General Public License
00010  * version 2.1 as published by the Free Software Foundation.
00011  *
00012  * This library is distributed in the hope that it will be useful, but
00013  * WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
00015  * Lesser General Public License for more details.
00016  *
00017  * You should have received a copy of the GNU Lesser General Public
00018  * License along with this library; if not, write to the Free Software
00019  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
00020  * 02110-1301 USA
00021  */
00022 
00023 #ifndef LIBSIGNON_DEBUG_H
00024 #define LIBSIGNON_DEBUG_H
00025 
00026 #include <QDebug>
00027 
00028 #ifdef TRACE
00029     #undef TRACE
00030 #endif
00031 
00032 #ifdef BLAME
00033     #undef BLAME
00034 #endif
00035 
00036 #ifdef DEBUG_ENABLED
00037 extern int libsignon_logging_level;
00038 static inline bool debugEnabled() {
00039         return libsignon_logging_level >= 2;
00040 }
00041 
00042 static inline bool criticalsEnabled() {
00043         return libsignon_logging_level >= 1;
00044 }
00045 #define TRACE() \
00046         if (debugEnabled()) qDebug()
00047 #define BLAME() \
00048         if (criticalsEnabled()) qCritical()
00049 
00050 #else // DEBUG_ENABLED
00051     #define TRACE() while (0) qDebug()
00052     #define BLAME() while (0) qDebug()
00053 #endif
00054 
00055 namespace SignOn {
00056 
00057 void setLoggingLevel(int level);
00058 void initDebug();
00059 
00060 }
00061 
00062 #endif // LIBSIGNON_DEBUG_H