diff -r 8fc8de15e664 -r afebdb533a85 commsfwsupport/commselements/serverden/inc/sd_roles.h --- a/commsfwsupport/commselements/serverden/inc/sd_roles.h Mon May 24 18:49:19 2010 +0100 +++ b/commsfwsupport/commselements/serverden/inc/sd_roles.h Tue Jul 20 18:12:15 2010 +0100 @@ -545,7 +545,19 @@ { private: enum { ELivingSession = 0x80000000 }; - + + NONSHARABLE_CLASS(CSubSessionCloseThrottle) : public CAsyncOneShot + { + public: + CSubSessionCloseThrottle(CCommonSessionProxy& aProxy); + void RunL(); + private: + CCommonSessionProxy& iProxy; + }; + + static const TInt KSubSessionThrottleSize = 15; + friend class CSubSessionCloseThrottle; + public: IMPORT_C ~CCommonSessionProxy(); @@ -576,10 +588,14 @@ IMPORT_C CCommonSessionProxy(CWorkerSession* aSession, CCommonPlayer& aPlayer); private: + void DeleteSubSessionsWithThrottling(); + +private: CWorkerSession* iSession; //< The session which is represented by proxy instance CCommonPlayer& iPlayer; TInt iNumSubSessClosing; //< Number of subsessions in current thread to complete TDblQueLink iLink; + CSubSessionCloseThrottle iSubSessionCloseThrottle; }; /**