--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uiacceltk/hitchcock/plugins/alftranseffect/alftranseffectplugin/src/debuglogger.cpp Tue Feb 02 07:56:43 2010 +0200
@@ -0,0 +1,178 @@
+/*
+* Copyright (c) 2006 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: Utility for debug prints to file
+*
+*/
+
+
+
+//File only compiled with one of these debug flags enabled.
+#if defined(TFXSERVER_TIME_LOG) || defined(WSSERVERDRAWER_TIME_LOG)
+
+#include "debuglogger.h"
+#include <e32debug.h>
+
+// ======== MEMBER FUNCTIONS ========
+
+//---------------------------------------------------------------------
+//
+//---------------------------------------------------------------------
+CDebugLogger::CDebugLogger()
+ {
+ }
+
+CDebugLogger::~CDebugLogger()
+ {
+ iEntries.ResetAndDestroy();
+ }
+
+//---------------------------------------------------------------------
+//
+//---------------------------------------------------------------------
+void CDebugLogger::Log(const TDesC16& aMsg)
+ {
+ CLogEntry *entry = new CLogEntry(aMsg,0);
+ if(entry)
+ {
+ if(KErrNone != iEntries.Append(entry))
+ {
+ delete entry;
+ }
+ }
+ }
+
+//---------------------------------------------------------------------
+//
+//---------------------------------------------------------------------
+void CDebugLogger::Log1(const TDesC16& aMsg, TInt aArg1)
+ {
+ CLogEntry *entry = new CLogEntry(aMsg, 1, aArg1);
+ if(entry)
+ {
+ if(KErrNone != iEntries.Append(entry))
+ {
+ delete entry;
+ }
+ }
+ }
+
+//---------------------------------------------------------------------
+//
+//---------------------------------------------------------------------
+void CDebugLogger::Log2(const TDesC16& aMsg, TInt aArg1, TInt aArg2)
+ {
+ CLogEntry *entry = new CLogEntry(aMsg, 2, aArg1, aArg2);
+ if(entry)
+ {
+ if(KErrNone != iEntries.Append(entry))
+ {
+ delete entry;
+ }
+ }
+ }
+
+//---------------------------------------------------------------------
+//
+//---------------------------------------------------------------------
+void CDebugLogger::Log3(const TDesC16& aMsg, TInt aArg1, TInt aArg2, TInt aArg3)
+ {
+ CLogEntry *entry = new CLogEntry(aMsg, 3, aArg1, aArg2, aArg3);
+ if(entry)
+ {
+ iEntries.Append(entry);
+ }
+ }
+
+//---------------------------------------------------------------------
+//
+//---------------------------------------------------------------------
+void CDebugLogger::Log4(const TDesC16& aMsg, TInt aArg1, TInt aArg2, TInt aArg3, TInt aArg4)
+ {
+ CLogEntry *entry = new CLogEntry(aMsg, 4, aArg1, aArg2, aArg3, aArg4);
+ if(entry)
+ {
+ iEntries.Append(entry);
+ }
+ }
+
+//---------------------------------------------------------------------
+//
+//---------------------------------------------------------------------
+void CDebugLogger::WriteToFile(const TDesC& aLogDir, const TDesC& aLogFile)
+ {
+ const TInt count = iEntries.Count();
+ /*lint -e1032 -e1023 */
+ /* this is to prevent lint errors that says that writeformat is ambigious and cant be used
+ without an object, writeformat is not ambigious - it has one static and one non-static version */
+ for(TInt i = 0; i < count; i++)
+ {
+ switch(iEntries[i]->iNbrArgs)
+ {
+ case 0:
+ RFileLogger::Write(aLogDir,aLogFile,EFileLoggingModeAppend,*(iEntries[i]->iMsg));
+ break;
+ case 1:
+ RFileLogger::WriteFormat(aLogDir,aLogFile,EFileLoggingModeAppend,*(iEntries[i]->iMsg),iEntries[i]->iArg1);
+ break;
+ case 2:
+ RFileLogger::WriteFormat(aLogDir,aLogFile,EFileLoggingModeAppend,*(iEntries[i]->iMsg),iEntries[i]->iArg1,iEntries[i]->iArg2);
+ break;
+ case 3:
+ RFileLogger::WriteFormat(aLogDir,aLogFile,EFileLoggingModeAppend,*(iEntries[i]->iMsg),iEntries[i]->iArg1,iEntries[i]->iArg2,iEntries[i]->iArg3);
+ break;
+ case 4:
+ RFileLogger::WriteFormat(aLogDir,aLogFile,EFileLoggingModeAppend,*(iEntries[i]->iMsg),iEntries[i]->iArg1,iEntries[i]->iArg2,iEntries[i]->iArg3,iEntries[i]->iArg4);
+ break;
+ default:
+ break;
+ }
+ }
+ /*lint +e1032 +e1023 */
+ iEntries.ResetAndDestroy();
+ }
+
+//---------------------------------------------------------------------
+//
+//---------------------------------------------------------------------
+TUint32 CDebugLogger::TimeMs()
+ {
+ TTime now;
+ now.UniversalTime();
+ return (TUint32)(now.Int64()/1000);
+ }
+
+//---------------------------------------------------------------------
+//
+//---------------------------------------------------------------------
+CLogEntry::CLogEntry(const TDesC16& aMsg, TInt aNbrArg, TInt aArg1, TInt aArg2, TInt aArg3, TInt aArg4) : iNbrArgs(aNbrArg),
+ iArg1(aArg1), iArg2(aArg2), iArg3(aArg3), iArg4(aArg4)
+ {
+ iMsg = HBufC16::New(aMsg.Length());
+ if(iMsg)
+ {
+ (*iMsg) = aMsg;
+ }
+ }
+
+//---------------------------------------------------------------------
+//
+//---------------------------------------------------------------------
+CLogEntry::~CLogEntry()
+ {
+ delete iMsg;
+ }
+
+
+#endif // TFXSERVER_TIME_LOG
+