--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookengines_old/contactsmodel/tsrc/t_currentdb.h Fri Jun 11 13:29:23 2010 +0300
@@ -0,0 +1,231 @@
+// Copyright (c) 1997-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:
+//
+
+#ifndef __T_CURRENTDB_H__
+#define __T_CURRENTDB_H__
+
+// System includes
+#include <cntdb.h>
+#include <cntitem.h>
+#include <cntfield.h>
+#include <cntfldst.h>
+
+// Classes referenced
+class RTest;
+class CConsoleBase;
+class CCntTest;
+class CTestBase;
+class CTestManager;
+
+
+//
+// -------> CTestBase (header)
+//
+class CTestBase : public CActive, public MContactDbObserver
+ {
+//
+public: // ENUMERATIONS SHARED BETWEEN DRIVER & TEST
+//
+ enum
+ {
+ EStartTests = 0,
+ ETest1 = EStartTests,
+ ETest2,
+ ETest3,
+ ETest4,
+ ETest5,
+ ETest6,
+ ETest7,
+ ETest8,
+ ETest9,
+ EEndTests
+ };
+
+//
+public: // STATIC CONSTRUCT / DESTRUCT
+//
+ ~CTestBase();
+
+//
+public: // ACCESS
+//
+ void Complete(TInt aReason);
+ inline TInt CurrentTest() const { return iCurrentTest; }
+ inline RThread& Thread() { return iThread; }
+ inline TBool Waiting() const { return iWaiting || iWaitingForAnyEvent; }
+
+//
+protected: // INTERNAL CONSTRUCTION
+//
+ CTestBase(CTestManager& aTester, TInt aClientNumber, TThreadPriority aThreadPriority, TInt aPriority);
+ virtual void ConstructL(const TDesC& aName);
+ //
+ static TInt ThreadFunction(TAny *aParam);
+ void RunTestsL();
+
+//
+protected: // TEST FRAMEWORK
+//
+ virtual void OpenDatabaseL() = 0;
+ virtual TInt HandleThreadCreationL();
+ virtual void HandleThreadDeletionL();
+
+//
+protected: // FROM MContactDbObserver
+//
+ void HandleDatabaseEventL(TContactDbObserverEvent aEvent);
+
+//
+private: // FROM CActive
+//
+ void RunL();
+ void DoCancel();
+
+//
+protected: // TEST RELATED
+//
+ void ReadyForNextTest();
+ void WaitForContactsEvent(TContactDbObserverEventType aEvent, TInt aTimeInSecondsToWaitFor = 30);
+ void WaitForAnyContactsEvent(TInt aTimeInSecondsToWaitFor = 30);
+
+ virtual void DoTestL(TInt aTestNumber) = 0;
+ void OpenSemaphoreL();
+ void CloseSemaphore();
+
+//
+protected: // MEMBER DATA
+//
+ CTestManager& iTestCoordinator;
+
+ // Owned by this class after the thread has been created
+ CCntTest* iContactsTest;
+ CConsoleBase* iConsole;
+ RTest* iTest;
+
+ //
+ TInt iCurrentTest;
+ TInt iClientNumber;
+ RThread iThread;
+ TThreadPriority iThreadPriority;
+
+ //
+ TBool iWaiting;
+ TBool iWaitingForAnyEvent;
+ TContactDbObserverEventType iEvent;
+ TContactDbObserverEvent iLastEvent;
+ RTimer iWaitTimer;
+ RSemaphore iSemaphoreOne;
+ RSemaphore iSemaphoreTwo;
+ };
+
+
+//
+// -------> CTestThreadOne (header)
+//
+class CTestThreadOne : public CTestBase
+ {
+//
+public: // FROM CTestBase
+//
+ static CTestThreadOne* NewL(TInt aClientNumber, const TDesC& aName, CTestManager& aTester, TThreadPriority aThreadPriority = EPriorityNormal, TInt aPriority = EPriorityStandard);
+ void DoTestL(TInt aTestNumber);
+ void OpenDatabaseL();
+
+//
+private: // INTERNAL
+//
+ CTestThreadOne(CTestManager& aTester, TInt aClientNumber, TThreadPriority aThreadPriority, TInt aPriority);
+ //
+ void DoTest1L();
+ void DoTest2L();
+ void DoTest3L();
+ void DoTest4L();
+ void DoTest5L();
+ void DoTest6L();
+ void DoTest7L();
+ void DoTest8L();
+ void DoTest9L();
+ };
+
+
+//
+// -------> CTestThreadTwo (header)
+//
+class CTestThreadTwo : public CTestBase
+ {
+//
+public: // FROM CTestBase
+//
+ static CTestThreadTwo* NewL(TInt aClientNumber, const TDesC& aName, CTestManager& aTester, TThreadPriority aThreadPriority, TInt aPriority = EPriorityStandard);
+ void DoTestL(TInt aTestNumber);
+ void OpenDatabaseL();
+
+//
+private: // INTERNAL
+//
+ CTestThreadTwo(CTestManager& aTester, TInt aClientNumber, TThreadPriority aThreadPriority, TInt aPriority);
+ //
+ void DoTest1L();
+ void DoTest2L();
+ void DoTest3L();
+ void DoTest4L();
+ void DoTest5L();
+ void DoTest6L();
+ void DoTest7L();
+ void DoTest8L();
+ void DoTest9L();
+ };
+
+
+//
+// -------> CTestManager (header)
+//
+class CTestManager : public CTimer
+ {
+//
+public: // STATIC CONSTRUCT
+//
+ static CTestManager* NewLC();
+ static CTestManager* NewL();
+ ~CTestManager();
+
+//
+private: // INTERNAL CONSTRUCT
+//
+ CTestManager(TInt aPriority = EPriorityStandard);
+ void ConstructL();
+
+//
+private: // FROM CActive
+//
+ void RunL();
+
+//
+private: // NEW FUNCTIONS
+//
+ void IssueTimerRequest();
+
+//
+private: // MEMBER DATA
+//
+ TInt iTestNumber;
+ //
+ CTestThreadOne* iClient1;
+ CTestThreadTwo* iClient2;
+ };
+
+
+
+#endif