Update contrib.
1 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
14 // Console redirection server
18 #include "testconsole.h"
24 NONSHARABLE_CLASS(CActiveConsole) : public CActive
29 static CActiveConsole* NewLC(CConsoleBase* aConsole, CTestConsole * aStream);
30 static CActiveConsole* NewL(CConsoleBase* aConsole, CTestConsole * aStream);
31 void ConstructL(CConsoleBase* aConsole, CTestConsole * aStream);
36 CTestConsole * iStream;
37 CConsoleBase * iConsole;
40 CActiveConsole::CActiveConsole() : CActive(CActive::EPriorityStandard)
44 void CActiveConsole::DoCancel()
49 void CActiveConsole::ConsoleRead()
51 iConsole->Read(iStatus);
55 void CActiveConsole::RunL()
57 iStream->DoneReading(iConsole->KeyCode());
63 CActiveConsole* CActiveConsole::NewLC(CConsoleBase* aConsole, CTestConsole * aStream)
65 CActiveConsole* self=new (ELeave) CActiveConsole;
66 CleanupStack::PushL(self);
67 self->ConstructL(aConsole, aStream);
71 CActiveConsole* CActiveConsole::NewL(CConsoleBase* aConsole, CTestConsole * aStream)
73 CActiveConsole* self = NewLC(aConsole, aStream);
78 void CActiveConsole::ConstructL(CConsoleBase* aConsole, CTestConsole * aStream)
82 CActiveScheduler::Add(this);
86 CTestConsole::CTestConsole()
89 TRAPD(r,iConsole=Console::NewL(_L("Redirection Server"),TSize(KConsFullScreen, KConsFullScreen)))
91 TRAPD(r,iConsole=Console::NewL(_L("Redirection Server"),TSize(KDefaultConsWidth,KDefaultConsHeight)))
93 __ASSERT_ALWAYS(r==KErrNone,User::Panic(_L("Redirection Server"),0));
95 //create and add the active object
96 TRAPD(x, iActiveChap=CActiveConsole::NewL(iConsole, this));
97 __ASSERT_ALWAYS(x==KErrNone,User::Panic(_L("Redirection Server"),0));
102 CTestConsole::~CTestConsole()
106 iConsole->Write(_L("Console Closed"));
107 User::After(2*1000000);
113 void CTestConsole::Write(TDes8& aDes)
117 CnvUtfConverter::ConvertToUnicodeFromUtf8(str, aDes);
119 iConsole->Write(str);
123 void CTestConsole::Read(const RMessage2& aMessage)
126 iActiveChap->ConsoleRead(); //read from the console
130 void CTestConsole::DoneReading(TKeyCode aKeyCode)
142 ch = (TText8)(aKeyCode&0xFF);
146 //append it to the buffer
150 CompleteRead(iMessage);
153 CStreamBase2* CTestConsoleFactory::GetStream()
155 return new CTestConsole();
158 void CTestConsoleFactory::Configure()
163 CTestConsoleFactory* CTestConsoleFactory::NewL()
165 CTestConsoleFactory* f=new(ELeave) CTestConsoleFactory();