bluetoothengine/headsetsimulator/profiles/hspprofile/inc/debug.h
author michal.sulewski
Wed, 15 Sep 2010 15:59:44 +0200
branchheadsetsimulator
changeset 60 90dbfc0435e3
permissions -rw-r--r--
source code commit
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
60
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
     1
/* 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
     2
 *
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
     3
 * Copyright (c) <2010> Comarch S.A. and/or its subsidiary(-ies).
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
     4
 * All rights reserved.
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
     5
 * This component and the accompanying materials are made available
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
     6
 * under the terms of the License "Eclipse Public License v1.0"
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
     7
 * which accompanies this distribution, and is available
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
     8
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
     9
 *
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    10
 * Original Contributors:
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    11
 * Comarch S.A. - original contribution.
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    12
 *
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    13
 * Contributors:
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    14
 *
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    15
 * Description:
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    16
 *
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    17
 */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    18
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    19
#ifndef HSPPLUGIN_LOGGING_H
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    20
#define HSPPLUGIN_LOGGING_H
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    21
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    22
#include <e32base.h>
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    23
#include "debugconfig.h"
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    24
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    25
enum TPanic
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    26
{
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    27
    EInvalidNullState = 1,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    28
};
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    29
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    30
#ifdef PRJ_ENABLE_TRACE
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    31
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    32
#ifdef PRJ_FILE_TRACE
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    33
#include <flogger.h>
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    34
#else
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    35
#include <e32debug.h>
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    36
#endif
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    37
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    38
NONSHARABLE_CLASS(TOverflowTruncate16) : public TDes16Overflow
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    39
{
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    40
public:
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    41
    void Overflow( TDes16& /*aDes*/)
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    42
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    43
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    44
};
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    45
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    46
NONSHARABLE_CLASS(TOverflowTruncate8) : public TDes8Overflow
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    47
{
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    48
public:
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    49
    void Overflow( TDes8& /*aDes*/)
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    50
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    51
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    52
};
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    53
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    54
inline void Trace( TRefByValue <const TDesC16> aFmt, ... )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    55
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    56
    VA_LIST list;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    57
    VA_START(list,aFmt);
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    58
#ifdef PRJ_FILE_TRACE
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    59
    RFileLogger::WriteFormat(KLogDir, KLogFile, EFileLoggingModeAppend, aFmt, list);
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    60
#else
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    61
    RBuf16 theFinalString;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    62
    theFinalString.Create( KMaxLogLineLength );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    63
    theFinalString.Append( KTracePrefix16 );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    64
    TOverflowTruncate16 overflow;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    65
    theFinalString.AppendFormatList( aFmt, list, &overflow );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    66
    RDebug::Print( theFinalString );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    67
    theFinalString.Close();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    68
#endif
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    69
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    70
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    71
inline void Trace( TRefByValue <const TDesC8> aFmt, ... )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    72
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    73
    VA_LIST list;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    74
    VA_START(list, aFmt);
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    75
#ifdef PRJ_FILE_TRACE
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    76
    RFileLogger::WriteFormat(KLogDir, KLogFile, EFileLoggingModeAppend, aFmt, list);
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    77
#else
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    78
    TOverflowTruncate8 overflow;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    79
    RBuf8 buf8;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    80
    buf8.Create( KMaxLogLineLength );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    81
    buf8.Append( KTracePrefix8 );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    82
    buf8.AppendFormatList( aFmt, list, &overflow );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    83
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    84
    RBuf16 buf16;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    85
    buf16.Create( KMaxLogLineLength );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    86
    buf16.Copy( buf8 );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    87
    TRefByValue <const TDesC> tmpFmt( _L("%S") );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    88
    RDebug::Print( tmpFmt, &buf16 );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    89
    buf8.Close();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    90
    buf16.Close();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    91
#endif
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    92
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    93
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    94
inline void TracePanic( char* aFile, TInt aLine, TInt aPanicCode,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    95
        const TDesC& aPanicCategory )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    96
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    97
    TPtrC8 fullFileName( (const TUint8*) aFile );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    98
    TPtrC8 fileName( fullFileName.Ptr() + fullFileName.LocateReverse( '\\' )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    99
            + 1 );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   100
    RBuf8 buf;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   101
    buf.Create( KMaxLogLineLength );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   102
    buf.Append( KPanicPrefix8 );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   103
    buf.AppendFormat( _L8("%d at line %d in file %S"), aPanicCode, aLine,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   104
            &fileName );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   105
    Trace( buf );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   106
    buf.Close();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   107
    User::Panic( aPanicCategory, aPanicCode );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   108
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   109
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   110
inline void TraceLeave( char* aFile, TInt aLine, TInt aReason )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   111
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   112
    TPtrC8 fullFileName( (const TUint8*) aFile );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   113
    TPtrC8 fileName( fullFileName.Ptr() + fullFileName.LocateReverse( '\\' )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   114
            + 1 );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   115
    RBuf8 buf;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   116
    buf.Create( KMaxLogLineLength );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   117
    buf.Append( KLeavePrefix8 );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   118
    buf.AppendFormat( _L8("%d at line %d in file %S"), aReason, aLine,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   119
            &fileName );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   120
    Trace( buf );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   121
    buf.Close();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   122
    User::Leave( aReason );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   123
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   124
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   125
#define TRACE_INFO(p) {if(KTraceMask & KPRINTINFO) Trace p;}
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   126
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   127
#define TRACE_ERROR(p) {if(KTraceMask & KPRINTERROR) Trace p;}
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   128
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   129
#define TRACE_STATE(p) {if(KTraceMask & KPRINTSTATE) Trace p;}
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   130
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   131
#define TRACE_WARNING(p) {if(KTraceMask & KPRINTWARNING) Trace p;}
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   132
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   133
#define TRACE_INFO_SEG(p) {if(KTraceMask & KPRINTINFO) p;}
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   134
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   135
#define TRACE_ASSERT(GUARD, CODE) {if (!(GUARD)) TracePanic(__FILE__, __LINE__, CODE, KPanicCategory);}
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   136
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   137
#define PANIC(CODE) TracePanic(__FILE__, __LINE__, CODE, KPanicCategory)
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   138
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   139
#define LEAVE_IF_ERROR(REASON) {if (REASON) TraceLeave(__FILE__, __LINE__, REASON);}
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   140
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   141
#define LEAVE_IF_NULL(PTR) {if (!PTR) TraceLeave(__FILE__, __LINE__, KErrGeneral);}
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   142
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   143
#define LEAVE(REASON) {TraceLeave(__FILE__, __LINE__, REASON);}
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   144
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   145
#define TRACE_STATIC_FUNC_ENTRY {if(KTraceMask & KPRINTINFO) { TPtrC8 ptr8((TUint8*)__PRETTY_FUNCTION__); Trace(KFuncEntryFormat8, &ptr8);}}
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   146
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   147
#define TRACE_FUNC_ENTRY {if(KTraceMask & KPRINTINFO) { TPtrC8 ptr8((TUint8*)__PRETTY_FUNCTION__); Trace(KFuncEntryThisFormat8, &ptr8, this);}}
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   148
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   149
#define TRACE_FUNC_EXIT {if(KTraceMask & KPRINTINFO) { TPtrC8 ptr8((TUint8*)__PRETTY_FUNCTION__); Trace(KFuncExitFormat8, &ptr8);}}
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   150
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   151
#define TRACE_STATIC_FUNC {if(KTraceMask & KPRINTINFO) { TPtrC8 ptr8((TUint8*)__PRETTY_FUNCTION__); Trace(KFuncFormat8, &ptr8);}}
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   152
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   153
#define TRACE_FUNC {if(KTraceMask & KPRINTINFO) { TPtrC8 ptr8((TUint8*)__PRETTY_FUNCTION__); Trace(KFuncThisFormat8, &ptr8, this);}}
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   154
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   155
#define RETURN_IF_ERR(ERR) {if(ERR) {TPtrC8 ptr8((TUint8*)__FILE__); Trace(_L8(" RETURN %d at file %S line %d"), ERR, &ptr8, __LINE__); return ERR;}}
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   156
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   157
#else // PRJ_ENABLE_TRACE not defined
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   158
#define TRACE_INFO(p)
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   159
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   160
#define TRACE_ERROR(p)
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   161
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   162
#define TRACE_STATE(p)
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   163
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   164
#define TRACE_WARNING(p)
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   165
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   166
#define TRACE_INFO_SEG(p)
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   167
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   168
#define TRACE_ASSERT(GUARD, CODE)
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   169
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   170
#define PANIC(CODE) {User::Panic(KPanicCategory, CODE);}
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   171
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   172
#define LEAVE_IF_ERROR(REASON) {static_cast<void>(User::LeaveIfError(REASON));}
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   173
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   174
#define LEAVE_IF_NULL(PTR) {static_cast<void>(User::LeaveIfNull(PTR));}
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   175
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   176
#define LEAVE(REASON) {static_cast<void>(User::Leave(REASON));}
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   177
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   178
#define TRACE_STATIC_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   179
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   180
#define TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   181
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   182
#define TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   183
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   184
#define TRACE_STATIC_FUNC
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   185
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   186
#define TRACE_FUNC
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   187
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   188
#define RETURN_IF_ERR(ERR) {if(ERR) return ERR;}
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   189
#endif // PRJ_ENABLE_TRACE
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   190
#endif // HSPPLUGIN_LOGGING_H