kerneltest/sdiotest/source/sdio_io.h
branchRCL_3
changeset 268 345b1ca54e88
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/kerneltest/sdiotest/source/sdio_io.h	Wed Sep 15 13:42:27 2010 +0300
@@ -0,0 +1,337 @@
+// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "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:
+// LDD for testing SDIO functions
+// 
+//
+
+#if !defined(__SDIO_IO_H__)
+#define __SDIO_IO_H__
+
+#include "tdisplay.h"
+
+/**
+Macro to format a variable length number of parameters into the iText member variable.
+
+@param c The format string
+
+@internal
+@test
+*/
+#define FORMAT_TEXT(c) VA_LIST list; \
+	VA_START(list, c); \
+	FormatText(c, list); \
+	VA_END(list)
+
+class CIOBase : public CBase
+/**
+Base class to provide input/output facilities. Uses the function signatures from THexDisplay, 
+with dummy implementation.
+
+@internal
+@test
+*/
+	{
+public:
+
+#if defined(_UNICODE)
+	class TIOOverflowHandler : public TDes16Overflow
+	/**
+	Base class to handle any logging overflows. 
+
+	@internal
+	@test
+	*/
+		{
+		public:
+			/**
+			Handle the overflow. 
+
+			@param aDes The descriptor at its maximum length.
+			
+			@internal
+			@test
+			*/
+			virtual void Overflow(TDes16 &aDes);
+		};
+#else
+	class TIOOverflowHandler : public TDes8Overflow
+	/**
+	Base class to handle any logging overflows. 
+
+	@internal
+	@test
+	*/
+		{
+		public:
+			/**
+			Handle the overflow. 
+
+			@param aDes The descriptor at its maximum length.
+			
+			@internal
+			@test
+			*/
+			virtual void Overflow(TDes8 &aDes);
+		};
+#endif
+	
+	/**
+	Constructor. 
+
+	@internal
+	@test
+	*/
+	CIOBase() {};
+
+	/**
+	Destructor. 
+
+	@internal
+	@test
+	*/
+	~CIOBase() {};
+
+	/**
+	Create the underlying resource. 
+
+	@param aName The name for the tests.
+	
+	@internal
+	@test
+	*/
+	virtual void CreateL(TPtrC aName) {};
+
+	/**
+	Provide a heading for the next test. 
+
+	@param aFmt The heading format.
+	
+	@internal
+	@test
+	*/
+	void Heading(TRefByValue<const TDesC> aFmt,...);
+
+	/**
+	Provide some instructions. 
+
+	@param aTopLine Whether to start from the top.
+	@param aFmt The formmatted text..
+	
+	@internal
+	@test
+	*/
+	void Instructions(TBool aTopLine, TRefByValue<const TDesC> aFmt,...);
+
+	/**
+	Print formatted output. 
+
+	@param aFmt The formmatted text.
+	
+	@internal
+	@test
+	*/
+	void Printf(TRefByValue<const TDesC> aFmt,...);
+
+	/**
+	Report an error. 
+
+	@param aErrText The heading format.
+	@param aErr The error code.
+	
+	@internal
+	@test
+	*/
+	virtual void ReportError(TPtrC aErrText, TInt aErr = KErrNone) {};
+
+	/**
+	Move to the curser to the start of the line. 
+	
+	@internal
+	@test
+	*/
+	virtual void CurserToDataStart() {};
+
+	/**
+	Get a character from the input stream.
+	
+	@return The keycode of the input character. 
+	
+	@internal
+	@test
+	*/
+	virtual TKeyCode Getch() { return EKeyNull; };
+	
+	/**
+	Clear the screen.
+		
+	@internal
+	@test
+	*/
+	virtual void ClearScreen() {};
+	
+protected:
+	virtual void DoHeading() {};
+	virtual void DoInstructions(TBool aTopLine) {};
+	virtual void DoPrintf() {};
+	void FormatText(TRefByValue<const TDesC> aFmt, VA_LIST aList);
+
+protected:	
+	/** A temporary buffer for formatting text */
+	TBuf<512>			iText;
+	/** An overflow handler */
+	TIOOverflowHandler	iOverflowHandler;
+	};
+
+class CIOConsole : public CIOBase
+/**
+Class to provide input/output facilities using THexDisplay.
+
+@internal
+@test
+*/
+	{
+public:
+	/**
+	Constructor. 
+
+	@internal
+	@test
+	*/
+	CIOConsole() {};
+
+	/**
+	Destructor. 
+
+	@internal
+	@test
+	*/
+	~CIOConsole();
+	
+	/**
+	Create the underlying resource. 
+
+	@param aName The name for the tests.
+	
+	@internal
+	@test
+	*/
+	virtual void CreateL(TPtrC aName);
+
+	/**
+	Report an error. 
+
+	@param aErrText The heading format.
+	@param aErr The error code.
+	
+	@internal
+	@test
+	*/
+	virtual void ReportError(TPtrC aErrText, TInt aErr=KErrNone);
+
+	/**
+	Move to the curser to the start of the line. 
+	
+	@internal
+	@test
+	*/
+	virtual void CurserToDataStart();
+
+	/**
+	Get a character from the input stream.
+	
+	@return The keycode of the input character. 
+	
+	@internal
+	@test
+	*/
+	virtual TKeyCode Getch();
+
+	/**
+	Clear the screen.
+		
+	@internal
+	@test
+	*/
+	virtual void ClearScreen();	
+	
+protected:
+	virtual void DoHeading();
+	virtual void DoInstructions(TBool aTopLine);
+	virtual void DoPrintf();
+
+private:
+	THexDisplay	iDisplay;
+	};
+
+class CIORDebug : public CIOBase
+/**
+Class to provide input/output facilities using RDebug.
+
+@internal
+@test
+*/
+	{
+public:
+	/**
+	Constructor. 
+
+	@internal
+	@test
+	*/
+	CIORDebug() {};
+
+	/**
+	Destructor. 
+
+	@internal
+	@test
+	*/
+	~CIORDebug() {};
+	
+	/**
+	Create the underlying resource. 
+
+	@param aName The name for the tests.
+	
+	@internal
+	@test
+	*/
+	virtual void CreateL(TPtrC aName);
+
+	/**
+	Report an error. 
+
+	@param aErrText The heading format.
+	@param aErr The error code.
+	
+	@internal
+	@test
+	*/
+	virtual void ReportError(TPtrC aErrText, TInt aErr=KErrNone);
+	
+	/**
+	Clear the screen.
+	
+	@internal
+	@test
+	*/
+	virtual void ClearScreen();	
+
+protected:
+	virtual void DoHeading();
+	virtual void DoPrintf();
+	};
+
+#endif // __SDIO_IO_H__
+