vpnengine/sit/inc/taskarrivalobserver.h
branchRCL_3
changeset 49 5960d2d03390
parent 44 735de8341ce4
equal deleted inserted replaced
46:29c8f9bc68e1 49:5960d2d03390
    30 class CAsyncCleaner;
    30 class CAsyncCleaner;
    31 
    31 
    32 /**
    32 /**
    33  * Combined task handler arrival observer and task handler manager.
    33  * Combined task handler arrival observer and task handler manager.
    34  */
    34  */
    35 NONSHARABLE_CLASS(CTaskArrivalObserver) : public CBase,
    35 NONSHARABLE_CLASS(CTaskArrivalObserver) : public CAsyncOneShot, public MEventObserver, public MTaskHandlerManager
    36                                           public MEventObserver, 
       
    37                                           public MTaskHandlerManager
       
    38     {
    36     {
    39 public:
    37 public:
    40     static CTaskArrivalObserver* NewL();
    38     static CTaskArrivalObserver* NewL();
    41     ~CTaskArrivalObserver();
    39     ~CTaskArrivalObserver();
       
    40 
       
    41 private: // From CAsyncOneShot
       
    42     void RunL();
    42     
    43     
    43 public:
    44 public:
    44     void Start();
    45     void Start();
    45     void Cancel();
    46     void Cancel();
    46     void DeleteTaskHandler(CTaskHandler* aTaskHandler);
    47     void DeleteTaskHandler(CTaskHandler* aTaskHandler);
    56 private: // Construction
    57 private: // Construction
    57     CTaskArrivalObserver();
    58     CTaskArrivalObserver();
    58     void ConstructL();
    59     void ConstructL();
    59 
    60 
    60 private: // Implementation
    61 private: // Implementation
    61     void LaunchTaskHandlerL(const TTaskArrivedEventData& aEventSpec);    
    62     void LaunchTaskHandlerL(const TTaskArrivedEventData& aEventSpec);
       
    63     CTaskHandler* CreateTaskHandlerL(const TTaskArrivedEventData& aEventSpec);
       
    64     TInt FindTaskHandler(CTaskHandler* aTaskHandler);
       
    65     TInt FindAsyncCleaner(CAsyncCleaner* aAsyncCleaner);
       
    66     void AsyncDeleteTaskHandler(CTaskHandler* aTaskHandler);
    62 
    67 
    63 private:
    68 private:
    64     REventMediator iEventMediator;
    69     REventMediator iEventMediator;
    65     CArrayPtrFlat<CTaskHandler>* iTaskHandlerList;
    70     CArrayPtrFlat<CTaskHandler>* iTaskHandlerList;
    66     CArrayPtrFlat<CAsyncCleaner>* iAsyncCleanerList;
    71     CArrayPtrFlat<CAsyncCleaner>* iAsyncCleanerList;
       
    72     CTaskHandler* iTaskHandlerToDelete;
    67     };
    73     };
    68 
    74 
    69 NONSHARABLE_CLASS(CAsyncCleaner) : public CAsyncOneShot
    75 NONSHARABLE_CLASS(CAsyncCleaner) : public CAsyncOneShot
    70     {
    76     {
    71 public:
    77 public:
    72     CAsyncCleaner(CTaskArrivalObserver* aTaskArrivalObserver,
    78     CAsyncCleaner(CTaskArrivalObserver* aTaskArrivalObserver,
    73                   CTaskHandler* aTaskHandlerToDelete);
    79                   CTaskHandler* aTaskHandlerToDelete);
    74     void Start();        
    80     void Start();
    75     TBool IsMatchingCleaner(const CTaskHandler& aTaskHandler) const;
    81         
    76 private: // From CAsyncOneShot
    82 private: // From CAsyncOneShot
    77     void RunL();
    83     void RunL();
    78 
    84 
    79 private:
    85 private:
    80     CTaskArrivalObserver* iTaskArrivalObserver;
    86     CTaskArrivalObserver* iTaskArrivalObserver;