kerneltest/e32test/system/d_dobject.h
changeset 0 a41df078684a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/kerneltest/e32test/system/d_dobject.h	Mon Oct 19 15:55:17 2009 +0100
@@ -0,0 +1,144 @@
+// Copyright (c) 2004-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:
+// e32test\system\d_dobject.h
+// 
+//
+
+#ifndef __D_DOBJECT_H__
+#define __D_DOBJECT_H__
+#include <e32cmn.h>
+#ifndef __KERNEL_MODE__
+#include <e32std.h>
+#endif
+
+
+struct SParam
+	{
+	TInt duration;
+	TUint iSeed[2];
+	TBool iPerformanceTest; 
+	};
+
+class RTestDObject : public RBusLogicalChannel
+	{
+public:
+	enum TControl
+		{
+		ERObjectIxTest1,
+		ERObjectIxTest2,
+		ERObjectIxTest3,
+		ERObjectIxTest4,
+		ERObjectIxThreadTestCreateIx,
+		ERObjectIxThreadTestExerciseIx,
+		ERObjectIxThreadTestFreeIx,
+		ERObjectIxInvalidHandleLookupTest,
+		EDObjectNameTest,
+		};
+public:
+	inline TInt Open();
+
+public:
+	inline TInt RObjectIxTest1(TInt& aTime);
+	inline TInt RObjectIxTest2(TInt& aTime);
+	inline TInt RObjectIxTest3(SParam& aParam);
+	inline TInt RObjectIxTest4(TInt& aTime);
+	inline TInt RObjectIxThreadTestCreateIx(void*& aRObjectIxPtr);
+	inline TInt RObjectIxThreadTestExerciseIx(void* aRObjectIxPtr);
+	inline TInt RObjectIxThreadTestFreeIx(void* aRObjectIxPtr);
+	inline TInt InvalidHandleLookupTest();
+	inline TInt DObjectNameTest();
+	};
+
+_LIT(KDObjectTestLddName,"D_DOBJECT");
+
+
+#ifndef __KERNEL_MODE__
+inline TInt RTestDObject::Open()
+	{ return DoCreate(KDObjectTestLddName,TVersion(),KNullUnit,NULL,NULL); }
+
+inline TInt RTestDObject::RObjectIxTest1(TInt& aTime)
+	{
+	TRequestStatus aStatus;
+	DoRequest(ERObjectIxTest1,aStatus, &aTime);
+	User::WaitForRequest(aStatus);
+	return aStatus.Int();
+	}
+
+inline TInt RTestDObject::RObjectIxTest2(TInt& aTime)
+	{
+	TRequestStatus aStatus;
+	DoRequest(ERObjectIxTest2,aStatus, &aTime);
+	User::WaitForRequest(aStatus);
+	return aStatus.Int();
+	}
+
+inline TInt RTestDObject::RObjectIxTest3(SParam& aParam)
+	{
+	TRequestStatus aStatus;
+	DoRequest(ERObjectIxTest3,aStatus, &aParam);
+	User::WaitForRequest(aStatus);
+	return aStatus.Int();
+	}
+	
+inline TInt RTestDObject::RObjectIxTest4(TInt& aTime)
+	{
+	TRequestStatus aStatus;
+	DoRequest(ERObjectIxTest4,aStatus, &aTime);
+	User::WaitForRequest(aStatus);
+	return aStatus.Int();
+	} // RTestDObject::RObjectIxTest4
+
+inline TInt RTestDObject::RObjectIxThreadTestCreateIx(void*& aRObjectIxPtr)
+	{
+	TRequestStatus aStatus;
+	DoRequest(ERObjectIxThreadTestCreateIx,aStatus, &aRObjectIxPtr);
+	User::WaitForRequest(aStatus);
+	return aStatus.Int();
+	} // RTestDObject::RObjectIxThreadTestCreateIx
+
+inline TInt RTestDObject::RObjectIxThreadTestExerciseIx(void* aRObjectIxPtr)
+	{
+	TRequestStatus aStatus;
+	DoRequest(ERObjectIxThreadTestExerciseIx, aStatus, aRObjectIxPtr);
+	User::WaitForRequest(aStatus);
+	return aStatus.Int();
+	} // RTestDObject::RObjectIxThreadTestExerciseIx
+
+inline TInt RTestDObject::RObjectIxThreadTestFreeIx(void* aRObjectIxPtr)
+	{
+	TRequestStatus aStatus;
+	DoRequest(ERObjectIxThreadTestFreeIx,aStatus, aRObjectIxPtr);
+	User::WaitForRequest(aStatus);
+	return aStatus.Int();
+	} // RTestDObject::RObjectIxThreadTestFreeIx
+
+inline TInt RTestDObject::InvalidHandleLookupTest()
+	{
+	TRequestStatus aStatus;
+	DoRequest(ERObjectIxInvalidHandleLookupTest, aStatus);
+	User::WaitForRequest(aStatus);
+	return aStatus.Int();
+	} // RTestDObject::InvalidHandleLookupTest
+
+inline TInt RTestDObject::DObjectNameTest(void)
+	{
+	TRequestStatus aStatus;
+	DoRequest(EDObjectNameTest, aStatus);
+	User::WaitForRequest(aStatus);
+	return aStatus.Int();
+	}
+#endif
+
+#endif
+