vpnengine/sit/inc/taskarrivalobserver.h
branchRCL_3
changeset 44 735de8341ce4
parent 0 33413c0669b9
child 49 5960d2d03390
equal deleted inserted replaced
41:e06095241a65 44:735de8341ce4
    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 CAsyncOneShot, public MEventObserver, public MTaskHandlerManager
    35 NONSHARABLE_CLASS(CTaskArrivalObserver) : public CBase,
       
    36                                           public MEventObserver, 
       
    37                                           public MTaskHandlerManager
    36     {
    38     {
    37 public:
    39 public:
    38     static CTaskArrivalObserver* NewL();
    40     static CTaskArrivalObserver* NewL();
    39     ~CTaskArrivalObserver();
    41     ~CTaskArrivalObserver();
    40 
       
    41 private: // From CAsyncOneShot
       
    42     void RunL();
       
    43     
    42     
    44 public:
    43 public:
    45     void Start();
    44     void Start();
    46     void Cancel();
    45     void Cancel();
    47     void DeleteTaskHandler(CTaskHandler* aTaskHandler);
    46     void DeleteTaskHandler(CTaskHandler* aTaskHandler);
    57 private: // Construction
    56 private: // Construction
    58     CTaskArrivalObserver();
    57     CTaskArrivalObserver();
    59     void ConstructL();
    58     void ConstructL();
    60 
    59 
    61 private: // Implementation
    60 private: // Implementation
    62     void LaunchTaskHandlerL(const TTaskArrivedEventData& aEventSpec);
    61     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);
       
    67 
    62 
    68 private:
    63 private:
    69     REventMediator iEventMediator;
    64     REventMediator iEventMediator;
    70     CArrayPtrFlat<CTaskHandler>* iTaskHandlerList;
    65     CArrayPtrFlat<CTaskHandler>* iTaskHandlerList;
    71     CArrayPtrFlat<CAsyncCleaner>* iAsyncCleanerList;
    66     CArrayPtrFlat<CAsyncCleaner>* iAsyncCleanerList;
    72     CTaskHandler* iTaskHandlerToDelete;
       
    73     };
    67     };
    74 
    68 
    75 NONSHARABLE_CLASS(CAsyncCleaner) : public CAsyncOneShot
    69 NONSHARABLE_CLASS(CAsyncCleaner) : public CAsyncOneShot
    76     {
    70     {
    77 public:
    71 public:
    78     CAsyncCleaner(CTaskArrivalObserver* aTaskArrivalObserver,
    72     CAsyncCleaner(CTaskArrivalObserver* aTaskArrivalObserver,
    79                   CTaskHandler* aTaskHandlerToDelete);
    73                   CTaskHandler* aTaskHandlerToDelete);
    80     void Start();
    74     void Start();        
    81         
    75     TBool IsMatchingCleaner(const CTaskHandler& aTaskHandler) const;
    82 private: // From CAsyncOneShot
    76 private: // From CAsyncOneShot
    83     void RunL();
    77     void RunL();
    84 
    78 
    85 private:
    79 private:
    86     CTaskArrivalObserver* iTaskArrivalObserver;
    80     CTaskArrivalObserver* iTaskArrivalObserver;