diff -r 29c8f9bc68e1 -r 5960d2d03390 vpnengine/sit/inc/taskarrivalobserver.h --- a/vpnengine/sit/inc/taskarrivalobserver.h Wed Sep 15 13:20:54 2010 +0300 +++ b/vpnengine/sit/inc/taskarrivalobserver.h Wed Oct 13 15:42:16 2010 +0300 @@ -32,13 +32,14 @@ /** * Combined task handler arrival observer and task handler manager. */ -NONSHARABLE_CLASS(CTaskArrivalObserver) : public CBase, - public MEventObserver, - public MTaskHandlerManager +NONSHARABLE_CLASS(CTaskArrivalObserver) : public CAsyncOneShot, public MEventObserver, public MTaskHandlerManager { public: static CTaskArrivalObserver* NewL(); ~CTaskArrivalObserver(); + +private: // From CAsyncOneShot + void RunL(); public: void Start(); @@ -58,12 +59,17 @@ void ConstructL(); private: // Implementation - void LaunchTaskHandlerL(const TTaskArrivedEventData& aEventSpec); + void LaunchTaskHandlerL(const TTaskArrivedEventData& aEventSpec); + CTaskHandler* CreateTaskHandlerL(const TTaskArrivedEventData& aEventSpec); + TInt FindTaskHandler(CTaskHandler* aTaskHandler); + TInt FindAsyncCleaner(CAsyncCleaner* aAsyncCleaner); + void AsyncDeleteTaskHandler(CTaskHandler* aTaskHandler); private: REventMediator iEventMediator; CArrayPtrFlat* iTaskHandlerList; CArrayPtrFlat* iAsyncCleanerList; + CTaskHandler* iTaskHandlerToDelete; }; NONSHARABLE_CLASS(CAsyncCleaner) : public CAsyncOneShot @@ -71,8 +77,8 @@ public: CAsyncCleaner(CTaskArrivalObserver* aTaskArrivalObserver, CTaskHandler* aTaskHandlerToDelete); - void Start(); - TBool IsMatchingCleaner(const CTaskHandler& aTaskHandler) const; + void Start(); + private: // From CAsyncOneShot void RunL();