--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/xmluirendering/utils/src/tracer.cpp Thu Dec 17 08:40:49 2009 +0200
@@ -0,0 +1,181 @@
+/*
+* Copyright (c) 2007 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:
+*
+*/
+
+#include "tracer.h"
+
+#ifdef __WINS__
+// Yes, I know this does not compile for Arm, but at least we can use it in Wins
+static TInt ii;
+#endif
+
+#ifdef FILE_LOGGING_SUPPORT
+_LIT(KTracerLogFilePath, "c:\\logs\\xn3trace.log");
+#endif
+
+EXPORT_C TTracer::TTracer()
+{
+#ifdef FILE_LOGGING_SUPPORT
+ RFs fs;
+ TInt err(fs.Connect());
+ if (KErrNone == err)
+ {
+ RFile file;
+ file.Replace(fs, KTracerLogFilePath, EFileWrite);
+ file.Close();
+ fs.Close();
+ }
+#endif
+
+#ifdef __WINS__
+ ii = 0;
+#endif
+}
+
+EXPORT_C TTracer::TTracer(TPtrC aString)
+{
+#ifdef FILE_LOGGING_SUPPORT
+ TInt err (iFs.Connect());
+ if (KErrNone == err)
+ {
+ RFile file;
+ err (file.Open(iFs, KTracerLogFilePath, EFileWrite));
+ if (KErrNone == err)
+ {
+ TFileText tfile;
+ tfile.Set(file);
+#endif
+
+ TBuf<255> str=_L("");
+ TTime currentTime; // set current time to now
+ currentTime.HomeTime();
+ TBuf<25> strCurTime;
+ TRAP_IGNORE( currentTime.FormatL(strCurTime, _L("%H:%T:%S:%*C3 ")) );
+
+ str.Copy(strCurTime);
+
+#ifdef __WINS__
+ for(int i=0;i<ii;i++)
+ {
+ str.Append(_L(" "));
+ }
+#else
+ str.Append(_L(" "));
+#endif
+
+ iString = aString;
+ str.Append(_L("Enter: "));
+ str.Append(iString);
+
+#ifdef FILE_LOGGING_SUPPORT
+ str.Append(_L("\r")); // carriage return
+ tfile.Seek(ESeekEnd);
+ tfile.Write(str);
+ }
+ file.Close();
+ }
+#endif
+
+#ifdef __WINS__
+ ii++;
+#endif
+}
+
+
+EXPORT_C TTracer::~TTracer()
+{
+#ifdef __WINS__
+ if(ii > 0)
+ {
+ --ii;
+#endif
+
+#ifdef FILE_LOGGING_SUPPORT
+ RFile file;
+ TInt err (file.Open(iFs, KTracerLogFilePath, EFileWrite));
+ if (KErrNone == err)
+ {
+ TFileText tfile;
+ tfile.Set(file);
+#endif
+
+ TBuf<255> str=_L("");
+ TTime currentTime; // set current time to now
+ currentTime.HomeTime();
+ TBuf<25> strCurTime;
+ TRAP_IGNORE( currentTime.FormatL(strCurTime, _L("%H:%T:%S:%*C3 ")) );
+
+ str.Copy(strCurTime);
+
+#ifdef __WINS__
+ for(int i=0;i<ii;i++)
+ {
+ str.Append(_L(" "));
+ }
+#else
+ str.Append(_L(" "));
+#endif
+ str.Append(_L("Leave: "));
+ str.Append(iString);
+
+#ifdef FILE_LOGGING_SUPPORT
+ str.Append(_L("\r")); // carriage return
+ tfile.Seek(ESeekEnd);
+ tfile.Write(str);
+ }
+ file.Close();
+ iFs.Close();
+#endif
+#ifdef __WINS__
+ }
+#endif
+}
+
+EXPORT_C void TTracer::Print(TPtrC aString)
+{
+#ifdef FILE_LOGGING_SUPPORT
+ RFs fs;
+ TInt err(fs.Connect());
+ if (KErrNone == err)
+ {
+ RFile file;
+ TInt err(file.Open(fs, KTracerLogFilePath, EFileWrite));
+ if (KErrNone == err)
+ {
+ TFileText tfile;
+ tfile.Set(file);
+#endif
+ TBuf<255> str=_L("");
+ TTime currentTime; // set current time to now
+ currentTime.HomeTime();
+ TBuf<25> strCurTime;
+ TRAP_IGNORE( currentTime.FormatL(strCurTime, _L("%H:%T:%S:%*C3 ")) );
+
+ str.Copy(strCurTime);
+
+ str.Append(_L(" "));
+ str.Append(aString);
+#ifdef FILE_LOGGING_SUPPORT
+ str.Append(_L("\r")); // carriage return
+ tfile.Seek(ESeekEnd);
+ tfile.Write(str);
+ }
+ file.Close();
+ fs.Close();
+ }
+#endif
+}
+