diff -r 613943a21004 -r 9386f31cc85b bluetoothengine/btnotif/inc/bluetoothtrace.h --- a/bluetoothengine/btnotif/inc/bluetoothtrace.h Tue Aug 31 15:25:10 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,455 +0,0 @@ -/* -* ============================================================================ -* Name : bluetoothtrace.h -* Part of : BluetoothUI / bluetoothuimodel *** Info from the SWAD -* Description : API declaration of run-time debug tracing -* -* Copyright © 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* Nokia Corporation -* ============================================================================ -* Template version: 4.2 -*/ - -#ifndef BLUETOOTHTRACE_H -#define BLUETOOTHTRACE_H - -#include -#include "traceconfig.h" - -/* - * Common tracing utility definition to be used by Bluetooth projects. - * The configuration is loaded from traceconfig.h which shall be private for - * each individual project. - * - * In this utility, a set of OST-alike tracing macros are defined. - * (The purpose is to ease migration to OST in future.) - * - * Individual project can also define new macros based on this utility in - * its own space. - * - */ - -#ifdef BLUETOOTHTRACE_ENABLED - -#ifdef BLUETOOTHTRACE_MEDIA_OST - -/** - * Convert own macros to OST macros when OST tracing is used. - * In OST tracing, aTraceName must be a unique identifier in scope of a module. - * Thus many OST compiling errors may occur if the same TraceName is used in multiple - * tracing lines where tracing is miigrated from non-OST to OST. - * The fix is to renaming the TraceName:s to be unique. - */ -#include - -#define BOstrace0( aGroupName, aTraceName, aTraceText ) \ - OstTrace0( aGroupName, aTraceName, aTraceText ) - -#define BOstrace1( aGroupName, aTraceName, aTraceText, aParam ) \ - OstTrace1( aGroupName, aTraceName, aTraceText, aParam ) - -#define BOstraceData( aGroupName, aTraceName, aTraceText, aPtr, aLength ) \ - OstTraceData( aGroupName, aTraceName, aTraceText, aPtr, aLength ) - -#define BOstraceExt1( aGroupName, aTraceName, aTraceText, aParam ) \ - OstTraceExt1( aGroupName, aTraceName, aTraceText, aParam ) - -#define BOstraceExt2( aGroupName, aTraceName, aTraceText, aParam1, aParam2 ) \ - OstTraceExt2( aGroupName, aTraceName, aTraceText, aParam1, aParam2 ) - -#define BOstraceExt3( aGroupName, aTraceName, aTraceText, aParam1, aParam2, aParam3 ) \ - OstTraceExt3( aGroupName, aTraceName, aTraceText, aParam1, aParam2, aParam3 ) - -#define BOstraceExt4( aGroupName, aTraceName, aTraceText, aParam1, aParam2, aParam3, aParam4 ) \ - OstTraceExt4( aGroupName, aTraceName, aTraceText, aParam1, aParam2, aParam3, aParam4 ) - -#define BOstraceExt5( aGroupName, aTraceName, aTraceText, aParam1, aParam2, aParam3, aParam4, aParam5 ) \ - OstTraceExt5( aGroupName, aTraceName, aTraceText, aParam1, aParam2, aParam3, aParam4, aParam5 ) - -#define BOstraceFunctionEntry0( aTraceName ) \ - OstTraceFunctionEntry0( aTraceName ) - -#define BOstraceFunctionEntry1( aTraceName, aInstance ) \ - OstTraceFunctionEntry1( aTraceName, aInstance ) - -#define BOstraceFunctionEntryExt(aTraceName, aInstance, aArg) \ - OstTraceFunctionEntryExt(aTraceName, aInstance, aArg) - -#define BOstraceFunctionExit0( aTraceName ) \ - OstTraceFunctionExit0( aTraceName ) - -#define BOstraceFunctionExit1( aTraceName, aInstance ) \ - OstTraceFunctionExit1( aTraceName, aInstance ) - -#define BOstraceFunctionExitExt(aTraceName, aInstance, aRetval) \ - OstTraceFunctionExitExt(aTraceName, aInstance, aRetval) - -#define BOstraceEventStart0( aTraceName, aEventName ) \ - OstTraceEventStart0( aTraceName, aEventName ) - -#define BOstraceEventStart1( aTraceName, aEventName, aParam ) \ - OstTraceEventStart1( aTraceName, aEventName, aParam ) - -#define BOstraceEventStop( aTraceName, aEventName ) \ - OstTraceEventStop( aTraceName, aEventName ) - -#define BOstraceState0( aTraceName, aStateName, aNewState ) \ - OstTraceState0( aTraceName, aStateName, aNewState ) - -#define BOstraceState1( aTraceName, aStateName, aNewState, aInstance ) \ - OstTraceState1( aTraceName, aStateName, aNewState, aInstance ) - -#else // BLUETOOTHTRACE_MEDIA_OST - -#ifdef BLUETOOTHTRACE_MEDIA_FILE -#include -#else -#include -#endif - -/** - * When tracing compilation with OST is disabled, the TraceName in each OST trace line - * is ignored, that is, the Trace Names are not checked at compiling time, neither - * are they written into the specified trace output media. - */ - -/** - * Handlers below are used for tolerating overflow of formatting strings. - * to trucate rather than panic the caller. - */ -NONSHARABLE_CLASS( TBtTraceOflowTruncate8 ) : public TDes8Overflow - { -public: - void Overflow( TDes8& /*aDes*/ ) {} - }; - -NONSHARABLE_CLASS( TBtTraceOflowTruncate16 ) : public TDes16Overflow - { -public: - void Overflow( TDes16& /*aDes*/ ) {} - }; - -/** - * internal tracing implementation, do not use it out of this file. - */ -inline void Trace(const TDesC &trGrp, const TDesC &trTxt) -{ - _LIT(Format, "%S%S%S"); - TBuf16<0x180> str; - TPtrC cp(KComponentName); - str.Format(Format, &cp, &trGrp, &trTxt); -#ifdef BLUETOOTHTRACE_MEDIA_FILE - RFileLogger::WriteFormat( KLogDir, KLogFile, EFileLoggingModeAppend, str); -#else - RDebug::Print( str ); -#endif -} - -/* - * trace with no parameters - */ -#define BOstrace0( aGroupName, aTraceName, aTraceText ) \ -{\ - _LIT(TrGrp, aGroupName); _LIT(TrTxt, aTraceText); \ - Trace( TrGrp, TrTxt ); \ -} - -/* - * trace with one 32-bit parameter - */ -#define BOstrace1( aGroupName, aTraceName, aTraceText, aParam ) \ -{\ - _LIT(TrGrp, aGroupName); _LIT(TrTxt, aTraceText); \ - TBuf<512> buf; TBtTraceOflowTruncate16 overflow; \ - buf.AppendFormat(TrTxt, &overflow, aParam); \ - Trace( TrGrp, buf ); \ -} - -/* - * trace with more than 32 bits of data. Not supported - */ -#define BOstraceData( aGroupName, aTraceName, aTraceText, aPtr, aLength ) - -/* - * trace with one parameter that is not 32-bit integer - */ -#define BOstraceExt1( aGroupName, aTraceName, aTraceText, aParam ) \ - BOstrace1( aGroupName, aTraceName, aTraceText, aParam ) - -/* - * trace with two parameters. - */ -#define BOstraceExt2( aGroupName, aTraceName, aTraceText, aParam1, aParam2 ) \ -{\ - _LIT(TrGrp, aGroupName); _LIT(TrTxt, aTraceText); \ - TBuf<512> buf; TBtTraceOflowTruncate16 overflow; \ - buf.AppendFormat(TrTxt, &overflow, aParam1, aParam2); \ - Trace( TrGrp, buf ); \ -} - -/* - * trace with three parameters. - */ -#define BOstraceExt3( aGroupName, aTraceName, aTraceText, aParam1, aParam2, aParam3 ) \ -{\ - _LIT(TrGrp, aGroupName); _LIT(TrTxt, aTraceText); \ - TBuf<512> buf; TBtTraceOflowTruncate16 overflow; \ - buf.AppendFormat(TrTxt, &overflow, aParam1, aParam2, aParam3); \ - Trace( TrGrp, buf ); \ -} - -/* - * trace with four parameters - */ -#define BOstraceExt4( aGroupName, aTraceName, aTraceText, aParam1, aParam2, aParam3, aParam4 ) \ -{\ - _LIT(TrGrp, aGroupName); _LIT(TrTxt, aTraceText); \ - TBuf<512> buf; TBtTraceOflowTruncate16 overflow; \ - buf.AppendFormat(TrTxt, &overflow, aParam1, aParam2, aParam3, aParam4); \ - Trace( TrGrp, buf ); \ -} - -/* - * trace with five parameters - */ -#define BOstraceExt5( aGroupName, aTraceName, aTraceText, aParam1, aParam2, aParam3, aParam4, aParam5 ) \ -{\ - _LIT(TrGrp, aGroupName); _LIT(TrTxt, aTraceText); \ - TBuf<512> buf; TBtTraceOflowTruncate16 overflow; \ - buf.AppendFormat(TrTxt, &overflow, aParam1, aParam2, aParam3, aParam4, aParam5); \ - Trace( TrGrp, buf ); \ -} - -/* - * Function entry trace without extra parameters. - * The trace is mapped to TRACE_API group. - */ -#define BOstraceFunctionEntry0( aTraceName ) \ -{\ - _LIT(TrGrp, "[ API ]"); \ - TPtrC8 func( (TUint8*) __PRETTY_FUNCTION__ ); \ - _LIT(Entry, ">> "); \ - TBuf<512> buf; buf.Copy( func ); buf.Insert(0, Entry );\ - Trace( TrGrp, buf ); \ -} - -/* - * Function entry trace with a parameter representing the instance identifier, e.g. - * "this" pointer. - * The trace is mapped to TRACE_API group. - */ -#define BOstraceFunctionEntry1( aTraceName, aInstance ) \ -{\ - _LIT(TrGrp, "[ API ]");\ - TPtrC8 func( (TUint8*) __PRETTY_FUNCTION__ ); \ - _LIT(Entry, ">> "); _LIT(Fmt, " 0x%X(%d)"); \ - TBuf<512> buf; buf.Copy( func ); buf.Insert(0, Entry); \ - TBtTraceOflowTruncate16 overflow; \ - buf.AppendFormat(Fmt, &overflow, aInstance, aInstance); \ - Trace( TrGrp, buf ); \ -} - -/* - * Function entry trace, which traces function parameters. - * The trace is mapped to TRACE_API group. - */ -#define BOstraceFunctionEntryExt(aTraceName, aInstance, aArg) \ -{ \ - _LIT(TrGrp, "[ API ]");\ - TPtrC8 func( (TUint8*) __PRETTY_FUNCTION__ ); \ - _LIT(Entry, ">> "); _LIT(Fmt, " 0x%X(%d) arg %d"); \ - TBuf<512> buf; buf.Copy( func ); buf.Insert(0, Entry); \ - TBtTraceOflowTruncate16 overflow; \ - buf.AppendFormat(Fmt, &overflow, aInstance, aInstance, aArg); \ - Trace( TrGrp, buf ); \ -} -/* - * Function exit trace without extra parameters. - * The trace is mapped to TRACE_API group. - */ -#define BOstraceFunctionExit0( aTraceName ) \ -{\ - _LIT(TrGrp, "[ API ]"); \ - TPtrC8 func( (TUint8*) __PRETTY_FUNCTION__ ); \ - _LIT(Entry, "<< "); \ - TBuf<512> buf; buf.Copy( func ); buf.Insert(0, Entry); \ - Trace( TrGrp, buf ); \ -} - -/* - * Function exit trace with a parameter representing the instance identifier - * for example "this" pointer. - * The trace is mapped to TRACE_API group. - */ -#define BOstraceFunctionExit1( aTraceName, aInstance ) \ -{\ - _LIT(TrGrp, "[ API ]"); \ - TPtrC8 func( (TUint8*) __PRETTY_FUNCTION__ ); \ - _LIT(Entry, "<< "); _LIT(Fmt, " 0x%X(%d)"); \ - TBuf<512> buf; buf.Copy( func ); buf.Insert(0, Entry); \ - TBtTraceOflowTruncate16 overflow; \ - buf.AppendFormat(Fmt, &overflow, aInstance, aInstance); \ - Trace( TrGrp, buf ); \ -} - -/* - * Function exit trace with parameters representing the instance identifier, - * for example "this" pointer, and return value. - * The trace is mapped to TRACE_API group. - */ -#define BOstraceFunctionExitExt(aTraceName, aInstance, aRetval) \ -{\ - _LIT(TrGrp, "[ API ]");\ - TPtrC8 func( (TUint8*) __PRETTY_FUNCTION__ ); \ - _LIT(Entry, "<< "); _LIT(Fmt, " 0x%X(%d) ret %d"); \ - TBuf<512> buf; buf.Copy( func ); buf.Insert(0, Entry); \ - TBtTraceOflowTruncate16 overflow; \ - buf.AppendFormat(Fmt, &overflow, aInstance, aInstance, aRetval); \ - Trace( TrGrp, buf ); \ -} - -/* - * Performance measurement event start trace without extra parameters. - * The trace is mapped to TRACE_PERFORMANCE group. - */ -#define BOstraceEventStart0( aTraceName, aEventName ) \ -{\ - _LIT(TrGrp, "[PFMAN]"); _LIT(EvName, aEventName); \ - _LIT(Entry, "[Start] "); \ - TBuf<512> buf(Entry); buf.Append( EvName ); \ - Trace( TrGrp, buf ); \ -} - -/* - * Performance measurement event start trace with single 32-bit parameter. - * The trace is mapped to TRACE_PERFORMANCE group. - */ -#define BOstraceEventStart1( aTraceName, aEventName, aParam ) \ -{\ - _LIT(TrGrp, "[PFMAN]"); _LIT(EvName, aEventName); \ - _LIT(Entry, "[Start] %S 0x%X(%d)"); \ - TPtrC evt(EvName); TBuf<512> buf; \ - TBtTraceOflowTruncate16 overflow; \ - buf.AppendFormat(Entry, &overflow, &evt, aParam, aParam ); \ - Trace( TrGrp, buf ); \ -} - -/* - * Performance measurement event end trace. - * The trace is mapped to TRACE_PERFORMANCE group. - */ -#define BOstraceEventStop( aTraceName, aEventName ) \ -{\ - _LIT(TrGrp, "[PFMAN]"); _LIT(EvName, aEventName); \ - _LIT(Entry, "[Stop] "); \ - TBuf<512> buf(Entry); buf.Append( EvName ); \ - Trace( TrGrp, buf ); \ -} - -/* - * State transition event. - * The trace is mapped to TRACE_STATE group. - */ -#define BOstraceState0( aTraceName, aStateName, aNewState ) \ -{\ - _LIT(TrGrp, "[STATE]"); _LIT(StName, aStateName); \ - _LIT(Entry, "%S 0x%X(%d)"); \ - TPtrC evt(StName); TBuf<512> buf; \ - TBtTraceOflowTruncate16 overflow; \ - buf.AppendFormat(Entry, &overflow, &evt, aNewState, aNewState ); \ - Trace( TrGrp, buf ); \ -} - -/* - * State transition event with instance identifier. - * The trace is mapped to TRACE_STATE group. - */ -#define BOstraceState1( aTraceName, aStateName, aNewState, aInstance ) \ -{\ - _LIT(TrGrp, "[STATE]"); _LIT(StName, aStateName); \ - _LIT(Entry, "%S 0x%X(%d) instance=0x%X(%d)"); \ - TPtrC evt(StName); TBuf<512> buf; \ - TBtTraceOflowTruncate16 overflow; \ - buf.AppendFormat(Entry, &overflow, &evt, aNewState, aNewState, aInstance, aInstance ); \ - Trace( TrGrp, buf ); \ -} - -#endif // BLUETOOTHTRACE_MEDIA_OST - -// Extended tracing macros facilitating domain specific tracing needs: - -/* - * A block of source code merely for tracing purpose. - */ -#define BtTraceBlock( exp ) {exp} - -/* - * trace macro for BT device address printing with an additional trace text. - * aParam must be TBTDevAddr type. - */ -#define BtTraceBtAddr1( aGroupName, aTraceName, aTraceText, aParam ) \ -{ \ - _LIT(TrTxt, aTraceText); TPtrC p(TrTxt); \ - TBuf<12> buf; \ - aParam.GetReadable( buf ); TPtrC p2(buf);\ - BOstraceExt2( aGroupName, aTraceName, "%S%S", &p, &p2 ); \ -} - -/* - * trace macro for BT device address printing with no additional trace text. - * aParam must be TBTDevAddr type. - */ -#define BtTraceBtAddr0( aGroupName, aTraceName, aParam ) \ -{ \ - TBuf<12> buf; aParam.GetReadable( buf ); TPtrC p(buf); \ - BOstraceExt1( aGroupName, aTraceName, "%S", &p ); \ -} - -#else // BLUETOOTHTRACE_ENABLED - -#define BOstrace0( aGroupName, aTraceName, aTraceText ) -#define BOstrace1( aGroupName, aTraceName, aTraceText, aParam ) -#define BOstraceData( aGroupName, aTraceName, aTraceText, aPtr, aLength ) -#define BOstraceExt1( aGroupName, aTraceName, aTraceText, aParam ) -#define BOstraceExt2( aGroupName, aTraceName, aTraceText, aParam1, aParam2 ) -#define BOstraceExt3( aGroupName, aTraceName, aTraceText, aParam1, aParam2, aParam3 ) -#define BOstraceExt4( aGroupName, aTraceName, aTraceText, aParam1, aParam2, aParam3, aParam4 ) -#define BOstraceExt5( aGroupName, aTraceName, aTraceText, aParam1, aParam2, aParam3, aParam4, aParam5 ) - -#define BOstraceFunctionEntry0( aTraceName ) -#define BOstraceFunctionEntry1( aTraceName, aInstance ) -#define BOstraceFunctionEntryExt(aTraceName, aInstance, aArg) -#define BOstraceFunctionExit0( aTraceName ) -#define BOstraceFunctionExit1( aTraceName, aInstance ) -#define BOstraceEventStart0( aTraceName, aEventName ) -#define BOstraceEventStart1( aTraceName, aEventName, aParam ) -#define BOstraceFunctionExitExt(aTraceName, aInstance, aRetval) -#define BOstraceEventStop( aTraceName, aEventName ) -#define BOstraceState0( aTraceName, aStateName, aNewState ) -#define BOstraceState1( aTraceName, aStateName, aNewState, aInstance ) - -#define BtTraceBlock( exp ) -#define BtTraceBtAddr1( aGroupName, aTraceName, aTraceText, aParam ) -#define BtTraceBtAddr0( aGroupName, aTraceName, aParam ) - -#endif // BLUETOOTHTRACE_ENABLED - -/* - * Additional general purpose definition, a hook for defining a friend class - * for unit testing to get access to class internals. - */ -#ifndef BTUNITTEST -#define BTUNITTESTHOOK -#endif - -#endif // BLUETOOTHTRACE_H