diff -r 68b921ce1944 -r 859da167ccfe plugins/consoles/tefcons/tefcons.cpp --- /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 +#include +#include +#include +#include + +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("
\r\n")); // horrible horrible tef logging - the client is responsible for writing markup!
+	return KErrNone;
+	}
+
+
+CTefConsole::~CTefConsole()
+	{
+	if (iLogger)
+		{
+		iLogger->HtmlLogger().Write(_L("
\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); + } + + }