--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/consoles/tefcons/tefcons.cpp Sun Jul 04 15:58:56 2010 +0100
@@ -0,0 +1,164 @@
+// tefcons.cpp
+//
+// Copyright (c) 2010 Accenture. All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the "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:
+// Accenture - Initial contribution
+//
+
+#include <e32std.h>
+#include <e32cons.h>
+#include <e32keys.h>
+#include <test/testexecutelogger.h>
+#include <fshell/consoleextensions.h>
+
+NONSHARABLE_CLASS(CTefConsole) : public CConsoleBase
+ {
+public:
+ CTefConsole();
+ virtual ~CTefConsole();
+ virtual TInt Create(const TDesC &aTitle,TSize aSize);
+ virtual void Read(TRequestStatus &aStatus);
+ virtual void ReadCancel();
+ virtual void Write(const TDesC &aDes);
+ virtual TPoint CursorPos() const;
+ virtual void SetCursorPosAbs(const TPoint &aPoint);
+ virtual void SetCursorPosRel(const TPoint &aPoint);
+ virtual void SetCursorHeight(TInt aPercentage);
+ virtual void SetTitle(const TDesC &aTitle);
+ virtual void ClearScreen();
+ virtual void ClearToEndOfLine();
+ virtual TSize ScreenSize() const;
+ virtual TKeyCode KeyCode() const;
+ virtual TUint KeyModifiers() const;
+ virtual TInt Extension_(TUint aExtensionId, TAny*& a0, TAny* a1);
+
+ void WriteStdErr(const TDesC &aDes);
+
+private:
+ CTestExecuteLogger* iLogger;
+ };
+
+CTefConsole::CTefConsole()
+ {
+ }
+
+TInt CTefConsole::Create(const TDesC& aTitle, TSize /*aSize*/)
+ {
+ iLogger = new CTestExecuteLogger();
+ if (!iLogger) return KErrNoMemory;
+ TInt logMode = TLoggerOptions(ELogHTMLOnly);
+ TInt logLevel = RFileFlogger::TLogSeverity(ESevrAll);
+ iLogger->SetLoggerOptions(logMode);
+ TInt err = iLogger->Connect();
+ if (err) return err;
+ const TDesC& logFilePath(aTitle);
+ err = iLogger->HtmlLogger().CreateLog(logFilePath, RTestExecuteLogServ::ELogModeAppend);
+ if (err) return err;
+ iLogger->HtmlLogger().SetLogLevel(TLogSeverity(logLevel));
+
+ iLogger->HtmlLogger().Write(_L("<pre>\r\n")); // horrible horrible tef logging - the client is responsible for writing markup!
+ return KErrNone;
+ }
+
+
+CTefConsole::~CTefConsole()
+ {
+ if (iLogger)
+ {
+ iLogger->HtmlLogger().Write(_L("</pre>\r\n")); // horrible horrible tef logging - the client is responsible for writing markup!
+ iLogger->Close();
+ delete iLogger;
+ }
+ }
+
+void CTefConsole::Read(TRequestStatus &aStatus)
+ {
+ TRequestStatus *pS=(&aStatus);
+ User::RequestComplete(pS, KErrNotSupported);
+ }
+
+void CTefConsole::ReadCancel()
+ {
+ }
+
+void CTefConsole::Write(const TDesC& aDes)
+ {
+ //TODO sort out the file and line
+ //iLogger->LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, aDes);
+ iLogger->HtmlLogger().Write(aDes);
+ }
+
+void CTefConsole::WriteStdErr(const TDesC &aDes)
+ {
+ //iLogger->LogExtra(((TText8*)__FILE__), __LINE__, ESevrErr, aDes);
+ iLogger->HtmlLogger().Write(aDes);
+ }
+
+TPoint CTefConsole::CursorPos() const
+ {
+ return TPoint(0,0);
+ }
+
+void CTefConsole::SetCursorPosAbs(const TPoint& /*aPoint*/)
+ {
+ }
+
+void CTefConsole::SetCursorPosRel(const TPoint& /*aPoint*/)
+ {
+ }
+
+void CTefConsole::SetCursorHeight(TInt /*aPercentage*/)
+ {
+ }
+
+void CTefConsole::SetTitle(const TDesC& /*aTitle*/)
+ {
+ }
+
+void CTefConsole::ClearScreen()
+ {
+ }
+
+void CTefConsole::ClearToEndOfLine()
+ {
+ }
+
+TSize CTefConsole::ScreenSize() const
+ {
+ return TSize(10,10);
+ }
+
+TKeyCode CTefConsole::KeyCode() const
+ {
+ return EKeyNull;
+ }
+
+TUint CTefConsole::KeyModifiers() const
+ {
+ return 0;
+ }
+
+extern "C" EXPORT_C TAny *NewConsole()
+ {
+ return(new CTefConsole);
+ }
+
+TInt CTefConsole::Extension_(TUint aExtensionId, TAny*& a0, TAny* a1)
+ {
+ if (aExtensionId == ConsoleStdErr::KWriteStdErrConsoleExtension)
+ {
+ TDesC* des = (TDesC*)a1;
+ WriteStdErr(*des);
+ return KErrNone;
+ }
+ else
+ {
+ return CConsoleBase::Extension_(aExtensionId, a0, a1);
+ }
+
+ }