perfsrv/memspy/Engine/Include/ClientServer/MemSpyEngineServer.h
changeset 62 1c2bb2fc7c87
parent 51 98307c651589
equal deleted inserted replaced
56:aa2539c91954 62:1c2bb2fc7c87
    22 #include <e32base.h>
    22 #include <e32base.h>
    23 
    23 
    24 // User includes
    24 // User includes
    25 #include <memspyengineclientinterface.h>
    25 #include <memspyengineclientinterface.h>
    26 #include <memspy/engine/memspydevicewideoperations.h>
    26 #include <memspy/engine/memspydevicewideoperations.h>
       
    27 #include <memspy/engine/memspyengineobserver.h>
    27 
    28 
    28 // Classes referenced
    29 // Classes referenced
    29 class CMemSpyEngine;
    30 class CMemSpyEngine;
    30 class CMemSpyDwOperationTracker;
    31 class CMemSpyDwOperationTracker;
       
    32 class CMemSpyNotificationTracker;
    31 
    33 
    32 NONSHARABLE_CLASS( CShutdown ) : public CTimer
    34 NONSHARABLE_CLASS( CShutdown ) : public CTimer
    33     {
    35     {
    34     enum {KMyShutdownDelay=10 * 1000000};       // 10s
    36     enum {KMyShutdownDelay=10 * 1000000};       // 10s
    35 public:
    37 public:
    47     ~CMemSpyEngineServer();
    49     ~CMemSpyEngineServer();
    48     
    50     
    49     CMemSpyDwOperationTracker* CurrentOperationTracker() const { return iCurrentOperationTracker; }
    51     CMemSpyDwOperationTracker* CurrentOperationTracker() const { return iCurrentOperationTracker; }
    50     void SetCurrentOperationTracker(CMemSpyDwOperationTracker* aTracker) { iCurrentOperationTracker = aTracker; }
    52     void SetCurrentOperationTracker(CMemSpyDwOperationTracker* aTracker) { iCurrentOperationTracker = aTracker; }
    51     
    53     
       
    54     CMemSpyNotificationTracker* NotificationTracker() const { return iNotificationTracker; }
       
    55     
    52     CMemSpyEngine& Engine() { return iEngine; } 
    56     CMemSpyEngine& Engine() { return iEngine; } 
    53     
    57     
    54     void AddSession(TBool aCliRequest);
    58     void AddSession(TBool aCliRequest);
    55     void DropSession(TBool aCliRequest);
    59     void DropSession(TBool aCliRequest);
    56 
    60 
    62 	CSession2* NewSessionL(const TVersion& aVersion, const RMessage2& aMessage) const;
    66 	CSession2* NewSessionL(const TVersion& aVersion, const RMessage2& aMessage) const;
    63 
    67 
    64 private:
    68 private:
    65     CMemSpyEngine& iEngine;
    69     CMemSpyEngine& iEngine;
    66     CMemSpyDwOperationTracker* iCurrentOperationTracker;
    70     CMemSpyDwOperationTracker* iCurrentOperationTracker;
       
    71     CMemSpyNotificationTracker* iNotificationTracker;
    67     
    72     
    68     TInt iSessionCount;
    73     TInt iSessionCount;
    69     TBool iCliConnected;
    74     TBool iCliConnected;
    70     
    75     
    71     CShutdown iShutdown;
    76     CShutdown iShutdown;
   137 	CArrayFixFlat<RMessage2>* iPendingNotifications;
   142 	CArrayFixFlat<RMessage2>* iPendingNotifications;
   138 	CMemSpyDeviceWideOperations* iOperation;
   143 	CMemSpyDeviceWideOperations* iOperation;
   139 	TInt iProgress;
   144 	TInt iProgress;
   140 	};
   145 	};
   141 
   146 
       
   147 /**
       
   148  * CMemSpyNotificationTracker
       
   149  * Tracks notification requests for various events on server site. 
       
   150  * Currently only notifications of process changes are supported.  
       
   151  */
       
   152 NONSHARABLE_CLASS( CMemSpyNotificationTracker ) : public CBase, public MMemSpyEngineObserver
       
   153     {
       
   154 public:
       
   155     static CMemSpyNotificationTracker* NewL();
       
   156     ~CMemSpyNotificationTracker();
       
   157     
       
   158     void AddNotificationL( const RMessage2& aMessage );
       
   159     
       
   160     void CancelNotification(const RMessage2& aMessage);
       
   161 
       
   162 public: // From MMemSpyEngineObserver
       
   163     void HandleMemSpyEngineEventL( TEvent aEvent, TAny* aContext = NULL );
       
   164     
       
   165 private:
       
   166     CMemSpyNotificationTracker() {};
       
   167     void ConstructL();
       
   168     
       
   169 private:
       
   170     CArrayFixFlat<RMessage2>* iPendingNotifications;
       
   171     };
       
   172 
   142 
   173 
   143 #endif
   174 #endif