os/ossrv/genericopenlibs/openenvcore/backend/inc/consolestream.h
changeset 0 bde4ae8d615e
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/os/ossrv/genericopenlibs/openenvcore/backend/inc/consolestream.h	Fri Jun 15 03:10:57 2012 +0200
     1.3 @@ -0,0 +1,71 @@
     1.4 +/*
     1.5 +* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
     1.6 +* All rights reserved.
     1.7 +* This component and the accompanying materials are made available
     1.8 +* under the terms of "Eclipse Public License v1.0"
     1.9 +* which accompanies this distribution, and is available
    1.10 +* at the URL "http://www.eclipse.org/legal/epl-v10.html".
    1.11 +*
    1.12 +* Initial Contributors:
    1.13 +* Nokia Corporation - initial contribution.
    1.14 +*
    1.15 +* Contributors:
    1.16 +*
    1.17 +* Description:
    1.18 +* Name        : consolestream.h
    1.19 +* Part of     : stdio server
    1.20 +* To handle console read and write
    1.21 +* 
    1.22 +*
    1.23 +*/
    1.24 +
    1.25 +
    1.26 +
    1.27 + 
    1.28 +#ifndef _CONSOLESTREAM_H_
    1.29 +#define _CONSOLESTREAM_H_
    1.30 +
    1.31 +#include "streambase.h" //CStreamBase
    1.32 +#include "ReadRequestHandler.h" //MRead and CReadRequestHandler
    1.33 +#include <e32keys.h>
    1.34 +
    1.35 +
    1.36 +class CConsoleBase;
    1.37 +
    1.38 +//Enumerations for the console echo - server side
    1.39 +enum TConsoleEcho
    1.40 +	{
    1.41 +	EOff = 0, //Turn Off the echo
    1.42 +	EOn = 1,  //Turn On the echo
    1.43 +	EPrintValid = 33, //Printable ascii character set <33-126>
    1.44 +	EPrintInvalid=127 
    1.45 +	};
    1.46 +
    1.47 +//-----------------------------------------------------------------------
    1.48 +//Class name:  CConsoleStream
    1.49 +//Description: This class represents the console stream abstraction.
    1.50 +// 			   It is created through the factory class CConsoleStreamFactory
    1.51 +//-----------------------------------------------------------------------
    1.52 +class CConsoleStream : public CStreamBase
    1.53 +	{
    1.54 +public:
    1.55 +    static CConsoleStream* NewL(TInt aWidth, TInt aHeight);
    1.56 +    virtual void WriteL(TDes8& aDes);
    1.57 +    virtual void Read(TRequestStatus& aStatus, const TInt aLength);
    1.58 + 	~CConsoleStream();
    1.59 + 	virtual void ReadCancel();
    1.60 + 	TDes8& Buf();
    1.61 + 	TInt SetEcho(TUint8 aEcho);
    1.62 + 	TStreamType Type() { return EConsole;}
    1.63 +	
    1.64 +private:
    1.65 +    CConsoleStream();	
    1.66 +    void ConstructL(TSize aConsoleSize);	 	 
    1.67 +    CConsoleBase* iConsole;
    1.68 +    TInt iBufPos;
    1.69 +    TUint8 iEchoVal; //decides what to echo
    1.70 +    void HandleBuf(TKeyCode & key);
    1.71 +    TBuf8<1> iTbuf;
    1.72 +    };
    1.73 +
    1.74 + #endif //_CONSOLESTREAM_H_