--- 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<CTaskHandler>* iTaskHandlerList;
CArrayPtrFlat<CAsyncCleaner>* 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();