/*
* ==============================================================================
* Name: sa_common_trace.cpp
* Part of: System adaptation
* Description: Implementation of System Adaptation common traces
* %version: 1 %
* %date_modified: Tue Dec 29 15:59:38 2009 %
*
* 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:
* Implementation of System Adaptation common traces
*
*/
// INCLUDE FILES
#include <e32std.h>
#include <pn_const.h>
#include "sa_common_trace.h"
#ifdef _DEBUG
// EXTERNAL DATA STRUCTURES
// EXTERNAL FUNCTION PROTOTYPES
// CONSTANTS
// MACROS
// LOCAL CONSTANTS AND MACROS
const TInt KSASDataDumpTraceBytesPerLine( 10 );
_LIT8( KSATraceBuildDate, __DATE__ );
_LIT8( KSATraceBuildTime, __TIME__ );
_LIT( KSATraceDataDumpStart, " [ " );
_LIT( KSATraceDataDumpLineAlign, " " );
_LIT( KSATraceDataDumpStop, " ] " );
_LIT( KSATraceDataDumpValue, "%02x " );
// MODULE DATA STRUCTURES
// LOCAL FUNCTION PROTOTYPES
// FORWARD DECLARATIONS
// ============================= TRACE FUNCTIONS ===============================
// -----------------------------------------------------------------------------
// AssertTraceFunc
// -----------------------------------------------------------------------------
void AssertTraceFunc( const TDesC& aPrefix, const TDesC8& aFile, TInt aLine )
{
HBufC* buffer = HBufC::New( aFile.Length() + 1 );
HBufC* date = HBufC::New( 32 );
HBufC* time = HBufC::New( 32 );
if ( ( buffer ) && ( date ) && ( time ) )
{
buffer->Des().Copy( aFile );
date->Des().Copy( KSATraceBuildDate );
time->Des().Copy( KSATraceBuildTime );
RDebug::Print( _L( "%S Assertion failed: file=%S, line=%d, compiled=%S %S" ),
&aPrefix, buffer, aLine, date, time );
}
else
{
RDebug::Print( _L( "Assertion and memory allocation failed" ) );
}
delete buffer;
delete date;
delete time;
}
// -----------------------------------------------------------------------------
// BuildTraceFunc
// -----------------------------------------------------------------------------
void BuildTraceFunc( const TDesC& aPrefix )
{
HBufC* buffer = HBufC::New( aPrefix.Length() + 1 );
HBufC* date = HBufC::New( 32 );
HBufC* time = HBufC::New( 32 );
if ( ( buffer ) && ( date ) && ( time ) )
{
buffer->Des().Copy( aPrefix );
date->Des().Copy( KSATraceBuildDate );
time->Des().Copy( KSATraceBuildTime );
RDebug::Print( _L( "%s: compiled=%s %s" ), buffer->Des().PtrZ(),
date->Des().PtrZ(), time->Des().PtrZ() );
#ifdef __WINS__
RDebug::Print( _L( "%s: __WINS__ enabled" ),
buffer->Des().PtrZ() );
#else
RDebug::Print( _L( "%s: __WINS__ disabled" ),
buffer->Des().PtrZ() );
#endif
#ifdef _DEBUG
RDebug::Print( _L( "%s: _DEBUG enabled" ),
buffer->Des().PtrZ() );
#else
RDebug::Print( _L( "%s: _DEBUG disabled" ),
buffer->Des().PtrZ() );
#endif
#ifdef SA_MODULE_TEST_FLAG
RDebug::Print( _L( "%s: SA_MODULE_TEST_FLAG enabled" ),
buffer->Des().PtrZ() );
#else
RDebug::Print( _L( "%s: SA_MODULE_TEST_FLAG disabled" ),
buffer->Des().PtrZ() );
#endif
}
delete buffer;
delete date;
delete time;
}
// -----------------------------------------------------------------------------
// DataDumpTraceFunc
// -----------------------------------------------------------------------------
void DataDumpTraceFunc( const TDesC& aPrefix, const TDesC8& aData )
{
HBufC* buffer = HBufC::New( 255 ); // max line length
if ( buffer )
{
buffer->Des().Copy( aPrefix );
buffer->Des().Append( KSATraceDataDumpStart );
for ( TInt i = 0; i < aData.Length(); i++)
{
buffer->Des().AppendFormat( KSATraceDataDumpValue, aData[i] );
if( (i % KSASDataDumpTraceBytesPerLine == ( KSASDataDumpTraceBytesPerLine - 1 ) )
&& (i + 1 < aData.Length()) )
{
RDebug::Print( buffer->Des() );
buffer->Des().Copy( aPrefix);
buffer->Des().Append( KSATraceDataDumpLineAlign );
}
}
buffer->Des().Append( KSATraceDataDumpStop );
RDebug::Print( buffer->Des() );
}
delete buffer;
}
// -----------------------------------------------------------------------------
// IsiMsgApiTrace
// -----------------------------------------------------------------------------
void IsiMsgApiTrace(const TDesC& aPrefix, const TDesC8& aData)
{
}
#endif
// End of File