phonebookengines_old/contactsmodel/tsrc/t_database_killer.h
changeset 40 b46a585f6909
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookengines_old/contactsmodel/tsrc/t_database_killer.h	Fri Jun 11 13:29:23 2010 +0300
@@ -0,0 +1,108 @@
+// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "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:
+//
+
+#include <cntview.h>
+#include "t_utils2.h"
+
+class CDatabaseTesterBase;
+
+class CTestConductor : public CBase
+	{
+public:
+	static CTestConductor* NewL(TBool aKillFourTimes);
+	~CTestConductor();
+	void SetTestError(TInt aTestError);
+private:
+	CTestConductor(TBool aKillFourTimes);
+	void ConstructL();
+	void RunTestsL();
+private:
+	RFs iFs;
+	CLog* iLog;
+	CContactDatabase* iDb;
+	TBool iKillFourTimes;
+	CTestRegister* iTempFiles;
+	TInt iTestError;
+	};
+
+class CDatabaseTester : public CActive
+	{
+public:
+	static CDatabaseTester* NewL(CLog& aLog,CContactDatabase& iDb,CTestConductor* aTestConductor, TBool aKillFourTimes);
+	~CDatabaseTester();
+private:
+	CDatabaseTester(CLog& aLog,CContactDatabase& iDb,CTestConductor* aTestConductor, TBool aKillFourTimes);
+	void ConstructL();
+	void NextTest();
+	void AddContactsL();
+private: // From CActive.
+	void RunL();
+	TInt RunError(TInt aError);
+	void DoCancel();
+private:
+	void FindServerAndKillItL(TInt aDelay);
+	void SetupThreadL();
+	void SetupProcessL();
+	void DeleteThread();
+	void DeleteProcess();
+	void OpenAndKillProcess();
+	void OpenAndKillThread();
+	void WaitForServerToClose();
+	void AddContactL(TInt aBitwiseFilterType);
+
+private:
+	enum TTest
+		{
+		EInitialisingTests,
+		EAddContacts,
+		EKillThreadFirstTime,
+		ERemoveContacts,
+		EKillThreadSecondTime,
+		EAddMoreContacts,
+		EKillThreadThirdTime,
+		ERemoveMoreContacts,
+		EKillThreadForthTime,
+		ENumTests
+		};
+private:
+	CLog& iLog;
+	CContactDatabase& iDb;
+	TTest iCurrentTest;
+	TBuf<128> iScratchBuf;
+	TInt iFilter;
+	TInt iNumNotificationExpected;
+	CTestConductor* iTestConductor;
+	TInt iItemEventsExpected;
+	TInt iItemsEventsRecieved;
+	CRandomContactGenerator* iRandomGenerator;
+	TInt iTotalContacts;
+	TBool iKillFourTimes;
+private:
+	union
+		{
+		struct
+			{
+			TFindThread* iFind;
+			RThread* iExecution;
+			} iThread;
+		struct
+			{
+			TFindProcess* iFind;
+			RProcess* iExecution;
+			} iProcess;
+		} iProcessOrThread;
+	TFullName iProcessOrThreadFullName;
+
+	};