commsfwsupport/commselements/serverden/inc/sd_roles.h
changeset 65 41cc8e7ff496
parent 0 dfb7c4ff071f
child 70 b564fb5fd78b
equal deleted inserted replaced
40:34fc115b8742 65:41cc8e7ff496
   543 */
   543 */
   544 class CCommonSessionProxy : public CBase
   544 class CCommonSessionProxy : public CBase
   545 	{
   545 	{
   546 private:
   546 private:
   547 	enum { ELivingSession = 0x80000000 };
   547 	enum { ELivingSession = 0x80000000 };
   548 
   548 	
       
   549    NONSHARABLE_CLASS(CSubSessionCloseThrottle) : public CAsyncOneShot
       
   550         {
       
   551         public:
       
   552            CSubSessionCloseThrottle(CCommonSessionProxy& aProxy);
       
   553             void RunL();
       
   554         private:
       
   555             CCommonSessionProxy& iProxy;
       
   556         };
       
   557    
       
   558    static const TInt KSubSessionThrottleSize = 15; 
       
   559    friend class CSubSessionCloseThrottle;
       
   560    
   549 public:
   561 public:
   550 	IMPORT_C ~CCommonSessionProxy();
   562 	IMPORT_C ~CCommonSessionProxy();
   551 
   563 
   552 	static TInt GetLinkOffset()
   564 	static TInt GetLinkOffset()
   553 		{
   565 		{
   572 	void BeginSessionClose();
   584 	void BeginSessionClose();
   573 	IMPORT_C void NotifySubSessionDestroyed();
   585 	IMPORT_C void NotifySubSessionDestroyed();
   574 
   586 
   575 protected:
   587 protected:
   576 	IMPORT_C CCommonSessionProxy(CWorkerSession* aSession, CCommonPlayer& aPlayer);
   588 	IMPORT_C CCommonSessionProxy(CWorkerSession* aSession, CCommonPlayer& aPlayer);
       
   589 
       
   590 private:
       
   591 	void DeleteSubSessionsWithThrottling();
   577 
   592 
   578 private:
   593 private:
   579 	CWorkerSession* iSession;   		//< The session which is represented by proxy instance
   594 	CWorkerSession* iSession;   		//< The session which is represented by proxy instance
   580 	CCommonPlayer& iPlayer;
   595 	CCommonPlayer& iPlayer;
   581 	TInt iNumSubSessClosing;			//< Number of subsessions in current thread to complete
   596 	TInt iNumSubSessClosing;			//< Number of subsessions in current thread to complete
   582 	TDblQueLink iLink;
   597 	TDblQueLink iLink;
       
   598 	CSubSessionCloseThrottle iSubSessionCloseThrottle;
   583 	};
   599 	};
   584 
   600 
   585 /**
   601 /**
   586 class CCommonPlayer
   602 class CCommonPlayer
   587 The main responsibility is adding/removing sub-sessions from the provider container
   603 The main responsibility is adding/removing sub-sessions from the provider container