annotate debug.h @ 57:f583e44d9d31

* Update copyrights; add debug header
author Chris Cannam
date Tue, 16 Nov 2010 13:57:30 +0000
parents
children 8fd71f570884
rev   line source
Chris@57 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@57 2
Chris@57 3 /*
Chris@57 4 EasyMercurial
Chris@57 5
Chris@57 6 Based on HgExplorer by Jari Korhonen
Chris@57 7 Copyright (c) 2010 Jari Korhonen
Chris@57 8 Copyright (c) 2010 Chris Cannam
Chris@57 9 Copyright (c) 2010 Queen Mary, University of London
Chris@57 10
Chris@57 11 This program is free software; you can redistribute it and/or
Chris@57 12 modify it under the terms of the GNU General Public License as
Chris@57 13 published by the Free Software Foundation; either version 2 of the
Chris@57 14 License, or (at your option) any later version. See the file
Chris@57 15 COPYING included with this distribution for more information.
Chris@57 16 */
Chris@57 17
Chris@57 18 #ifndef _DEBUG_H_
Chris@57 19 #define _DEBUG_H_
Chris@57 20
Chris@57 21 #include <QDebug>
Chris@57 22 #include <QTextStream>
Chris@57 23 #include <string>
Chris@57 24 #include <iostream>
Chris@57 25
Chris@57 26 class QString;
Chris@57 27 class QUrl;
Chris@57 28
Chris@57 29 QDebug &operator<<(QDebug &, const std::string &);
Chris@57 30 std::ostream &operator<<(std::ostream &, const QString &);
Chris@57 31 std::ostream &operator<<(std::ostream &, const QUrl &);
Chris@57 32
Chris@57 33 #ifndef NDEBUG
Chris@57 34
Chris@57 35 extern QDebug &getEasyHgDebug();
Chris@57 36
Chris@57 37 #define DEBUG getEasyHgDebug()
Chris@57 38
Chris@57 39 template <typename T>
Chris@57 40 inline QDebug &operator<<(QDebug &d, const T &t) {
Chris@57 41 QString s;
Chris@57 42 QTextStream ts(&s);
Chris@57 43 ts << t;
Chris@57 44 d << s;
Chris@57 45 return d;
Chris@57 46 }
Chris@57 47
Chris@57 48 #else
Chris@57 49
Chris@57 50 class NoDebug
Chris@57 51 {
Chris@57 52 public:
Chris@57 53 inline NoDebug() {}
Chris@57 54 inline ~NoDebug(){}
Chris@57 55
Chris@57 56 template <typename T>
Chris@57 57 inline NoDebug &operator<<(const T &) { return *this; }
Chris@57 58
Chris@57 59 inline NoDebug &operator<<(QTextStreamFunction) { return *this; }
Chris@57 60 };
Chris@57 61
Chris@57 62 #define DEBUG NoDebug()
Chris@57 63
Chris@57 64 #endif /* !NDEBUG */
Chris@57 65
Chris@57 66 #endif /* !_DEBUG_H_ */
Chris@57 67