00001 /* 00002 * Copyright © 2008 Nokia Corporation. 00003 */ 00004 00005 00006 #ifndef __THREAD_AO_ENGINE_H__ 00007 #define __THREAD_AO_ENGINE_H__ 00008 00009 // INCLUDES 00010 #include "e32base.h" //CTimer 00011 #include "badesca.h" // CDesCaRrayFlat 00012 #include "SharedIntermediator.h" 00013 #include "ThreadListener.h" 00014 00015 // FORWARD DECLARATIONS 00016 class SharedIntermediator; 00017 00018 // CLASS DECLARATION 00019 00023 class CThreadAOEngine : public CBase 00024 { 00025 public: 00026 00035 static CThreadAOEngine* NewL(CSharedIntermediator* aSMediator); 00036 00041 static CThreadAOEngine* NewLC(CSharedIntermediator* aSMediator); 00042 00047 ~CThreadAOEngine(); 00048 00055 void StartL(); 00056 00062 void Stop(); 00063 00071 static TInt ExecuteThreadOne(TAny *aPtr); 00072 00081 static void CreateActiveSchedulerL(CSharedIntermediator* aSMediator); 00082 00083 private: //functions 00084 00090 void CreateThreadsL(); 00091 00092 private: // Basic two-phase Symbian OS constructors 00093 00098 void ConstructL(); 00099 00106 CThreadAOEngine(CSharedIntermediator* aSMediator); 00107 00108 private: // data members 00109 00110 // a handle for thread1 00111 RThread iThreadOne; 00112 00113 // Create a new thread only once. True means that the thread has been created, 00114 // false otherwise. 00115 TBool iCreatedThreads; 00116 00117 // Shared intermediator. Transmits data between thread1 and the mainthread 00118 CSharedIntermediator* iSMediator; 00119 00120 // Thread1 state listener. 00121 CThreadListener* iListener; 00122 }; 00123 00124 #endif // __THREAD_AO_ENGINE_H__