assert.cpp

00001 #include <util/assert.h>
00002 #include <QMessageBox>
00003 #include <QString>
00004 #include <QCoreApplication>
00005 #include <QApplication>
00006 #include <stdlib.h>
00007 #include <iostream>
00008 
00009 namespace util
00010 {
00011   void __assert_fail(const QString& assertion, const char* file,
00012                      unsigned int line, const char* function)
00013   {
00014     if(QApplication::type() != QApplication::Tty)
00015     {
00016       QString app_name = QCoreApplication::applicationName();
00017       QString txt = QString("%1: %2:%3: %4: Assertion `%5' failed.").arg(app_name).arg(file).arg(QString::number(line)).arg(function).arg(assertion);
00018       QMessageBox::critical(NULL, "Assertion failed", txt);
00019       abort();
00020     }
00021     else
00022     {
00023       __assert_fail_txt(assertion, file, line, function);
00024     }
00025   }
00026 
00027   void __assert_fail_txt(const QString& assertion, const char* file,
00028                          unsigned int line, const char* function)
00029   {
00030     QString app_name = QCoreApplication::applicationName();
00031     QString txt = QString("%1: %2:%3: %4: Assertion `%5' failed.").arg(app_name).arg(file).arg(QString::number(line)).arg(function).arg(assertion);
00032     std::cout << txt.toStdString() << std::endl;
00033     abort();
00034   }
00035 };
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Generated on Fri May 31 15:37:52 2013 for VVE by  doxygen 1.6.3