--- /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 <e32std.h>
+#include <f32file.h>
+#include <flogger.h>
+
+#ifndef _LOGGING_DIR
+#define _LOGGING_DIR L"wmdrm"
+#endif
+
+#ifndef _LOGGING_FILE
+#define _LOGGING_FILE L"wmdrm.txt"
+#endif
+
+const static TLitC<sizeof(_LOGGING_DIR) / 2> KLogDir =
+ {
+ sizeof(_LOGGING_DIR) / 2 - 1, _LOGGING_DIR
+ };
+const static TLitC<sizeof(_LOGGING_FILE) / 2> 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<sizeof( _LOGGING_DIR ) + sizeof( _LOGGING_DIR ) + 32> 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