contentstorage/castorage/inc/cadebug.h
author hgs
Tue, 23 Mar 2010 23:28:12 +0200
changeset 86 e492551a0d54
parent 85 7feec50967db
child 61 8e5041d13c84
permissions -rw-r--r--
201005
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
85
7feec50967db 201003_02
hgs
parents:
diff changeset
     1
/*
7feec50967db 201003_02
hgs
parents:
diff changeset
     2
 * Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
7feec50967db 201003_02
hgs
parents:
diff changeset
     3
 * All rights reserved.
7feec50967db 201003_02
hgs
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
7feec50967db 201003_02
hgs
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
7feec50967db 201003_02
hgs
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
7feec50967db 201003_02
hgs
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
7feec50967db 201003_02
hgs
parents:
diff changeset
     8
 *
7feec50967db 201003_02
hgs
parents:
diff changeset
     9
 * Initial Contributors:
7feec50967db 201003_02
hgs
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
7feec50967db 201003_02
hgs
parents:
diff changeset
    11
 *
7feec50967db 201003_02
hgs
parents:
diff changeset
    12
 * Contributors:
7feec50967db 201003_02
hgs
parents:
diff changeset
    13
 *
7feec50967db 201003_02
hgs
parents:
diff changeset
    14
 * Description:  cadebug.h
7feec50967db 201003_02
hgs
parents:
diff changeset
    15
 *
7feec50967db 201003_02
hgs
parents:
diff changeset
    16
 */
7feec50967db 201003_02
hgs
parents:
diff changeset
    17
7feec50967db 201003_02
hgs
parents:
diff changeset
    18
#ifndef CADEBUG_H
7feec50967db 201003_02
hgs
parents:
diff changeset
    19
#define CADEBUG_H
7feec50967db 201003_02
hgs
parents:
diff changeset
    20
// INCLUDES
7feec50967db 201003_02
hgs
parents:
diff changeset
    21
#include <e32std.h>
7feec50967db 201003_02
hgs
parents:
diff changeset
    22
#include <flogger.h>
7feec50967db 201003_02
hgs
parents:
diff changeset
    23
// Maximum formatted size resulting from a single DEBUG* call
7feec50967db 201003_02
hgs
parents:
diff changeset
    24
#ifndef MAX_DEBUG_STRING_LENGTH
7feec50967db 201003_02
hgs
parents:
diff changeset
    25
#define MAX_DEBUG_STRING_LENGTH 4096
7feec50967db 201003_02
hgs
parents:
diff changeset
    26
#endif
7feec50967db 201003_02
hgs
parents:
diff changeset
    27
#ifdef _KQTI_MENU_TRACE_PERFORMANCE
7feec50967db 201003_02
hgs
parents:
diff changeset
    28
_LIT( KPerformanceLogDir, "kqti" );
7feec50967db 201003_02
hgs
parents:
diff changeset
    29
_LIT( KPerformanceLogFile, "performance.txt" );
7feec50967db 201003_02
hgs
parents:
diff changeset
    30
#endif
7feec50967db 201003_02
hgs
parents:
diff changeset
    31
7feec50967db 201003_02
hgs
parents:
diff changeset
    32
#ifdef _DEBUG
7feec50967db 201003_02
hgs
parents:
diff changeset
    33
#define APPEND_TO_DEBUG_FILE
7feec50967db 201003_02
hgs
parents:
diff changeset
    34
_LIT(KDebugDirName, "kqti");
7feec50967db 201003_02
hgs
parents:
diff changeset
    35
_LIT(KDebugFileName, "castorage.txt");
7feec50967db 201003_02
hgs
parents:
diff changeset
    36
7feec50967db 201003_02
hgs
parents:
diff changeset
    37
// Load correct mymenudebug.h from module inc directory,
7feec50967db 201003_02
hgs
parents:
diff changeset
    38
// define your application-specific configuration like this:
7feec50967db 201003_02
hgs
parents:
diff changeset
    39
// ----------------------------------------------------------
7feec50967db 201003_02
hgs
parents:
diff changeset
    40
// Debug file - debug output is disabled if the parent dir does not exist
7feec50967db 201003_02
hgs
parents:
diff changeset
    41
7feec50967db 201003_02
hgs
parents:
diff changeset
    42
7feec50967db 201003_02
hgs
parents:
diff changeset
    43
// Replace the current debug file - if not defined appends to the file
7feec50967db 201003_02
hgs
parents:
diff changeset
    44
#ifndef APPEND_TO_DEBUG_FILE
7feec50967db 201003_02
hgs
parents:
diff changeset
    45
#define REPLACE_DEBUG_FILE
7feec50967db 201003_02
hgs
parents:
diff changeset
    46
#endif
7feec50967db 201003_02
hgs
parents:
diff changeset
    47
7feec50967db 201003_02
hgs
parents:
diff changeset
    48
/**
7feec50967db 201003_02
hgs
parents:
diff changeset
    49
 * TODO
7feec50967db 201003_02
hgs
parents:
diff changeset
    50
 *
7feec50967db 201003_02
hgs
parents:
diff changeset
    51
 * @param aData
7feec50967db 201003_02
hgs
parents:
diff changeset
    52
 */
7feec50967db 201003_02
hgs
parents:
diff changeset
    53
static void DoOutput( TDesC8& aData );
7feec50967db 201003_02
hgs
parents:
diff changeset
    54
7feec50967db 201003_02
hgs
parents:
diff changeset
    55
/**
7feec50967db 201003_02
hgs
parents:
diff changeset
    56
 * TODO
7feec50967db 201003_02
hgs
parents:
diff changeset
    57
 */
7feec50967db 201003_02
hgs
parents:
diff changeset
    58
static void DebugStringNarrowL( const char* aFmt, ... )
7feec50967db 201003_02
hgs
parents:
diff changeset
    59
    {
7feec50967db 201003_02
hgs
parents:
diff changeset
    60
    VA_LIST args;
7feec50967db 201003_02
hgs
parents:
diff changeset
    61
    VA_START(args, aFmt);
7feec50967db 201003_02
hgs
parents:
diff changeset
    62
7feec50967db 201003_02
hgs
parents:
diff changeset
    63
    TPtrC8 fmt( reinterpret_cast<const unsigned char *> ( aFmt ) );
7feec50967db 201003_02
hgs
parents:
diff changeset
    64
    HBufC8* buf = HBufC8::NewLC( MAX_DEBUG_STRING_LENGTH );
7feec50967db 201003_02
hgs
parents:
diff changeset
    65
    buf->Des().FormatList( fmt, args );
7feec50967db 201003_02
hgs
parents:
diff changeset
    66
    buf->Des().Append( '\n' );
7feec50967db 201003_02
hgs
parents:
diff changeset
    67
    DoOutput( *buf );
7feec50967db 201003_02
hgs
parents:
diff changeset
    68
    CleanupStack::PopAndDestroy( buf );
7feec50967db 201003_02
hgs
parents:
diff changeset
    69
7feec50967db 201003_02
hgs
parents:
diff changeset
    70
    VA_END(args);
7feec50967db 201003_02
hgs
parents:
diff changeset
    71
    }
7feec50967db 201003_02
hgs
parents:
diff changeset
    72
7feec50967db 201003_02
hgs
parents:
diff changeset
    73
/**
7feec50967db 201003_02
hgs
parents:
diff changeset
    74
 * TODO
7feec50967db 201003_02
hgs
parents:
diff changeset
    75
 */
7feec50967db 201003_02
hgs
parents:
diff changeset
    76
static void DebugStringWideL( const char* aFmt, ... )
7feec50967db 201003_02
hgs
parents:
diff changeset
    77
    {
7feec50967db 201003_02
hgs
parents:
diff changeset
    78
    VA_LIST args;
7feec50967db 201003_02
hgs
parents:
diff changeset
    79
    VA_START(args, aFmt);
7feec50967db 201003_02
hgs
parents:
diff changeset
    80
7feec50967db 201003_02
hgs
parents:
diff changeset
    81
    TPtrC8 fmt( reinterpret_cast<const unsigned char *> ( aFmt ) );
7feec50967db 201003_02
hgs
parents:
diff changeset
    82
    HBufC* fmt16 = HBufC::NewLC( fmt.Length() );
7feec50967db 201003_02
hgs
parents:
diff changeset
    83
    fmt16->Des().Copy( fmt );
7feec50967db 201003_02
hgs
parents:
diff changeset
    84
    HBufC* buf = HBufC::NewLC( MAX_DEBUG_STRING_LENGTH );
7feec50967db 201003_02
hgs
parents:
diff changeset
    85
    buf->Des().FormatList( *fmt16, args );
7feec50967db 201003_02
hgs
parents:
diff changeset
    86
    buf->Des().Append( '\n' );
7feec50967db 201003_02
hgs
parents:
diff changeset
    87
    HBufC8* buf8 = HBufC8::NewLC( buf->Length() );
7feec50967db 201003_02
hgs
parents:
diff changeset
    88
    buf8->Des().Copy( *buf );
7feec50967db 201003_02
hgs
parents:
diff changeset
    89
    DoOutput( *buf8 );
7feec50967db 201003_02
hgs
parents:
diff changeset
    90
    CleanupStack::PopAndDestroy( 3 ); // fmt16, buf, buf8
7feec50967db 201003_02
hgs
parents:
diff changeset
    91
7feec50967db 201003_02
hgs
parents:
diff changeset
    92
    VA_END(args);
7feec50967db 201003_02
hgs
parents:
diff changeset
    93
    }
7feec50967db 201003_02
hgs
parents:
diff changeset
    94
7feec50967db 201003_02
hgs
parents:
diff changeset
    95
/**
7feec50967db 201003_02
hgs
parents:
diff changeset
    96
 * TODO
7feec50967db 201003_02
hgs
parents:
diff changeset
    97
 */
7feec50967db 201003_02
hgs
parents:
diff changeset
    98
static void DebugBufferL( const TDesC8& aBuf )
7feec50967db 201003_02
hgs
parents:
diff changeset
    99
    {
7feec50967db 201003_02
hgs
parents:
diff changeset
   100
    DebugStringNarrowL( "\"%S\"", &aBuf );
7feec50967db 201003_02
hgs
parents:
diff changeset
   101
    }
7feec50967db 201003_02
hgs
parents:
diff changeset
   102
7feec50967db 201003_02
hgs
parents:
diff changeset
   103
/**
7feec50967db 201003_02
hgs
parents:
diff changeset
   104
 * TODO
7feec50967db 201003_02
hgs
parents:
diff changeset
   105
 */
7feec50967db 201003_02
hgs
parents:
diff changeset
   106
static void DebugBufferL( const TDesC& aBuf )
7feec50967db 201003_02
hgs
parents:
diff changeset
   107
    {
7feec50967db 201003_02
hgs
parents:
diff changeset
   108
    DebugStringWideL( "\"%S\"", &aBuf );
7feec50967db 201003_02
hgs
parents:
diff changeset
   109
    }
7feec50967db 201003_02
hgs
parents:
diff changeset
   110
7feec50967db 201003_02
hgs
parents:
diff changeset
   111
/**
7feec50967db 201003_02
hgs
parents:
diff changeset
   112
 * TODO
7feec50967db 201003_02
hgs
parents:
diff changeset
   113
 */
7feec50967db 201003_02
hgs
parents:
diff changeset
   114
static void DebugTimeL( const TTime& aTime )
7feec50967db 201003_02
hgs
parents:
diff changeset
   115
    {
7feec50967db 201003_02
hgs
parents:
diff changeset
   116
    TBuf<64> dateTimeString;
7feec50967db 201003_02
hgs
parents:
diff changeset
   117
    _LIT(KDateString, "%E%D%X%N%Y %1 %2 %3");
7feec50967db 201003_02
hgs
parents:
diff changeset
   118
    aTime.FormatL( dateTimeString, KDateString );
7feec50967db 201003_02
hgs
parents:
diff changeset
   119
    DebugBufferL( dateTimeString );
7feec50967db 201003_02
hgs
parents:
diff changeset
   120
    _LIT(KTimeString, "%-B%:0%J%:1%T%:2%S%.%*C4%:3%+B");
7feec50967db 201003_02
hgs
parents:
diff changeset
   121
    aTime.FormatL( dateTimeString, KTimeString );
7feec50967db 201003_02
hgs
parents:
diff changeset
   122
    DebugBufferL( dateTimeString );
7feec50967db 201003_02
hgs
parents:
diff changeset
   123
    }
7feec50967db 201003_02
hgs
parents:
diff changeset
   124
7feec50967db 201003_02
hgs
parents:
diff changeset
   125
/**
7feec50967db 201003_02
hgs
parents:
diff changeset
   126
 * TODO
7feec50967db 201003_02
hgs
parents:
diff changeset
   127
 */
7feec50967db 201003_02
hgs
parents:
diff changeset
   128
static void DoOutput( TDesC8& aData )
7feec50967db 201003_02
hgs
parents:
diff changeset
   129
    {
7feec50967db 201003_02
hgs
parents:
diff changeset
   130
    RFileLogger::Write( KDebugDirName, KDebugFileName,
7feec50967db 201003_02
hgs
parents:
diff changeset
   131
            EFileLoggingModeAppend, aData );
7feec50967db 201003_02
hgs
parents:
diff changeset
   132
    }
7feec50967db 201003_02
hgs
parents:
diff changeset
   133
#endif
7feec50967db 201003_02
hgs
parents:
diff changeset
   134
7feec50967db 201003_02
hgs
parents:
diff changeset
   135
#ifdef _KQTI_MENU_TRACE_PERFORMANCE
7feec50967db 201003_02
hgs
parents:
diff changeset
   136
7feec50967db 201003_02
hgs
parents:
diff changeset
   137
/**
7feec50967db 201003_02
hgs
parents:
diff changeset
   138
 * TODO
7feec50967db 201003_02
hgs
parents:
diff changeset
   139
 */
7feec50967db 201003_02
hgs
parents:
diff changeset
   140
static void DoOutputPerf(TDesC8& aData)
7feec50967db 201003_02
hgs
parents:
diff changeset
   141
    {
7feec50967db 201003_02
hgs
parents:
diff changeset
   142
    RFileLogger::Write( KPerformanceLogDir,
7feec50967db 201003_02
hgs
parents:
diff changeset
   143
            KPerformanceLogFile,
7feec50967db 201003_02
hgs
parents:
diff changeset
   144
            EFileLoggingModeAppend,
7feec50967db 201003_02
hgs
parents:
diff changeset
   145
            aData );
7feec50967db 201003_02
hgs
parents:
diff changeset
   146
    }
7feec50967db 201003_02
hgs
parents:
diff changeset
   147
7feec50967db 201003_02
hgs
parents:
diff changeset
   148
/**
7feec50967db 201003_02
hgs
parents:
diff changeset
   149
 * TODO
7feec50967db 201003_02
hgs
parents:
diff changeset
   150
 */
7feec50967db 201003_02
hgs
parents:
diff changeset
   151
static void DebugStringNarrowPerfL( const char* aFmt, ... )
7feec50967db 201003_02
hgs
parents:
diff changeset
   152
    {
7feec50967db 201003_02
hgs
parents:
diff changeset
   153
    VA_LIST args;
7feec50967db 201003_02
hgs
parents:
diff changeset
   154
    VA_START(args, aFmt);
7feec50967db 201003_02
hgs
parents:
diff changeset
   155
7feec50967db 201003_02
hgs
parents:
diff changeset
   156
    TPtrC8 fmt( reinterpret_cast<const unsigned char *>( aFmt ) );
7feec50967db 201003_02
hgs
parents:
diff changeset
   157
    HBufC8* buf = HBufC8::NewLC( MAX_DEBUG_STRING_LENGTH );
7feec50967db 201003_02
hgs
parents:
diff changeset
   158
    buf->Des().FormatList( fmt, args );
7feec50967db 201003_02
hgs
parents:
diff changeset
   159
    buf->Des().Append('\n');
7feec50967db 201003_02
hgs
parents:
diff changeset
   160
7feec50967db 201003_02
hgs
parents:
diff changeset
   161
    TTime timestamp;
7feec50967db 201003_02
hgs
parents:
diff changeset
   162
    timestamp.HomeTime();
7feec50967db 201003_02
hgs
parents:
diff changeset
   163
7feec50967db 201003_02
hgs
parents:
diff changeset
   164
    TBuf<64> dateTimeString;
7feec50967db 201003_02
hgs
parents:
diff changeset
   165
    TBuf8<64> dateTimeString8;
7feec50967db 201003_02
hgs
parents:
diff changeset
   166
7feec50967db 201003_02
hgs
parents:
diff changeset
   167
    _LIT( KTimeString, "%:0%J%:1%T%:2%S%.%*C4%:3" );
7feec50967db 201003_02
hgs
parents:
diff changeset
   168
    timestamp.FormatL( dateTimeString, KTimeString );
7feec50967db 201003_02
hgs
parents:
diff changeset
   169
    dateTimeString8.Copy( dateTimeString );
7feec50967db 201003_02
hgs
parents:
diff changeset
   170
    buf->Des().Insert( 0, _L8(" -> ") );
7feec50967db 201003_02
hgs
parents:
diff changeset
   171
    buf->Des().Insert( 0, dateTimeString8 );
7feec50967db 201003_02
hgs
parents:
diff changeset
   172
7feec50967db 201003_02
hgs
parents:
diff changeset
   173
    DoOutputPerf( *buf );
7feec50967db 201003_02
hgs
parents:
diff changeset
   174
    CleanupStack::PopAndDestroy( buf );
7feec50967db 201003_02
hgs
parents:
diff changeset
   175
7feec50967db 201003_02
hgs
parents:
diff changeset
   176
    VA_END(args);
7feec50967db 201003_02
hgs
parents:
diff changeset
   177
    }
7feec50967db 201003_02
hgs
parents:
diff changeset
   178
#endif
7feec50967db 201003_02
hgs
parents:
diff changeset
   179
7feec50967db 201003_02
hgs
parents:
diff changeset
   180
// MACROS
7feec50967db 201003_02
hgs
parents:
diff changeset
   181
// If you output one or more narrow descriptors by using '%S',
7feec50967db 201003_02
hgs
parents:
diff changeset
   182
//    use DEBUGSTRING8
7feec50967db 201003_02
hgs
parents:
diff changeset
   183
// else if you output one or more unicode descriptors by using '%S',
7feec50967db 201003_02
hgs
parents:
diff changeset
   184
//    use DEBUGSTRING16
7feec50967db 201003_02
hgs
parents:
diff changeset
   185
// else
7feec50967db 201003_02
hgs
parents:
diff changeset
   186
//    use DEBUGSTRING
7feec50967db 201003_02
hgs
parents:
diff changeset
   187
//
7feec50967db 201003_02
hgs
parents:
diff changeset
   188
// Narrow and unicode cannot be mixed in a single DEBUGSTRINGx call.
7feec50967db 201003_02
hgs
parents:
diff changeset
   189
7feec50967db 201003_02
hgs
parents:
diff changeset
   190
#ifdef _DEBUG
7feec50967db 201003_02
hgs
parents:
diff changeset
   191
#define DEBUGINIT() DebugInit()
7feec50967db 201003_02
hgs
parents:
diff changeset
   192
#define DEBUGINITSUSPENDED() DebugInit(ETrue)
7feec50967db 201003_02
hgs
parents:
diff changeset
   193
#define DEBUGENABLE() SetDebugEnabled(ETrue)
7feec50967db 201003_02
hgs
parents:
diff changeset
   194
#define DEBUGDISABLE() SetDebugEnabled(EFalse)
7feec50967db 201003_02
hgs
parents:
diff changeset
   195
#define DEBUGSUSPEND() SetDebugSuspended(ETrue)
7feec50967db 201003_02
hgs
parents:
diff changeset
   196
#define DEBUGCONTINUE() SetDebugSuspended(EFalse)
7feec50967db 201003_02
hgs
parents:
diff changeset
   197
#define DEBUG(x) TRAP_IGNORE( DebugStringNarrowL x )
7feec50967db 201003_02
hgs
parents:
diff changeset
   198
#define DEBUG8(x) TRAP_IGNORE( DebugStringNarrowL x )
7feec50967db 201003_02
hgs
parents:
diff changeset
   199
#define DEBUG16(x) TRAP_IGNORE( DebugStringWideL x )
7feec50967db 201003_02
hgs
parents:
diff changeset
   200
#define DEBUGBUFFER(x) TRAP_IGNORE( DebugBufferL x )
7feec50967db 201003_02
hgs
parents:
diff changeset
   201
#define DEBUGTIME(x) TRAP_IGNORE( DebugTimeL x )
7feec50967db 201003_02
hgs
parents:
diff changeset
   202
#else
7feec50967db 201003_02
hgs
parents:
diff changeset
   203
#define DEBUGINIT()
7feec50967db 201003_02
hgs
parents:
diff changeset
   204
#define DEBUGINITSUSPENDED()
7feec50967db 201003_02
hgs
parents:
diff changeset
   205
#define DEBUGENABLE()
7feec50967db 201003_02
hgs
parents:
diff changeset
   206
#define DEBUGDISABLE()
7feec50967db 201003_02
hgs
parents:
diff changeset
   207
#define DEBUGSUSPEND()
7feec50967db 201003_02
hgs
parents:
diff changeset
   208
#define DEBUGCONTINUE()
7feec50967db 201003_02
hgs
parents:
diff changeset
   209
#define DEBUG(x)
7feec50967db 201003_02
hgs
parents:
diff changeset
   210
#define DEBUG8(x)
7feec50967db 201003_02
hgs
parents:
diff changeset
   211
#define DEBUG16(x)
7feec50967db 201003_02
hgs
parents:
diff changeset
   212
#define DEBUGBUFFER(x)
7feec50967db 201003_02
hgs
parents:
diff changeset
   213
#define DEBUGTIME(x)
7feec50967db 201003_02
hgs
parents:
diff changeset
   214
#endif
7feec50967db 201003_02
hgs
parents:
diff changeset
   215
7feec50967db 201003_02
hgs
parents:
diff changeset
   216
#ifdef _KQTI_MENU_TRACE_PERFORMANCE
7feec50967db 201003_02
hgs
parents:
diff changeset
   217
#define MMPERF(x) TRAP_IGNORE( DebugStringNarrowPerfL x )
7feec50967db 201003_02
hgs
parents:
diff changeset
   218
#else
7feec50967db 201003_02
hgs
parents:
diff changeset
   219
#define MMPERF(x)
7feec50967db 201003_02
hgs
parents:
diff changeset
   220
#endif
7feec50967db 201003_02
hgs
parents:
diff changeset
   221
7feec50967db 201003_02
hgs
parents:
diff changeset
   222
#endif // MENUDEBUG_H