diff -r ac20d6a0a19d -r b982c3e940f3 telephonyprotocols/pdplayer/inc/pdptiermanager.h --- a/telephonyprotocols/pdplayer/inc/pdptiermanager.h Mon Aug 09 17:43:08 2010 +0100 +++ b/telephonyprotocols/pdplayer/inc/pdptiermanager.h Tue Sep 14 17:55:14 2010 +0100 @@ -1,4 +1,4 @@ -// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). // All rights reserved. // This component and the accompanying materials are made available // under the terms of "Eclipse Public License v1.0" @@ -24,6 +24,7 @@ #include #include #include +#include using namespace ESock; class CMBMSEngine; @@ -37,121 +38,6 @@ virtual void PacketServiceAttachedCallbackL() = 0; }; -class MContextEventsObserver - { -public: - virtual void PrimaryContextAddedL(const TName* aContextName) = 0; - virtual void SecondaryContextAdded(const TName* aContextName) = 0; - virtual void PrimaryContextDeleted(const CContextStatusMonitor* aContextStatusMonitor) = 0; - virtual void ContextMonitoringError(const CContextStatusMonitor* aContextStatusMonitor, TInt aError) = 0; - virtual void ContextTypeCheckingError(const TName* aContextName, TInt aError) = 0; - }; - -class CContextStatusMonitor : public CActive - { -public: - CContextStatusMonitor(RPacketService& aPacketService, MContextEventsObserver& aCallback); - ~CContextStatusMonitor(); - -public: - TBool StartL(const TName& aContextName); - inline TBool IsPassedThroughActiveState() const; - -private: - void RunL(); - void DoCancel(); - TInt RunError(TInt aError); - -private: - RPacketService& iPacketService; - RPacketContext iPacketContext; - RPacketContext::TContextStatus iContextStatus; - MContextEventsObserver& iCallback; - TName iContextName; - TBool iWasActive; - }; - - -class CPrimaryContextsMonitor : public CActive, MContextEventsObserver - { - enum TState {EEnumeratingContexts, EGettingInfo, EListening}; -public: - CPrimaryContextsMonitor(RPacketService& aPacketService, MContentionObserver& aCallback); - ~CPrimaryContextsMonitor(); -public: - void StartL(); - -// from MContextEventsObserver - void PrimaryContextAddedL(const TName* aContextName); - void SecondaryContextAdded(const TName* aContextName); - void PrimaryContextDeleted(const CContextStatusMonitor* aContextStatusMonitor); - void ContextMonitoringError(const CContextStatusMonitor* aContextStatusMonitor, TInt aError); - void ContextTypeCheckingError(const TName* aContextName, TInt aError); - -private: - void RunL(); - void DoCancel(); - TInt RunError(TInt aError); - void DeleteContextStatusMonitor(const CContextStatusMonitor* aContextStatusMonitor); - void SwitchStateL(); - void StartContextStatusMonitoringL(const TName& aContextName); - void RemoveContextNameAndCheckNext(const TName* aContextName); - void ProcessError(TInt aError); - -private: - RPointerArray iContextMonitors; - RPointerArray iAddedContextsNames; - CContextTypeChecker* iContextTypeChecker; - RPacketService& iPacketService; - TState iState; - RPacketService::TNifInfoV2 iCurrentNifInfo; - TInt iInitialNifsCount; - TInt iCurrentNifIndex; - TBool iFirstContextAdded; - MContentionObserver& iCallback; - }; - -class CContextTypeChecker : public CActive - { -public: - CContextTypeChecker(RPacketService& aPacketService, MContextEventsObserver& aCallback); - ~CContextTypeChecker(); - -public: - void Start(const TName* aContextName); - void RunL(); - TInt RunError(TInt aError); - void DoCancel(); - -private: - RPacketService& iPacketService; - const TName* iContextName; - MContextEventsObserver& iCallback; - TInt iCountInNif; - }; - -class CPdpContentionManager : public CContentionManager - { -public: - static CPdpContentionManager* NewL(const ESock::CTierManagerBase& aTierManager, RPacketService& aPacketService); - ~CPdpContentionManager(); - -public: - void StartMonitoringL(); - -private: - void ConstructL(RPacketService& aPacketService); - CPdpContentionManager(const ESock::CTierManagerBase& aTierManager); - -private: - // from CContentionManager - virtual void ContentionResolved(const TContentionRequestItem& aContentionRequest, TBool aResult); - virtual void ContentionOccured(ESock::CMetaConnectionProviderBase& aMcpr); - virtual void ReportContentionAvailabilityStatus(ESock::CMetaConnectionProviderBase& aMcpr, const ESock::TAvailabilityStatus& aStatus) const; - -private: - CPrimaryContextsMonitor* iPrimaryContextsMonitor; - }; //PDP Tier Manager class CPDPTierManager : public CCoreTierManager, public MPacketServiceNotifier @@ -176,13 +62,13 @@ private: CMBMSEngine* iMBMSEngine; +#ifdef SYMBIAN_NETWORKING_CONTENTION_MANAGEMENT CPdpContentionManager* iPdpContentionManager; +#endif + }; -inline TBool CContextStatusMonitor::IsPassedThroughActiveState() const - { - return iWasActive; - } + #endif // SYMBIAN_PDPTIERMANAGER_H