bluetoothengine/btnotif/inc/bluetoothtrace.h
author hgs
Tue, 19 Oct 2010 15:09:34 +0300
changeset 70 f5508c13dfe0
parent 29 48ae3789ce00
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
29
48ae3789ce00 201017_2
hgs
parents:
diff changeset
     1
/*
70
hgs
parents: 29
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents: 29
diff changeset
     3
* All rights reserved.
hgs
parents: 29
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents: 29
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents: 29
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents: 29
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
29
48ae3789ce00 201017_2
hgs
parents:
diff changeset
     8
*
70
hgs
parents: 29
diff changeset
     9
* Initial Contributors:
hgs
parents: 29
diff changeset
    10
* Nokia Corporation - initial contribution.
29
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    11
*
70
hgs
parents: 29
diff changeset
    12
* Contributors:
29
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    13
*
70
hgs
parents: 29
diff changeset
    14
* Description:  BtDeviceDialogWidget class declaration.
hgs
parents: 29
diff changeset
    15
*
29
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    16
*/
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    17
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    18
#ifndef BLUETOOTHTRACE_H
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    19
#define BLUETOOTHTRACE_H
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    20
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    21
#include <e32base.h>
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    22
#include "traceconfig.h"
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    23
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    24
/*
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    25
 * Common tracing utility definition to be used by Bluetooth projects.
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    26
 * The configuration is loaded from traceconfig.h which shall be private for
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    27
 * each individual project.
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    28
 * 
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    29
 * In this utility, a set of OST-alike tracing macros are defined. 
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    30
 * (The purpose is to ease migration to OST in future.)
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    31
 * 
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    32
 * Individual project can also define new macros based on this utility in
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    33
 * its own space.
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    34
 * 
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    35
 */
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    36
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    37
#ifdef BLUETOOTHTRACE_ENABLED
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    38
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    39
#ifdef BLUETOOTHTRACE_MEDIA_OST
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    40
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    41
/**
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    42
 * Convert own macros to OST macros when OST tracing is used.
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    43
 * In OST tracing, aTraceName must be a unique identifier in scope of a module. 
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    44
 * Thus many OST compiling errors may occur if the same TraceName is used in multiple
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    45
 * tracing lines where tracing is miigrated from non-OST to OST. 
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    46
 * The fix is to renaming the TraceName:s to be unique.
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    47
 */
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    48
#include <OpenSystemTrace.h>
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    49
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    50
#define BOstrace0( aGroupName, aTraceName, aTraceText ) \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    51
    OstTrace0( aGroupName, aTraceName, aTraceText )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    52
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    53
#define BOstrace1( aGroupName, aTraceName, aTraceText, aParam ) \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    54
    OstTrace1( aGroupName, aTraceName, aTraceText, aParam )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    55
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    56
#define BOstraceData( aGroupName, aTraceName, aTraceText, aPtr, aLength ) \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    57
    OstTraceData( aGroupName, aTraceName, aTraceText, aPtr, aLength )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    58
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    59
#define BOstraceExt1( aGroupName, aTraceName, aTraceText, aParam ) \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    60
    OstTraceExt1( aGroupName, aTraceName, aTraceText, aParam )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    61
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    62
#define BOstraceExt2( aGroupName, aTraceName, aTraceText, aParam1, aParam2 ) \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    63
    OstTraceExt2( aGroupName, aTraceName, aTraceText, aParam1, aParam2 )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    64
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    65
#define BOstraceExt3( aGroupName, aTraceName, aTraceText, aParam1, aParam2, aParam3 ) \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    66
    OstTraceExt3( aGroupName, aTraceName, aTraceText, aParam1, aParam2, aParam3 )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    67
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    68
#define BOstraceExt4( aGroupName, aTraceName, aTraceText, aParam1, aParam2, aParam3, aParam4 ) \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    69
    OstTraceExt4( aGroupName, aTraceName, aTraceText, aParam1, aParam2, aParam3, aParam4 )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    70
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    71
#define BOstraceExt5( aGroupName, aTraceName, aTraceText, aParam1, aParam2, aParam3, aParam4, aParam5 ) \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    72
    OstTraceExt5( aGroupName, aTraceName, aTraceText, aParam1, aParam2, aParam3, aParam4, aParam5 )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    73
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    74
#define BOstraceFunctionEntry0( aTraceName ) \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    75
    OstTraceFunctionEntry0( aTraceName )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    76
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    77
#define BOstraceFunctionEntry1( aTraceName, aInstance ) \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    78
    OstTraceFunctionEntry1( aTraceName, aInstance )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    79
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    80
#define BOstraceFunctionEntryExt(aTraceName, aInstance, aArg) \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    81
    OstTraceFunctionEntryExt(aTraceName, aInstance, aArg)
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    82
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    83
#define BOstraceFunctionExit0( aTraceName ) \ 
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    84
    OstTraceFunctionExit0( aTraceName )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    85
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    86
#define BOstraceFunctionExit1( aTraceName, aInstance ) \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    87
    OstTraceFunctionExit1( aTraceName, aInstance )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    88
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    89
#define BOstraceFunctionExitExt(aTraceName, aInstance, aRetval) \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    90
    OstTraceFunctionExitExt(aTraceName, aInstance, aRetval)
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    91
    
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    92
#define BOstraceEventStart0( aTraceName, aEventName ) \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    93
    OstTraceEventStart0( aTraceName, aEventName )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    94
    
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    95
#define BOstraceEventStart1( aTraceName, aEventName, aParam ) \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    96
    OstTraceEventStart1( aTraceName, aEventName, aParam )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    97
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    98
#define BOstraceEventStop( aTraceName, aEventName ) \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    99
    OstTraceEventStop( aTraceName, aEventName )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   100
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   101
#define BOstraceState0( aTraceName, aStateName, aNewState ) \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   102
    OstTraceState0( aTraceName, aStateName, aNewState )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   103
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   104
#define BOstraceState1( aTraceName, aStateName, aNewState, aInstance ) \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   105
    OstTraceState1( aTraceName, aStateName, aNewState, aInstance )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   106
    
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   107
#else  // BLUETOOTHTRACE_MEDIA_OST
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   108
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   109
#ifdef BLUETOOTHTRACE_MEDIA_FILE
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   110
#include <flogger.h>
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   111
#else   
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   112
#include <e32debug.h>
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   113
#endif
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   114
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   115
/**
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   116
 * When tracing compilation with OST is disabled, the TraceName in each OST trace line
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   117
 * is ignored, that is, the Trace Names are not checked at compiling time, neither
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   118
 * are they written into the specified trace output media.
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   119
 */
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   120
    
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   121
/**
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   122
 * Handlers below are used for tolerating overflow of formatting strings.
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   123
 * to trucate rather than panic the caller.
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   124
 */
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   125
NONSHARABLE_CLASS( TBtTraceOflowTruncate8 ) : public TDes8Overflow
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   126
    {
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   127
public:
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   128
    void Overflow( TDes8& /*aDes*/ ) {}
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   129
    };
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   130
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   131
NONSHARABLE_CLASS( TBtTraceOflowTruncate16 ) : public TDes16Overflow
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   132
    {
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   133
public:
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   134
    void Overflow( TDes16& /*aDes*/ ) {}
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   135
    };
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   136
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   137
/**
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   138
 * internal tracing implementation, do not use it out of this file.
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   139
 */
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   140
inline void Trace(const TDesC &trGrp, const TDesC &trTxt)
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   141
{
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   142
    TPtrC cp(KComponentName);
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   143
#ifdef BLUETOOTHTRACE_MEDIA_FILE
70
hgs
parents: 29
diff changeset
   144
    RFileLogger::WriteFormat( KLogDir, KLogFile, EFileLoggingModeAppend, _L("%S%S%S"),&cp,&trGrp,&trTxt);
29
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   145
#else
70
hgs
parents: 29
diff changeset
   146
    RDebug::Print( _L("%S%S%S"),&cp,&trGrp,&trTxt );
29
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   147
#endif
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   148
}
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   149
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   150
/*
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   151
 * trace with no parameters
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   152
 */
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   153
#define BOstrace0( aGroupName, aTraceName, aTraceText ) \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   154
{\
70
hgs
parents: 29
diff changeset
   155
    Trace( aGroupName, aTraceText ); \
29
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   156
}
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   157
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   158
/*
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   159
 * trace with one 32-bit parameter
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   160
 */
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   161
#define BOstrace1( aGroupName, aTraceName, aTraceText, aParam ) \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   162
{\
70
hgs
parents: 29
diff changeset
   163
    TBuf<200> buf; TBtTraceOflowTruncate16 overflow; \
hgs
parents: 29
diff changeset
   164
    buf.AppendFormat(aTraceText, &overflow, aParam); \
hgs
parents: 29
diff changeset
   165
    Trace( aGroupName, buf ); \
29
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   166
}
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   167
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   168
/*
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   169
 * trace with more than 32 bits of data. Not supported
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   170
 */
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   171
#define BOstraceData( aGroupName, aTraceName, aTraceText, aPtr, aLength ) 
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   172
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   173
/*
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   174
 * trace with one parameter that is not 32-bit integer
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   175
 */
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   176
#define BOstraceExt1( aGroupName, aTraceName, aTraceText, aParam ) \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   177
    BOstrace1( aGroupName, aTraceName, aTraceText, aParam )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   178
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   179
/*
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   180
 * trace with two parameters.
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   181
 */
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   182
#define BOstraceExt2( aGroupName, aTraceName, aTraceText, aParam1, aParam2 ) \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   183
{\
70
hgs
parents: 29
diff changeset
   184
    TBuf<200> buf; TBtTraceOflowTruncate16 overflow; \
hgs
parents: 29
diff changeset
   185
    buf.AppendFormat(aTraceText, &overflow, aParam1, aParam2); \
hgs
parents: 29
diff changeset
   186
    Trace( aGroupName, buf ); \
29
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   187
}
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   188
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   189
/*
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   190
 * trace with three parameters.
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   191
 */
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   192
#define BOstraceExt3( aGroupName, aTraceName, aTraceText, aParam1, aParam2, aParam3 ) \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   193
{\
70
hgs
parents: 29
diff changeset
   194
    TBuf<200> buf; TBtTraceOflowTruncate16 overflow; \
hgs
parents: 29
diff changeset
   195
    buf.AppendFormat(aTraceText, &overflow, aParam1, aParam2, aParam3); \
hgs
parents: 29
diff changeset
   196
    Trace( aGroupName, buf ); \
29
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   197
}
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   198
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   199
/*
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   200
 * trace with four parameters
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   201
 */    
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   202
#define BOstraceExt4( aGroupName, aTraceName, aTraceText, aParam1, aParam2, aParam3, aParam4 ) \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   203
{\
70
hgs
parents: 29
diff changeset
   204
    TBuf<200> buf; TBtTraceOflowTruncate16 overflow; \
hgs
parents: 29
diff changeset
   205
    buf.AppendFormat(aTraceText, &overflow, aParam1, aParam2, aParam3, aParam4); \
hgs
parents: 29
diff changeset
   206
    Trace( aGroupName, buf ); \
29
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   207
}
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   208
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   209
/*
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   210
 * trace with five parameters
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   211
 */   
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   212
#define BOstraceExt5( aGroupName, aTraceName, aTraceText, aParam1, aParam2, aParam3, aParam4, aParam5 ) \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   213
{\
70
hgs
parents: 29
diff changeset
   214
    TBuf<200> buf; TBtTraceOflowTruncate16 overflow; \
hgs
parents: 29
diff changeset
   215
    buf.AppendFormat(aTraceText, &overflow, aParam1, aParam2, aParam3, aParam4, aParam5); \
hgs
parents: 29
diff changeset
   216
    Trace( aGroupName, buf ); \
29
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   217
}
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   218
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   219
/*
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   220
 * Function entry trace without extra parameters. 
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   221
 * The trace is mapped to TRACE_API group.
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   222
 */
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   223
#define BOstraceFunctionEntry0( aTraceName ) \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   224
{\
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   225
    TPtrC8 func( (TUint8*) __PRETTY_FUNCTION__ ); \
70
hgs
parents: 29
diff changeset
   226
    TBuf<200> buf; buf.Copy( func.Left(150) ); buf.Insert(0, _L(">> ") );\
hgs
parents: 29
diff changeset
   227
    Trace( _L("[ API ]"), buf ); \
29
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   228
}
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   229
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   230
/*
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   231
 * Function entry trace with a parameter representing the instance identifier, e.g.
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   232
 * "this" pointer.
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   233
 * The trace is mapped to TRACE_API group.
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   234
 */
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   235
#define BOstraceFunctionEntry1( aTraceName, aInstance ) \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   236
{\
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   237
    TPtrC8 func( (TUint8*) __PRETTY_FUNCTION__ ); \
70
hgs
parents: 29
diff changeset
   238
    TBuf<200> buf; buf.Copy( func.Left(150) ); buf.Insert(0, _L(">> ") ); \
29
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   239
    TBtTraceOflowTruncate16 overflow; \
70
hgs
parents: 29
diff changeset
   240
    buf.AppendFormat(_L(" 0x%X(%d)"), &overflow, aInstance, aInstance); \
hgs
parents: 29
diff changeset
   241
    Trace( _L("[ API ]"), buf ); \
29
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   242
}
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   243
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   244
/*
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   245
 * Function entry trace, which traces function parameters.
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   246
 * The trace is mapped to TRACE_API group. 
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   247
 */
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   248
#define BOstraceFunctionEntryExt(aTraceName, aInstance, aArg) \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   249
{ \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   250
    TPtrC8 func( (TUint8*) __PRETTY_FUNCTION__ ); \
70
hgs
parents: 29
diff changeset
   251
    TBuf<200> buf; buf.Copy( func.Left(150) );  buf.Insert(0, _L(">> ")); \
29
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   252
    TBtTraceOflowTruncate16 overflow; \
70
hgs
parents: 29
diff changeset
   253
    buf.AppendFormat(_L(" 0x%X(%d) arg %d"), &overflow, aInstance, aInstance, aArg); \
hgs
parents: 29
diff changeset
   254
    Trace( _L("[ API ]"), buf ); \
29
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   255
}
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   256
/*
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   257
 * Function exit trace without extra parameters. 
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   258
 * The trace is mapped to TRACE_API group.
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   259
 */
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   260
#define BOstraceFunctionExit0( aTraceName ) \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   261
{\
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   262
    TPtrC8 func( (TUint8*) __PRETTY_FUNCTION__ ); \
70
hgs
parents: 29
diff changeset
   263
    TBuf<200> buf; buf.Copy( func.Left(150) );  buf.Insert(0, _L("<< ")); \
hgs
parents: 29
diff changeset
   264
    Trace( _L("[ API ]"), buf ); \
29
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   265
}
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   266
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   267
/*
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   268
 * Function exit trace with a parameter representing the instance identifier
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   269
 * for example "this" pointer.
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   270
 * The trace is mapped to TRACE_API group.
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   271
 */
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   272
#define BOstraceFunctionExit1( aTraceName, aInstance ) \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   273
{\
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   274
    TPtrC8 func( (TUint8*) __PRETTY_FUNCTION__ ); \
70
hgs
parents: 29
diff changeset
   275
    TBuf<200> buf; buf.Copy( func.Left(150) );  buf.Insert(0, _L("<< ")); \
29
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   276
    TBtTraceOflowTruncate16 overflow; \
70
hgs
parents: 29
diff changeset
   277
    buf.AppendFormat(_L(" 0x%X(%d)"), &overflow, aInstance, aInstance); \
hgs
parents: 29
diff changeset
   278
    Trace( _L("[ API ]"), buf ); \
29
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   279
}
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   280
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   281
/*
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   282
 * Function exit trace with parameters representing the instance identifier, 
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   283
 * for example "this" pointer, and return value.
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   284
 * The trace is mapped to TRACE_API group.
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   285
 */
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   286
#define BOstraceFunctionExitExt(aTraceName, aInstance, aRetval) \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   287
{\
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   288
    TPtrC8 func( (TUint8*) __PRETTY_FUNCTION__ ); \
70
hgs
parents: 29
diff changeset
   289
    TBuf<200> buf; buf.Copy( func.Left(150) );  buf.Insert(0, _L("<< ")); \
29
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   290
    TBtTraceOflowTruncate16 overflow; \
70
hgs
parents: 29
diff changeset
   291
    buf.AppendFormat(_L(" 0x%X(%d) ret %d"), &overflow, aInstance, aInstance, aRetval); \
hgs
parents: 29
diff changeset
   292
    Trace( _L("[ API ]"), buf ); \
29
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   293
}
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   294
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   295
/*
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   296
 * Performance measurement event start trace without extra parameters. 
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   297
 * The trace is mapped to TRACE_PERFORMANCE group.
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   298
 */
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   299
#define BOstraceEventStart0( aTraceName, aEventName ) \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   300
{\
70
hgs
parents: 29
diff changeset
   301
    TBuf<200> buf(_L("[Start] ")); buf.Append( aEventName ); \
hgs
parents: 29
diff changeset
   302
    Trace( _L("[PFMAN]"), buf ); \
29
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   303
}
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   304
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   305
/*
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   306
 * Performance measurement event start trace with single 32-bit parameter. 
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   307
 * The trace is mapped to TRACE_PERFORMANCE group.
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   308
 */
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   309
#define BOstraceEventStart1( aTraceName, aEventName, aParam ) \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   310
{\
70
hgs
parents: 29
diff changeset
   311
    TPtrC evt(aEventName); TBuf<200> buf; \
29
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   312
    TBtTraceOflowTruncate16 overflow; \
70
hgs
parents: 29
diff changeset
   313
    buf.AppendFormat(_L("[Start] %S 0x%X(%d)"), &overflow, &evt, aParam, aParam ); \
hgs
parents: 29
diff changeset
   314
    Trace( _L("[PFMAN]"), buf ); \
29
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   315
}
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   316
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   317
/*
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   318
 * Performance measurement event end trace. 
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   319
 * The trace is mapped to TRACE_PERFORMANCE group.
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   320
 */
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   321
#define BOstraceEventStop( aTraceName, aEventName ) \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   322
{\
70
hgs
parents: 29
diff changeset
   323
    TBuf<200> buf(_L("[Stop] ")); buf.Append( aEventName ); \
hgs
parents: 29
diff changeset
   324
    Trace( _L("[PFMAN]"), buf ); \
29
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   325
}
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   326
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   327
/*
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   328
 * State transition event.
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   329
 * The trace is mapped to TRACE_STATE group.
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   330
 */
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   331
#define BOstraceState0( aTraceName, aStateName, aNewState ) \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   332
{\
70
hgs
parents: 29
diff changeset
   333
    TPtrC evt(aStateName); TBuf<200> buf; \
29
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   334
    TBtTraceOflowTruncate16 overflow; \
70
hgs
parents: 29
diff changeset
   335
    buf.AppendFormat(_L("%S 0x%X(%d)"), &overflow, &evt, aNewState, aNewState ); \
hgs
parents: 29
diff changeset
   336
    Trace( _L("[STATE]"), buf ); \
29
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   337
}
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   338
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   339
/*
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   340
 * State transition event with instance identifier.
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   341
 * The trace is mapped to TRACE_STATE group.
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   342
 */
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   343
#define BOstraceState1( aTraceName, aStateName, aNewState, aInstance ) \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   344
{\
70
hgs
parents: 29
diff changeset
   345
    TPtrC evt(aStateName); TBuf<200> buf; \
29
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   346
    TBtTraceOflowTruncate16 overflow; \
70
hgs
parents: 29
diff changeset
   347
    buf.AppendFormat(_L("%S 0x%X(%d) instance=0x%X(%d)"), &overflow, &evt, aNewState, aNewState, aInstance, aInstance ); \
hgs
parents: 29
diff changeset
   348
    Trace( _L("[STATE]"), buf ); \
29
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   349
}
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   350
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   351
#endif // BLUETOOTHTRACE_MEDIA_OST
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   352
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   353
// Extended tracing macros facilitating domain specific tracing needs:
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   354
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   355
/*
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   356
 * A block of source code merely for tracing purpose.
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   357
 */
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   358
#define BtTraceBlock( exp ) {exp}
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   359
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   360
/*
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   361
 * trace macro for BT device address printing with an additional trace text. 
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   362
 * aParam must be TBTDevAddr type.
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   363
 */
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   364
#define BtTraceBtAddr1( aGroupName, aTraceName, aTraceText, aParam ) \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   365
{ \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   366
    TBuf<12> buf; \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   367
    aParam.GetReadable( buf ); TPtrC p2(buf);\
70
hgs
parents: 29
diff changeset
   368
    BOstraceExt2( aGroupName, aTraceName, "%S%S", aTraceText, &p2 ); \
29
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   369
}
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   370
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   371
/*
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   372
 * trace macro for BT device address printing with no additional trace text. 
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   373
 * aParam must be TBTDevAddr type.
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   374
 */
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   375
#define BtTraceBtAddr0( aGroupName, aTraceName, aParam ) \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   376
{ \
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   377
    TBuf<12> buf; aParam.GetReadable( buf ); TPtrC p(buf); \
70
hgs
parents: 29
diff changeset
   378
    BOstraceExt1( aGroupName, aTraceName, _L("%S"), &p ); \
29
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   379
}
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   380
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   381
#else // BLUETOOTHTRACE_ENABLED
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   382
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   383
#define BOstrace0( aGroupName, aTraceName, aTraceText )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   384
#define BOstrace1( aGroupName, aTraceName, aTraceText, aParam )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   385
#define BOstraceData( aGroupName, aTraceName, aTraceText, aPtr, aLength )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   386
#define BOstraceExt1( aGroupName, aTraceName, aTraceText, aParam )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   387
#define BOstraceExt2( aGroupName, aTraceName, aTraceText, aParam1, aParam2 )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   388
#define BOstraceExt3( aGroupName, aTraceName, aTraceText, aParam1, aParam2, aParam3 )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   389
#define BOstraceExt4( aGroupName, aTraceName, aTraceText, aParam1, aParam2, aParam3, aParam4 )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   390
#define BOstraceExt5( aGroupName, aTraceName, aTraceText, aParam1, aParam2, aParam3, aParam4, aParam5 )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   391
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   392
#define BOstraceFunctionEntry0( aTraceName )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   393
#define BOstraceFunctionEntry1( aTraceName, aInstance )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   394
#define BOstraceFunctionEntryExt(aTraceName, aInstance, aArg)
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   395
#define BOstraceFunctionExit0( aTraceName )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   396
#define BOstraceFunctionExit1( aTraceName, aInstance )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   397
#define BOstraceEventStart0( aTraceName, aEventName )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   398
#define BOstraceEventStart1( aTraceName, aEventName, aParam )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   399
#define BOstraceFunctionExitExt(aTraceName, aInstance, aRetval)
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   400
#define BOstraceEventStop( aTraceName, aEventName )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   401
#define BOstraceState0( aTraceName, aStateName, aNewState )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   402
#define BOstraceState1( aTraceName, aStateName, aNewState, aInstance )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   403
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   404
#define BtTraceBlock( exp )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   405
#define BtTraceBtAddr1( aGroupName, aTraceName, aTraceText, aParam )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   406
#define BtTraceBtAddr0( aGroupName, aTraceName, aParam )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   407
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   408
#endif // BLUETOOTHTRACE_ENABLED
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   409
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   410
/*
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   411
 * Additional general purpose definition, a hook for defining a friend class
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   412
 * for unit testing to get access to class internals.
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   413
 */
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   414
#ifndef BTUNITTEST
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   415
#define BTUNITTESTHOOK
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   416
#endif
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   417
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   418
#endif // BLUETOOTHTRACE_H