idlehomescreen/xmluirendering/utils/src/tracer.cpp
changeset 0 f72a12da539e
--- /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
+}
+