--- a/telephonyprotocols/pdplayer/inc/PDPSCPR.h Mon May 03 13:37:20 2010 +0300
+++ b/telephonyprotocols/pdplayer/inc/PDPSCPR.h Thu May 06 15:10:38 2010 +0100
@@ -1,203 +1,205 @@
-// Copyright (c) 2006-2009 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"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// PDP SubConnection Provider class definition.
-//
-//
-
-/**
- @file
- @internalComponent
-*/
-
-#ifndef SYMBIAN_PDPSPR_H
-#define SYMBIAN_PDPSPR_H
-
-#include <etelqos.h>
-#include <comms-infras/corescpr.h>
-#include <comms-infras/corescprstates.h>
-#include <networking/qos3gpp_subconparams.h>
-#include <cs_subconparams.h>
-#include <networking/pdpprovision.h>
-#include <comms-infras/linkprovision.h>
-#include <networking/ipaddrinfoparams.h>
-#include <comms-infras/commsdebugutility.h>
-
-#include "PDPFSM.h"
-#include "PDPParamMapper.h"
-
-namespace PDPSCprStates
- {
- class TSelfInit;
- class TCreateSecondaryOrMbmsPDPCtx;
- class TCreatePrimaryPDPCtx;
- class TActivatePDPContext;
- class TSetQoS;
- class TSetTFT;
- class TRaiseParamsChanged;
- class TRaiseParamsRejectedL;
- class TParamsEvent;
- class TFillInImsExtParams;
- class TFillInGrantedParams;
- class TNoTagIfRejoinNeededOrDataClientReady;
- class TAwaitingPDPContextDestroyed;
- class TNoTagOrProviderStopped;
- class TSendDataClientStarted;
- class TSendDataClientStopped;
- class TApplyNewDefault;
- class TRetrieveSipAddr;
- class TModifyActivePDPContext;
- class TSetMbmsParameters;
- }
-
-namespace PDPSCprActivities
- {
- DECLARE_ACTIVITY_MAP(activityMap)
- }
-class CPDPDefaultSubConnectionProvider;
-class CPDPSubConnectionProviderFactory;
-class CPDPSubConnectionProvider : public CCoreSubConnectionProvider, public MPdpFsmEventHandler
-/** Common subclass for default and non-default PDP subconnection providers.
-
-@internalTechnology
-@released Since 9.4 */
- {
- friend class CPDPSubConnectionProviderFactory;
- friend class PDPSCprStates::TSelfInit;
- friend class PDPSCprStates::TCreateSecondaryOrMbmsPDPCtx;
- friend class PDPSCprStates::TCreatePrimaryPDPCtx;
- friend class PDPSCprStates::TActivatePDPContext;
- friend class PDPSCprStates::TSetQoS;
- friend class PDPSCprStates::TSetTFT;
- friend class PDPSCprStates::TRaiseParamsChanged;
- friend class PDPSCprStates::TRaiseParamsRejectedL;
- friend class PDPSCprStates::TParamsEvent;
- friend class PDPSCprStates::TFillInGrantedParams;
- friend class PDPSCprStates::TFillInImsExtParams;
- friend class PDPSCprStates::TNoTagIfRejoinNeededOrDataClientReady;
- friend class PDPSCprStates::TAwaitingPDPContextDestroyed;
- friend class PDPSCprStates::TNoTagOrProviderStopped;
- friend class PDPSCprStates::TSendDataClientStarted;
- friend class PDPSCprStates::TSendDataClientStopped;
- friend class PDPSCprStates::TApplyNewDefault;
- friend class PDPSCprStates::TRetrieveSipAddr;
- friend class PDPSCprStates::TSetMbmsParameters;
- friend class PDPSCprStates::TModifyActivePDPContext;
-
-
-public:
- enum { EInvalidContextId = KMaxPdpContexts };
- typedef CPDPSubConnectionProviderFactory FactoryType;
- virtual ~CPDPSubConnectionProvider();
-
- //-====================================
- //MPdpFsmEventHandler methods
- //-====================================
- virtual void Event(TInt aEvent, TInt aParam);
-
- //-====================================
- //ACFNode overrides
- //-====================================
- void Received(MeshMachine::TNodeContextBase& aContext);
- void ReceivedL(const Messages::TRuntimeCtxId& aSender, const Messages::TNodeId& aRecipient, Messages::TSignatureBase& aMessage);
-
- virtual void LinkUp();
- virtual void LinkDown(TInt aCause);
-
- CSubConQosR99ParamSet* GrantedQoS();
- TInt QoSRank();
-
- TBool ContentionRequested() const
- {
- return iContentionRequested;
- }
- void SetContentionRequested(TBool aContentionRequested)
- {
- iContentionRequested = aContentionRequested;
- }
-
-protected:
- //-====================================
- //Construction methods bundle - accessible thru the factory only
- //-====================================
- CPDPSubConnectionProvider(ESock::CSubConnectionProviderFactoryBase& aFactory);
- CPDPSubConnectionProvider(ESock::CSubConnectionProviderFactoryBase& aFactory,
- const MeshMachine::TNodeActivityMap& aActivityMap);
- static CPDPSubConnectionProvider* NewL(CPDPSubConnectionProviderFactory& aFactory);
- void ConstructL();
-
-private:
- TTFTInfo GetTftInfoL(CSubConIPAddressInfoParamSet* aParamSet);
- TTFTOperationCode GetOperationCodeL(CSubConIPAddressInfoParamSet* aParamSet);
- TUint FindPacketFilterIdL(CSubConIPAddressInfoParamSet::TSubConIPAddressInfo aParamInfo);
- TUint FindIdOfMatchingParamSetL(CSubConIPAddressInfoParamSet::TSubConIPAddressInfo aParamInfo);
- void NewPacketFilterAddedL(CSubConIPAddressInfoParamSet::TSubConIPAddressInfo aParamInfo, TUint aId);
- void PacketFilterRemovedL(TUint aId);
-
-public:
- //-====================================
- //PDP Ctx manipulation
- //-====================================
- TContextId iPDPFsmContextId;
- SpudMan::TPdpContextType iContextType; //maintain type of subconnection provider
- CPdpFsmInterface* iPdpFsmInterface;
- CPDPDefaultSubConnectionProvider* iDefaultSCPR;
- TInt iActivityAwaitingResponse;
- MPDPParamMapper::TQosParameterRelease iParamsRelease;
-
- //quite a big structure so kept here to avoid stack overflow.
- RPacketContext::TDataChannelV2 iTempDataChannelV2;
- TInt iProvisionFailure;
-protected:
- __FLOG_DECLARATION_MEMBER;
- TInt iLinkUps;
-
-private:
- // keeps record of assigned Id's for packetFilter
- RArray<TUint> iPacketFilterId;
- TUint8 iPacketFilterMaskId;
- TBool iIsModeGsm;
- TBool iContentionRequested;
- };
-
-class THighestQoSQuery : public Factories::MFactoryQuery
-/** Query scanning for the CPDPSubConnectionProvider with the highest QoS as per
- 3GPP TS 23.107 Annex C.
- Usage note: Use against CPDPSubConnectionProviderFactory::Find, which will
- always return NULL (the query needs to traverse all the providers). Examine
- THighestQoSQuery::HighestQoSProvider() after calling Find to get the highest
- QoS provider.
-
-@internalTechnology
-@released Since 9.5 */
- {
- public:
- THighestQoSQuery(Messages::TNodeId aCtrlProvider)
- :iCtrlProvider(aCtrlProvider),
- iHighestQoSProvider(NULL)
- {}
-
- CPDPSubConnectionProvider* HighestQoSProvider()
- {
- return iHighestQoSProvider;
- }
-
- protected:
- virtual TMatchResult Match(Factories::TFactoryObjectInfo& aObjectInfo);
-
- private:
- Messages::TNodeId iCtrlProvider;
- CPDPSubConnectionProvider* iHighestQoSProvider;
- };
-
-#endif //SYMBIAN_PDPSPR_H
+// Copyright (c) 2006-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"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// PDP SubConnection Provider class definition.
+//
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef SYMBIAN_PDPSPR_H
+#define SYMBIAN_PDPSPR_H
+
+#include <etelqos.h>
+#include <comms-infras/corescpr.h>
+#include <comms-infras/corescprstates.h>
+#include <networking/qos3gpp_subconparams.h>
+#include <cs_subconparams.h>
+#include <networking/pdpprovision.h>
+#include <comms-infras/linkprovision.h>
+#include <networking/ipaddrinfoparams.h>
+#include <comms-infras/commsdebugutility.h>
+
+#include "PDPFSM.h"
+#include "PDPParamMapper.h"
+
+namespace PDPSCprStates
+ {
+ class TSelfInit;
+ class TCreateSecondaryOrMbmsPDPCtx;
+ class TCreatePrimaryPDPCtx;
+ class TActivatePDPContext;
+ class TSetQoS;
+ class TSetTFT;
+ class TRaiseParamsChanged;
+ class TRaiseParamsRejectedL;
+ class TParamsEvent;
+ class TFillInImsExtParams;
+ class TFillInGrantedParams;
+ class TNoTagIfRejoinNeededOrDataClientReady;
+ class TAwaitingPDPContextDestroyed;
+ class TNoTagOrProviderStopped;
+ class TSendDataClientStarted;
+ class TSendDataClientStopped;
+ class TApplyNewDefault;
+ class TRetrieveSipAddr;
+ class TModifyActivePDPContext;
+ class TSetMbmsParameters;
+ class TCleanupFSM;
+ }
+
+namespace PDPSCprActivities
+ {
+ DECLARE_ACTIVITY_MAP(activityMap)
+ }
+class CPDPDefaultSubConnectionProvider;
+class CPDPSubConnectionProviderFactory;
+class CPDPSubConnectionProvider : public CCoreSubConnectionProvider, public MPdpFsmEventHandler
+/** Common subclass for default and non-default PDP subconnection providers.
+
+@internalTechnology
+@released Since 9.4 */
+ {
+ friend class CPDPSubConnectionProviderFactory;
+ friend class PDPSCprStates::TSelfInit;
+ friend class PDPSCprStates::TCreateSecondaryOrMbmsPDPCtx;
+ friend class PDPSCprStates::TCreatePrimaryPDPCtx;
+ friend class PDPSCprStates::TActivatePDPContext;
+ friend class PDPSCprStates::TSetQoS;
+ friend class PDPSCprStates::TSetTFT;
+ friend class PDPSCprStates::TRaiseParamsChanged;
+ friend class PDPSCprStates::TRaiseParamsRejectedL;
+ friend class PDPSCprStates::TParamsEvent;
+ friend class PDPSCprStates::TFillInGrantedParams;
+ friend class PDPSCprStates::TFillInImsExtParams;
+ friend class PDPSCprStates::TNoTagIfRejoinNeededOrDataClientReady;
+ friend class PDPSCprStates::TAwaitingPDPContextDestroyed;
+ friend class PDPSCprStates::TNoTagOrProviderStopped;
+ friend class PDPSCprStates::TSendDataClientStarted;
+ friend class PDPSCprStates::TSendDataClientStopped;
+ friend class PDPSCprStates::TApplyNewDefault;
+ friend class PDPSCprStates::TRetrieveSipAddr;
+ friend class PDPSCprStates::TSetMbmsParameters;
+ friend class PDPSCprStates::TModifyActivePDPContext;
+ friend class PDPSCprStates::TCleanupFSM;
+
+
+public:
+ enum { EInvalidContextId = KMaxPdpContexts };
+ typedef CPDPSubConnectionProviderFactory FactoryType;
+ virtual ~CPDPSubConnectionProvider();
+
+ //-====================================
+ //MPdpFsmEventHandler methods
+ //-====================================
+ virtual void Event(TInt aEvent, TInt aParam);
+
+ //-====================================
+ //ACFNode overrides
+ //-====================================
+ void Received(MeshMachine::TNodeContextBase& aContext);
+ void ReceivedL(const Messages::TRuntimeCtxId& aSender, const Messages::TNodeId& aRecipient, Messages::TSignatureBase& aMessage);
+
+ virtual void LinkUp();
+ virtual void LinkDown(TInt aCause);
+
+ CSubConQosR99ParamSet* GrantedQoS();
+ TInt QoSRank();
+
+ TBool ContentionRequested() const
+ {
+ return iContentionRequested;
+ }
+ void SetContentionRequested(TBool aContentionRequested)
+ {
+ iContentionRequested = aContentionRequested;
+ }
+
+protected:
+ //-====================================
+ //Construction methods bundle - accessible thru the factory only
+ //-====================================
+ CPDPSubConnectionProvider(ESock::CSubConnectionProviderFactoryBase& aFactory);
+ CPDPSubConnectionProvider(ESock::CSubConnectionProviderFactoryBase& aFactory,
+ const MeshMachine::TNodeActivityMap& aActivityMap);
+ static CPDPSubConnectionProvider* NewL(CPDPSubConnectionProviderFactory& aFactory);
+ void ConstructL();
+
+private:
+ TTFTInfo GetTftInfoL(CSubConIPAddressInfoParamSet* aParamSet);
+ TTFTOperationCode GetOperationCodeL(CSubConIPAddressInfoParamSet* aParamSet);
+ TUint FindPacketFilterIdL(CSubConIPAddressInfoParamSet::TSubConIPAddressInfo aParamInfo);
+ TUint FindIdOfMatchingParamSetL(CSubConIPAddressInfoParamSet::TSubConIPAddressInfo aParamInfo);
+ void NewPacketFilterAddedL(CSubConIPAddressInfoParamSet::TSubConIPAddressInfo aParamInfo, TUint aId);
+ void PacketFilterRemovedL(TUint aId);
+
+public:
+ //-====================================
+ //PDP Ctx manipulation
+ //-====================================
+ TContextId iPDPFsmContextId;
+ SpudMan::TPdpContextType iContextType; //maintain type of subconnection provider
+ CPdpFsmInterface* iPdpFsmInterface;
+ CPDPDefaultSubConnectionProvider* iDefaultSCPR;
+ TInt iActivityAwaitingResponse;
+ MPDPParamMapper::TQosParameterRelease iParamsRelease;
+
+ //quite a big structure so kept here to avoid stack overflow.
+ RPacketContext::TDataChannelV2 iTempDataChannelV2;
+ TInt iProvisionFailure;
+protected:
+ __FLOG_DECLARATION_MEMBER;
+ TInt iLinkUps;
+
+private:
+ // keeps record of assigned Id's for packetFilter
+ RArray<TUint> iPacketFilterId;
+ TUint8 iPacketFilterMaskId;
+ TBool iIsModeGsm;
+ TBool iContentionRequested;
+ };
+
+class THighestQoSQuery : public Factories::MFactoryQuery
+/** Query scanning for the CPDPSubConnectionProvider with the highest QoS as per
+ 3GPP TS 23.107 Annex C.
+ Usage note: Use against CPDPSubConnectionProviderFactory::Find, which will
+ always return NULL (the query needs to traverse all the providers). Examine
+ THighestQoSQuery::HighestQoSProvider() after calling Find to get the highest
+ QoS provider.
+
+@internalTechnology
+@released Since 9.5 */
+ {
+ public:
+ THighestQoSQuery(Messages::TNodeId aCtrlProvider)
+ :iCtrlProvider(aCtrlProvider),
+ iHighestQoSProvider(NULL)
+ {}
+
+ CPDPSubConnectionProvider* HighestQoSProvider()
+ {
+ return iHighestQoSProvider;
+ }
+
+ protected:
+ virtual TMatchResult Match(Factories::TFactoryObjectInfo& aObjectInfo);
+
+ private:
+ Messages::TNodeId iCtrlProvider;
+ CPDPSubConnectionProvider* iHighestQoSProvider;
+ };
+
+#endif //SYMBIAN_PDPSPR_H