commsfwsupport/commselements/serverden/inc/sd_roles.h
branchRCL_3
changeset 70 b564fb5fd78b
parent 69 9d7ce34704c8
equal deleted inserted replaced
69:9d7ce34704c8 70:b564fb5fd78b
   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    
       
   561 public:
   549 public:
   562 	IMPORT_C ~CCommonSessionProxy();
   550 	IMPORT_C ~CCommonSessionProxy();
   563 
   551 
   564 	static TInt GetLinkOffset()
   552 	static TInt GetLinkOffset()
   565 		{
   553 		{
   584 	void BeginSessionClose();
   572 	void BeginSessionClose();
   585 	IMPORT_C void NotifySubSessionDestroyed();
   573 	IMPORT_C void NotifySubSessionDestroyed();
   586 
   574 
   587 protected:
   575 protected:
   588 	IMPORT_C CCommonSessionProxy(CWorkerSession* aSession, CCommonPlayer& aPlayer);
   576 	IMPORT_C CCommonSessionProxy(CWorkerSession* aSession, CCommonPlayer& aPlayer);
   589 
       
   590 private:
       
   591 	void DeleteSubSessionsWithThrottling();
       
   592 
   577 
   593 private:
   578 private:
   594 	CWorkerSession* iSession;   		//< The session which is represented by proxy instance
   579 	CWorkerSession* iSession;   		//< The session which is represented by proxy instance
   595 	CCommonPlayer& iPlayer;
   580 	CCommonPlayer& iPlayer;
   596 	TInt iNumSubSessClosing;			//< Number of subsessions in current thread to complete
   581 	TInt iNumSubSessClosing;			//< Number of subsessions in current thread to complete
   597 	TDblQueLink iLink;
   582 	TDblQueLink iLink;
   598 	CSubSessionCloseThrottle iSubSessionCloseThrottle;
       
   599 	};
   583 	};
   600 
   584 
   601 /**
   585 /**
   602 class CCommonPlayer
   586 class CCommonPlayer
   603 The main responsibility is adding/removing sub-sessions from the provider container
   587 The main responsibility is adding/removing sub-sessions from the provider container