kerneltest/f32test/ext/t_testext.h
changeset 0 a41df078684a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/kerneltest/f32test/ext/t_testext.h	Mon Oct 19 15:55:17 2009 +0100
@@ -0,0 +1,125 @@
+// Copyright (c) 2005-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:
+// f32test\ext\t_testext.h
+// 
+//
+
+#ifndef __TEST_EXT_H__
+#define __TEST_EXT_H__
+
+#include <f32fsys.h>
+
+//#define TESTEXT_DEBUG
+
+#if (defined(_DEBUG) || defined(_DEBUG_RELEASE)) && defined(TESTEXT_DEBUG)
+#define __PRINT(t) {RDebug::Print(t);}
+#define __PRINT1(t,a) {RDebug::Print(t,a);}
+#define __PRINT2(t,a,b) {RDebug::Print(t,a,b);}
+#else
+#define __PRINT(t)
+#define __PRINT1(t,a)
+#define __PRINT2(t,a,b)
+#endif
+
+#define EExtCustom (KMaxTInt/2)
+
+
+/**
+This is the test proxy drive extension base class.
+Test proxy drives of specific file system should derive from this base class.
+@internalTechnology
+*/
+class CTestProxyDrive : public CBaseExtProxyDrive
+	{
+public:
+    enum TTestCmd 
+        {
+        ESetEvent  = EExtCustom,
+        EMark,
+        EUnmark,
+        EUnmarkAll,
+        EIsMarked,
+        EDiskSize,
+        ETestCmdEnd = EExtCustom + 100
+        };
+    enum TBadSectorEvent
+        {
+        ENone, ENext, EDeterministic, ERandom
+        };
+
+protected:
+	CTestProxyDrive(CProxyDrive* aProxyDrive, CMountCB* aMount);
+    virtual ~CTestProxyDrive();
+
+public:
+    // Derived functions from CBaseExtProxyDrive
+    // Commented out because they are not changed. Sub-classes reimplement them
+    //  if interested.
+//	virtual TInt Initialise();
+//	virtual TInt Dismounted();
+//	virtual TInt Enlarge(TInt aLength);
+//	virtual TInt ReduceSize(TInt aPos, TInt aLength);
+//	virtual TInt Read(TInt64 aPos,TInt aLength,const TAny* aTrg,TInt aThreadHandle,TInt aOffset,TInt aFlags);
+//	virtual TInt Read(TInt64 aPos,TInt aLength,const TAny* aTrg,TInt aThreadHandle,TInt anOffset);
+//	virtual TInt Read(TInt64 aPos,TInt aLength,TDes8& aTrg);
+//	virtual TInt Write(TInt64 aPos,TInt aLength,const TAny* aSrc,TInt aThreadHandle,TInt aOffset,TInt aFlags);
+//	virtual TInt Write(TInt64 aPos,TInt aLength,const TAny* aSrc,TInt aThreadHandle,TInt anOffset);
+//	virtual TInt Write(TInt64 aPos,const TDesC8& aSrc);
+//	virtual TInt Caps(TDes8& anInfo);
+//	virtual TInt Format(TFormatInfo& anInfo);
+//	virtual TInt Format(TInt64 aPos,TInt aLength);
+//	virtual TInt SetMountInfo(const TDesC8* aMountInfo,TInt aMountInfoThreadHandle=KCurrentThreadHandle);
+//	virtual TInt ForceRemount(TUint aFlags=0);
+//	virtual TInt Unlock(TMediaPassword &aPassword, TBool aStorePassword);
+//	virtual TInt Lock(TMediaPassword &aOldPassword, TMediaPassword &aNewPassword, TBool aStorePassword);
+//	virtual TInt Clear(TMediaPassword &aPassword);
+//	virtual TInt ErasePassword();
+	virtual TInt ControlIO(const RMessagePtr2& aMessage,TInt aCommand,TAny* aParam1,TAny* aParam2);
+	virtual TInt GetLastErrorInfo(TDes8& aErrorInfo);
+
+protected:
+	/**
+	Return a pointer to a specified interface extension - to allow future extension of this class without breaking
+	binary compatibility.
+	@param aInterfaceId Interface identifier of the interface to be retrieved.
+	@param aInterface A reference to a pointer that retrieves the specified interface.
+	@param aInput An arbitrary input argument.
+	@return KErrNone If the interface is supported, KErrNotSupported otherwise.
+	*/	
+//	virtual TInt GetInterface(TInt aInterfaceId,TAny*& aInterface,TAny* aInput);
+
+protected:
+    void InitL();
+	TInt SetEvent(TInt aType, TInt aValue);
+	TInt Mark(TInt aSector);
+	TInt Unmark(TInt aSector);
+	TInt UnmarkAll();
+    TBool IsMarked(TInt aSector) const;
+    TBool CheckEvent(TInt64 aPos, TInt aLength);
+    virtual void DoInitL() = 0;
+    virtual TBool DoCheckEvent(TInt64 aPos, TInt aLength) = 0;
+    virtual TInt DoControlIO(const RMessagePtr2& aMessage,TInt aCommand,TAny* aParam1,TAny* aParam2) = 0;
+
+protected:
+    CMountCB* iMount;  // in CProxyDrive
+    TUint8* iMap;
+    TInt iTotalSectors;
+    TBool iMountInitialised;
+    TInt iEventType;
+    TInt iCount;
+    TInt iSuccessBytes;
+    TErrorInfo::TReasonCode iLastErrorReason;
+	};
+
+#endif