telephonyprotocols/pdplayer/inc/PDPSCPR.h
branchopencode
changeset 24 6638e7f4bd8f
parent 19 1f776524b15c
--- 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