phoneengine/phonemodel/inc/qtphonelog.h
changeset 76 cfea66083b62
parent 46 bc5a64e5bc3c
--- a/phoneengine/phonemodel/inc/qtphonelog.h	Fri Sep 17 17:09:12 2010 +0300
+++ b/phoneengine/phonemodel/inc/qtphonelog.h	Mon Oct 04 16:06:10 2010 +0300
@@ -15,29 +15,53 @@
 *
 */
 
-
-
 #ifndef __QTPHONELOG_H__
 #define __QTPHONELOG_H__
 
 //  INCLUDES
 #include <e32def.h>
 #include <QDebug>
+#include <QTime>
+#include <QString>
+
+#ifdef _DEBUG
+// simple class to do the timing.
+class ElapsedTimer{
+public:
+    ElapsedTimer(QString a):
+    m_blockName(a){
+        qDebug() << m_blockName << " start";
+        m_startTime = QTime::currentTime();
+    }
+    virtual ~ElapsedTimer(){
+        qDebug() << m_blockName << " end - elapsed time ms" << milliseconds();
+    }
+private:
+    ulong milliseconds(){
+        QTime now = QTime::currentTime();
+        return ((now.second()*1000 + now.msec()) - 
+            ( m_startTime.second()*1000 + m_startTime.msec()));
+    }
+private:
+    QString m_blockName;
+    QTime m_startTime;
+};
+#endif
 
 // Q_FUNC_INFO does not print function signature in Symbian..
 
 #ifdef _DEBUG
-#define PHONE_DEBUG(A)                   qDebug() <<A;
+#define PHONE_DEBUG(A)                   qDebug() <<A
 #define PHONE_DEBUG2(A, B)               qDebug() <<A <<B
 #define PHONE_DEBUG3(A, B, C)            qDebug() <<A <<B <<C
 #define PHONE_DEBUG4(A, B, C, D)         qDebug() <<A <<B <<C <<D
 
 #ifdef Q_OS_SYMBIAN
-#define PHONE_TRACE                      qDebug() <<__PRETTY_FUNCTION__;
-#define PHONE_TRACE1(A)                  qDebug() <<__PRETTY_FUNCTION__ <<A;
-#define PHONE_TRACE2(A, B)               qDebug() <<__PRETTY_FUNCTION__ <<A <<B
-#define PHONE_TRACE3(A, B, C)            qDebug() <<__PRETTY_FUNCTION__ <<A <<B <<C
-#define PHONE_TRACE4(A, B, C, D)         qDebug() <<__PRETTY_FUNCTION__ <<A <<B <<C <<D
+#define PHONE_TRACE                      ElapsedTimer __elapsedTime(QString( "%1").arg( __PRETTY_FUNCTION__));
+#define PHONE_TRACE1(A)                  ElapsedTimer __elapsedTime1(QString( "%1 %2").arg( __PRETTY_FUNCTION__ ).arg(A));
+#define PHONE_TRACE2(A, B)               ElapsedTimer __elapsedTime2(QString( "%1 %2 %3").arg( __PRETTY_FUNCTION__).arg(A).arg(B));
+#define PHONE_TRACE3(A, B, C)            ElapsedTimer __elapsedTime3(QString( "%1 %2 %3 %4").arg( __PRETTY_FUNCTION__).arg(A).arg(B).arg(C));
+#define PHONE_TRACE4(A, B, C, D)         ElapsedTimer __elapsedTime4(QString( "%1 %2 %3 %4 %5").arg( __PRETTY_FUNCTION__).arg(A).arg(B).arg(C).arg(D));        
 #else //cannot use __PRETTY_FUNCTION__ in win32
 #define PHONE_TRACE
 #define PHONE_TRACE1(A)                  PHONE_DEBUG(A)