diff -r 000000000000 -r 95b198f216e5 wmdrm/inc/logfn.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wmdrm/inc/logfn.h Thu Dec 17 08:52:27 2009 +0200 @@ -0,0 +1,150 @@ +/* +* 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 "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: ?Description +* +*/ + + +#ifndef LOG_H +#define LOG_H + +#ifdef _DEBUG +#define _LOGGING +#endif + +#ifdef _LOGGING + +#include +#include +#include + +#ifndef _LOGGING_DIR +#define _LOGGING_DIR L"wmdrm" +#endif + +#ifndef _LOGGING_FILE +#define _LOGGING_FILE L"wmdrm.txt" +#endif + +const static TLitC KLogDir = + { + sizeof(_LOGGING_DIR) / 2 - 1, _LOGGING_DIR + }; +const static TLitC KLogFile = + { + sizeof(_LOGGING_FILE) / 2 - 1, _LOGGING_FILE + }; + +#define LOG( des ) \ + RFileLogger::Write( KLogDir, KLogFile, EFileLoggingModeAppend, des ) + +#define LOG1( AAA ) \ + RFileLogger::Write( KLogDir, KLogFile, EFileLoggingModeAppend, _L( AAA ) ) + +#define LOG2( FMT, BBB ) \ + RFileLogger::WriteFormat( KLogDir, KLogFile, EFileLoggingModeAppend, _L( FMT ), BBB ) + +#define LOG3( FMT, BBB, CCC ) \ + RFileLogger::WriteFormat( KLogDir, KLogFile, EFileLoggingModeAppend, _L( FMT ), BBB, CCC ) + +#define LOG4( FMT, BBB, CCC, DDD ) \ + RFileLogger::WriteFormat( KLogDir, KLogFile, EFileLoggingModeAppend, _L( FMT ), BBB, CCC, DDD ) + +#define LOG5( FMT, BBB, CCC, DDD, EEE ) \ + RFileLogger::WriteFormat( KLogDir, KLogFile, EFileLoggingModeAppend, _L( FMT ), BBB, CCC, DDD, EEE ) + +#define LOGHEX( ptr, len ) \ + RFileLogger::HexDump( KLogDir, KLogFile, EFileLoggingModeAppend, _S(""), _S(""), ptr, len ) + +#define LOGFN( AAA ) TLogFn ___tmp( _L( AAA ) ) +#define LOGFNR( AAA, BBB ) TLogFn ___tmp( _L( AAA ), (TInt* ) &( BBB ) ) + +#define CLEARLOG() {\ + RFs fs;\ + TBuf path;\ + path.Copy( _L( "c:\\logs\\" ) ); path.Append( KLogDir ); path.Append( '\\' ); path.Append( KLogFile ); \ + fs.Connect();\ + fs.Delete( path );\ + fs.Close();} + +/** + * Class for logging funtion calls and exits + * + * The constructor logs the entry of the function, the destructor the exit + * + * @since S60 3.2 + */ +NONSHARABLE_CLASS( TLogFn ) + { +public: + TLogFn( const TDesC& aName, TInt* aResult = NULL ): + iResult( aResult) + { + RBuf8 data; + + iName.Set( aName ); + if ( data.Create( iName.Size() + 8 ) == KErrNone ) + { + data.Copy( _L( ">> " ) ); + data.Append( iName ); + LOG( data ); + data.Close(); + } + } + + ~TLogFn() + { + RBuf8 data; + + if ( data.Create( iName.Size() + 50 ) == KErrNone ) + { + data.Copy( _L( "<< " ) ); + data.Append( iName ); + if ( iResult ) + { + data.Append( ' ' ); + data.AppendNum( *iResult ); + data.Append( _L( " 0x" ) ); + data.AppendNum( *iResult, EHex ); + } + LOG( data ); + data.Close(); + } + } + +private: // data + + /** + * Name of the function + */ + TPtrC iName; + TInt* iResult; + }; + +#else // _LOGGING + +#define LOG( des ) +#define LOG1( AAA ) +#define LOG2( FMT, BBB ) +#define LOG3( FMT, BBB, CCC ) +#define LOG4( FMT, BBB, CCC, DDD ) +#define LOG5( FMT, BBB, CCC, DDD, EEE ) +#define LOGHEX( ptr, len ) +#define LOGFN( AAA ) +#define LOGFNR( AAA, BBB ) +#define CLEARLOG() + +#endif // _LOGGING + +#endif // LOG_H