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 |
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 |