diff -r fd64c38c277d -r b46a585f6909 phonebookengines_old/contactsmodel/tsrc/t_currentdb.h --- /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 +#include +#include +#include + +// 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