bluetoothengine/headsetsimulator/profiles/hfpprofile/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 HFPPLUGIN_LOGGING_H
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    20
#define HFPPLUGIN_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
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    99
            fileName(fullFileName.Ptr() + fullFileName.LocateReverse('\\')
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   100
                    + 1);
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   101
    RBuf8 buf;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   102
    buf.Create(KMaxLogLineLength);
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   103
    buf.Append(KPanicPrefix8);
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   104
    buf.AppendFormat(_L8("%d at line %d in file %S"), aPanicCode, aLine,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   105
            &fileName);
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   106
    Trace(buf);
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   107
    buf.Close();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   108
    User::Panic(aPanicCategory, aPanicCode);
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   109
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   110
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   111
inline void TraceLeave(char* aFile, TInt aLine, TInt aReason)
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   112
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   113
    TPtrC8 fullFileName((const TUint8*) aFile);
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   114
    TPtrC8
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   115
            fileName(fullFileName.Ptr() + fullFileName.LocateReverse('\\')
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   116
                    + 1);
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   117
    RBuf8 buf;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   118
    buf.Create(KMaxLogLineLength);
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   119
    buf.Append(KLeavePrefix8);
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   120
    buf.AppendFormat(_L8("%d at line %d in file %S"), aReason, aLine,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   121
            &fileName);
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   122
    Trace(buf);
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   123
    buf.Close();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   124
    User::Leave(aReason);
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   125
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   126
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   127
#define TRACE_INFO(p) {if(KTraceMask & KPRINTINFO) Trace p;}
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   128
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   129
#define TRACE_ERROR(p) {if(KTraceMask & KPRINTERROR) Trace p;}
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   130
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   131
#define TRACE_STATE(p) {if(KTraceMask & KPRINTSTATE) Trace p;}
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   132
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   133
#define TRACE_WARNING(p) {if(KTraceMask & KPRINTWARNING) Trace p;}
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   134
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   135
#define TRACE_INFO_SEG(p) {if(KTraceMask & KPRINTINFO) p;}
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   136
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   137
#define TRACE_ASSERT(GUARD, CODE) {if (!(GUARD)) 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 PANIC(CODE) TracePanic(__FILE__, __LINE__, CODE, KPanicCategory)
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   140
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   141
#define LEAVE_IF_ERROR(REASON) {if (REASON) TraceLeave(__FILE__, __LINE__, REASON);}
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   142
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   143
#define LEAVE_IF_NULL(PTR) {if (!PTR) TraceLeave(__FILE__, __LINE__, KErrGeneral);}
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   144
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   145
#define LEAVE(REASON) {TraceLeave(__FILE__, __LINE__, REASON);}
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   146
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   147
#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
   148
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   149
#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
   150
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   151
#define TRACE_FUNC_EXIT {if(KTraceMask & KPRINTINFO) { TPtrC8 ptr8((TUint8*)__PRETTY_FUNCTION__); Trace(KFuncExitFormat8, &ptr8);}}
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   152
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   153
#define TRACE_STATIC_FUNC {if(KTraceMask & KPRINTINFO) { TPtrC8 ptr8((TUint8*)__PRETTY_FUNCTION__); Trace(KFuncFormat8, &ptr8);}}
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   154
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   155
#define TRACE_FUNC {if(KTraceMask & KPRINTINFO) { TPtrC8 ptr8((TUint8*)__PRETTY_FUNCTION__); Trace(KFuncThisFormat8, &ptr8, this);}}
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   156
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   157
#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
   158
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   159
#else // PRJ_ENABLE_TRACE not defined
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   160
#define TRACE_INFO(p)
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   161
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   162
#define TRACE_ERROR(p)
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   163
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   164
#define TRACE_STATE(p)
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   165
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   166
#define TRACE_WARNING(p)
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   167
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   168
#define TRACE_INFO_SEG(p)
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   169
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   170
#define TRACE_ASSERT(GUARD, CODE)
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   171
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   172
#define PANIC(CODE) {User::Panic(KPanicCategory, CODE);}
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   173
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   174
#define LEAVE_IF_ERROR(REASON) {static_cast<void>(User::LeaveIfError(REASON));}
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   175
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   176
#define LEAVE_IF_NULL(PTR) {static_cast<void>(User::LeaveIfNull(PTR));}
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   177
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   178
#define LEAVE(REASON) {static_cast<void>(User::Leave(REASON));}
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   179
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   180
#define TRACE_STATIC_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_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   183
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   184
#define TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   185
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   186
#define TRACE_STATIC_FUNC
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   187
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   188
#define TRACE_FUNC
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   189
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   190
#define RETURN_IF_ERR(ERR) {if(ERR) return ERR;}
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   191
#endif // PRJ_ENABLE_TRACE
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   192
#endif // HFPPLUGIN_LOGGING_H