equal
deleted
inserted
replaced
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 |