homescreenapp/stateplugins/hsmenuworkerstateplugin/inc/hsmenustates_global.h
changeset 35 f9ce957a272c
child 36 cdae8c6c3876
equal deleted inserted replaced
5:c743ef5928ba 35:f9ce957a272c
       
     1 /*
       
     2  * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3  * All rights reserved.
       
     4  * This component and the accompanying materials are made available
       
     5  * under the terms of "Eclipse Public License v1.0"
       
     6  * which accompanies this distribution, and is available
       
     7  * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8  *
       
     9  * Initial Contributors:
       
    10  * Nokia Corporation - initial contribution.
       
    11  *
       
    12  * Contributors:
       
    13  *
       
    14  * Description:
       
    15  *
       
    16  */
       
    17 
       
    18 #ifndef HSMENUSTATES_GLOBAL_H
       
    19 #define HSMENUSTATES_GLOBAL_H
       
    20 
       
    21 #include <QDebug>
       
    22 #include <QtGlobal>
       
    23 
       
    24 #ifndef MENUSTATES_UNITTEST
       
    25 #define HS_STATES_TEST_CLASS(className)
       
    26 #else
       
    27 #define HS_STATES_TEST_CLASS(className) class className;
       
    28 #endif
       
    29 
       
    30 #ifndef MENUSTATES_UNITTEST
       
    31 #define HS_STATES_TEST_FRIEND_CLASS(className)
       
    32 #else
       
    33 #define HS_STATES_TEST_FRIEND_CLASS(className) friend class className;
       
    34 #endif
       
    35 
       
    36 static const char *const HS_MENU_WORKER_STATE_PROVIDER_LAYOUT =
       
    37     ":/xml/hsmenuworkerstateplugin.docml";
       
    38 
       
    39 /*!
       
    40  To enable logging of function entry and exit use the following flag for qmake:
       
    41  -config nft
       
    42  To include in logs extra information about RAM and heap usage, define an additional constant e.g. in ProductVariant.hrh:
       
    43  #define NFT_RAM
       
    44  */
       
    45 
       
    46 #ifdef NFT
       
    47 #ifdef Q_OS_SYMBIAN
       
    48 #include <hal.h>
       
    49 #include <e32std.h>
       
    50 #endif
       
    51 #endif
       
    52 
       
    53 #ifdef NFT
       
    54 
       
    55 #define HSMENUTEST(aText) qDebug() << QString(aText)
       
    56 
       
    57 #ifdef Q_OS_SYMBIAN
       
    58 #ifdef NFT_RAM
       
    59 #define HSMENUTEST_FREERAM_ENTRY(function) \
       
    60     TInt HSMENUTEST_ENTRY_RAM(0); \
       
    61     TInt HSMENUTEST_ENTRY_HEAP(0); \
       
    62     TInt HSMENUTEST_ENTRY_HEAP_SIZE(0); \
       
    63     { \
       
    64         TInt allRAM(0); \
       
    65         HAL::Get(HAL::EMemoryRAM, allRAM); \
       
    66         HAL::Get(HAL::EMemoryRAMFree, HSMENUTEST_ENTRY_RAM); \
       
    67         RHeap &heap = User::Heap(); \
       
    68         TInt biggestBlock(0); \
       
    69         HSMENUTEST_ENTRY_HEAP = heap.Available(biggestBlock); \
       
    70         HSMENUTEST_ENTRY_HEAP_SIZE = heap.Size(); \
       
    71         qDebug("(nft) " function " - Memory (kB) - Free RAM: %d, Heap size: %d, Free heap: %d", \
       
    72                HSMENUTEST_ENTRY_RAM >> 10, HSMENUTEST_ENTRY_HEAP_SIZE >> 10, \
       
    73                HSMENUTEST_ENTRY_HEAP >> 10); \
       
    74     }
       
    75 
       
    76 #define HSMENUTEST_FREERAM_EXIT(function) \
       
    77     { \
       
    78         TInt allRAM(0); \
       
    79         TInt freeRAM(0); \
       
    80         HAL::Get(HAL::EMemoryRAM, allRAM); \
       
    81         HAL::Get(HAL::EMemoryRAMFree, freeRAM); \
       
    82         RHeap &heap = User::Heap(); \
       
    83         TInt biggestBlock(0); \
       
    84         TInt heapFree = heap.Available(biggestBlock); \
       
    85         TInt heapSize = heap.Size(); \
       
    86         qDebug("(nft) " function " - Memory (kB) - Free RAM: %d, Heap size: %d, Free heap: %d", \
       
    87                freeRAM >> 10, heapSize >> 10, heapFree >> 10); \
       
    88         qDebug("(nft) " function " - Memory (kB) - RAM diff: %d, Heap size diff: %d, Free heap diff: %d", \
       
    89                (freeRAM-HSMENUTEST_ENTRY_RAM) >> 10, (heapSize-HSMENUTEST_ENTRY_HEAP_SIZE) >> 10, \
       
    90                (heapFree-HSMENUTEST_ENTRY_HEAP) >> 10); \
       
    91     }
       
    92 
       
    93 #else
       
    94 
       
    95 #define HSMENUTEST_FREERAM_ENTRY(function)
       
    96 #define HSMENUTEST_FREERAM_EXIT(function)
       
    97 
       
    98 #endif
       
    99 
       
   100 #define HSMENUTESTTIME_ENTRY(function) \
       
   101     TInt64 HSMENUTEST_ENTRY_TIME(0); \
       
   102     { \
       
   103         TTime t; \
       
   104         t.UniversalTime(); \
       
   105         qDebug("\n" function "      entry:%20lld", t.Int64()); \
       
   106         HSMENUTEST_ENTRY_TIME = t.Int64(); \
       
   107     }
       
   108 
       
   109 #define HSMENUTESTTIME_EXIT(function) { \
       
   110         TTime t; \
       
   111         t.UniversalTime(); \
       
   112         qDebug("\n" function "      entry:%20lld\n" function " difference:%20lld", t.Int64(), \
       
   113                t.Int64()-HSMENUTEST_ENTRY_TIME); \
       
   114     }
       
   115 
       
   116 #define HSMENUTEST_FUNC_ENTRY(function)   HSMENUTEST_FREERAM_ENTRY(function) \
       
   117     HSMENUTESTTIME_ENTRY(function)
       
   118 #define HSMENUTEST_FUNC_EXIT(function)    HSMENUTESTTIME_EXIT(function) \
       
   119     HSMENUTEST_FREERAM_EXIT(function)
       
   120 
       
   121 #else //Q_OS_SYMBIAN
       
   122 #define HSMENUTEST_FUNC_ENTRY(function)   qDebug()<< function << " entry";
       
   123 #define HSMENUTEST_FUNC_EXIT(function)    qDebug()<< function << " exit";
       
   124 #endif //Q_OS_SYMBIAN
       
   125 #else //NFT
       
   126 #define HSMENUTEST_FUNC_ENTRY(function)
       
   127 #define HSMENUTEST_FUNC_EXIT(function)
       
   128 #endif //NFT
       
   129 
       
   130 #endif //HSMENUSTATES_GLOBAL_H