diff -r 000000000000 -r 63b37f68c1ce adaptationlayer/modematadaptation/modematcontroller_exe/inc/modemattrace.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/adaptationlayer/modematadaptation/modematcontroller_exe/inc/modemattrace.h Fri Nov 06 17:28:23 2009 +0000 @@ -0,0 +1,151 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: +* +* Description: +* +*/ + + + +#ifndef MODEMATTRACE_H +#define MODEMATTRACE_H + +// INCLUDES +// CONSTANTS + +// MACROS +// INCLUDES +#include // For RDebug +#include + +_LIT( KATModemPanic, "ATModemSrvPanic" ); + +#define KMaxLogLineLength 512 +#define _T(a) _L(a) + + +#ifdef _DEBUG + +NONSHARABLE_CLASS(TOverflowTruncate16) : public TDes16Overflow + { +public: + void Overflow(TDes16& /*aDes*/) {} + }; + +NONSHARABLE_CLASS(TOverflowTruncate8) : public TDes8Overflow + { +public: + void Overflow(TDes8& /*aDes*/) {} + }; + + +inline void Trace(TRefByValue aFmt, ...) + { + VA_LIST list; + VA_START(list,aFmt); + TBuf16 theFinalString; + TOverflowTruncate16 overflow; + theFinalString.AppendFormatList(aFmt,list,&overflow); + RDebug::Print(theFinalString); + } + +inline void Trace(TRefByValue aFmt, ...) + { + VA_LIST list; + VA_START(list, aFmt); + TOverflowTruncate8 overflow; + TBuf8 buf8; + buf8.AppendFormatList(aFmt, list, &overflow); + TBuf16 buf16(buf8.Length()); + buf16.Copy(buf8); + TRefByValue tmpFmt(_L("%S")); + RDebug::Print(tmpFmt, &buf16); + } + +inline void DumpMessage( const TDesC8& aPtr ) + { + RDebug::Print(_L("Length %d "), aPtr.Length()); + const TUint8* data = aPtr.Ptr(); + for( TInt i = 0 ; i < aPtr.Length() ; i++ ) + { + RDebug::Print(_L("[%d] 0x%x '%c'"),i,data[i],data[i]); + } + } + +#endif + +#define PANIC_TRACE( aMsg, aP1, aP2 )\ + {\ + RDebug::Printf( aMsg, aP1, aP2 );\ + } + +static void Panic( const TDesC8& aFileName, const TInt aLineNum, TBool aPanic ) + { + PANIC_TRACE( "Assertion failed in file=%S, line=%d", &aFileName, aLineNum ); + if( aPanic ) + { + TBuf16 buf16(aFileName.Length()); + buf16.Copy(aFileName); + User::Panic( buf16, aLineNum ); + } + } + +#ifdef _DEBUG + #define BUILD_TRACE(a) BuildTraceFunc(a) + #define C_TRACE(a) __TRACE_PRINTF(a) + #define DUMP_MESSAGE(a) DumpMessage(a) +#ifdef __WINS__ + #define __TRACE_PRINTF(a) RDebug::Print a +#else + #define __TRACE_PRINTF(a) Trace a +#endif +#else + #define C_TRACE( a ) + #define BUILD_TRACE( a ) + #define DUMP_MESSAGE(a) + #define __TRACE_PRINTF(a) + #define __ASSERT_FILE__(s) _LIT(KFileName,s) +#endif // _DEBUG + +// Resets are made both in UDEB and UREL (traces only in udeb) +#ifdef __WINS__ + #define ASSERT_PANIC_ALWAYS(a) + #define ASSERT_ALWAYS + #define TRACE_ASSERT_ALWAYS __TRACE_PRINTF( (_L("Assertion failed: file= __FILE__ , line=%d, compiled=__DATE__ __TIME__ "),__LINE__) ) + #define TRACE_ASSERT_ALWAYS_COND(a)if(!(a)){ __TRACE_PRINTF( (_L("Assertion failed: file= __FILE__ , line=%d, compiled=__DATE__ __TIME__ "),__LINE__) );} +#else + #define ASSERT_PANIC_ALWAYS(a) if(!(a)){Panic( _L8(__FILE__), __LINE__, ETrue );} + #define ASSERT_ALWAYS Panic( _L8(__FILE__), __LINE__, ETrue ) + #define TRACE_ASSERT_ALWAYS Panic( _L8(__FILE__), __LINE__, EFalse ); + #define TRACE_ASSERT_ALWAYS_COND(a)if(!(a)) {Panic( _L8(__FILE__), __LINE__, EFalse );} +#endif + + +// Trace asserts activated also in UREL +// define assertions +#ifdef __WINS__ + #define TRACE_ASSERT(a) if (!(a)) {__TRACE_PRINTF((_L("Assertion failed: file= __FILE__ , line=%d, compiled=__DATE__ __TIME__ "),__LINE__));} +#else + #define TRACE_ASSERT(a) if (!(a)) {Panic( _L8(__FILE__), __LINE__, EFalse );} +#endif //__WINS__ + +#endif + + +// End of File + + + + + +