telephonyprotocols/rawipnif/inc/RawIPFlow.h
branchopencode
changeset 24 6638e7f4bd8f
parent 23 6b1d113cdff3
--- a/telephonyprotocols/rawipnif/inc/RawIPFlow.h	Mon May 03 13:37:20 2010 +0300
+++ b/telephonyprotocols/rawipnif/inc/RawIPFlow.h	Thu May 06 15:10:38 2010 +0100
@@ -1,187 +1,187 @@
-// 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:
-// Defines the CRawIPFlow class, which provides a central point for the Flow
-// to communicate with NifMan and the BCA controller. This class creates an
-// interface to the IPv4 binder when it is required.
-// 
-//
-
-/**
- @file
-*/
-
-#ifndef RAWIPFLOW_H
-#define RAWIPFLOW_H
-
-#include <comms-infras/nifif.h>
-#include <networking/packetlogger.h>
-#include <in_sock.h>
-#include <comms-infras/ss_flowbinders.h>
-#include <comms-infras/ss_subconnflow.h>
-#include "BinderBase.h"
-#include "BcaIoController.h"
-#include "MControllerObserver.h"
-#include "bttlog.h"
-#include <comms-infras/linkmessages.h>		// for TLinkMessageId
-
-class CBttLogger;
-class CPacketLogger;
-class TRawIpAgentProvision;
-class CBCAProvision;
-
-class CRawIPFlow : public ESock::CSubConnectionFlowBase, public ESock::MFlowBinderControl,
-				   public MControllerObserver
-	{
-	friend class CRawIPFlowFactory;
-
-public:
-
-    //-=========================================================
-    // Methods for handling incoming SCPR messages
-    //-=========================================================
-    void StartFlowL();
-	void StopFlow(TInt aError);
-	void SubConnectionGoingDown();
-	void SubConnectionError(TInt aError);
-	void Destroy();
-	void Notification(TInt aNotificationId);
-
-	//-=========================================================
-	// CSubConnectionProviderBase methods
-	//-=========================================================
-	MFlowBinderControl* DoGetBinderControlL();
-
-	//-=========================================================
-	// Messages::ANode methods
-	//-=========================================================
-	virtual void ReceivedL(const Messages::TRuntimeCtxId& aSender, const Messages::TNodeId& aRecipient, Messages::TSignatureBase& aMessage);
-
-	//-=========================================================
-	// MFlowBinderControl methods
-	//-=========================================================
-	virtual ESock::MLowerControl* GetControlL(const TDesC8& aProtocol);
-	virtual ESock::MLowerDataSender* BindL(const TDesC8& aProtocol, ESock::MUpperDataReceiver* aReceiver, ESock::MUpperControl* aControl);
-	virtual void Unbind(ESock::MUpperDataReceiver* aReceiver, ESock::MUpperControl* aControl);
-	virtual CSubConnectionFlowBase* Flow(); //returns its own flow
-
-    //-=========================================================
-    // Custom methods
-    //-=========================================================
-    // provide compatability for classes using old CNifIfLink style API and PPP Internal Stop() calls
-    void Stop(TInt aReason, MNifIfNotify::TAction aAction);
-    // call from Binder - MLowerDataSender
-	ESock::MLowerDataSender::TSendResult Send(RMBufChain& aPdu, TUint aProtocol);
-
-	// Used to be :Pure virtuals inherited from MContextSmObserver
-	CBcaIoController* GetBcaController();
-	void UpdateContextState(RPacketContext::TContextStatus aState,	TInt aError);
-
-public: // Pure virtuals inherited from MRawIPNifObserverBase
-	virtual void InitialiseL(TInitialisationState aState, TInt aError);
-	virtual void ShutDown(TInitialisationState aState, TInt aError);
-
-	virtual CBinderBase* GetBinder();
-
-public: // Pure virtuals inherited from MControllerObserver
-	// Data going upstack
-	virtual void Process(RMBufChain& aPdu, TUint16 aProtocolCode);
-	// Flow Control unblocked
-	virtual void ResumeSending();
-
-public:
-	// Notify that link is Up/Down
-	void LinkLayerUp();
-	void LinkLayerDown(TInt aError);
-
-public:	// Send data to CBcaIoController
-	ESock::MLowerDataSender::TSendResult SendPacket(RMBufChain& aPdu, TAny* /*aSource=0*/,
-		TUint16 /*aType=KIp4FrameType*/);
-
-public:	// Context status retrieval.
-	inline RPacketContext::TContextStatus GetContextStatus();
-
-protected:
-	CRawIPFlow(ESock::CSubConnectionFlowFactoryBase& aFactory, const Messages::TNodeId& aSubConnId, ESock::CProtocolIntfBase* aProtocolIntf, CBttLogger* aTheLogger);
-	void ConstructL();
-	virtual ~CRawIPFlow();
-
-protected:
-    class TBinderControlProxy : public ESock::MFlowBinderControl
-        {
-        public:
-    	virtual ESock::MLowerControl* GetControlL(const TDesC8& aProtocol);
-    	virtual ESock::MLowerDataSender* BindL(const TDesC8& aProtocol, ESock::MUpperDataReceiver* aReceiver, ESock::MUpperControl* aControl);
-    	virtual void Unbind(ESock::MUpperDataReceiver* aReceiver, ESock::MUpperControl* aControl);
-    	virtual CSubConnectionFlowBase* Flow(); //returns its own flow
-    	CRawIPFlow& RawIPFlow()
-        	{
-        	ASSERT(iFlow);
-        	return *iFlow;
-        	}
-
-        TBinderControlProxy(CRawIPFlow& aFlow)
-        :iFlow(&aFlow)
-            {
-            }
-
-        CRawIPFlow* iFlow;
-        };
-    TBinderControlProxy* iBinderControl;
-
-private:
-	void ProvisionConfig(const ESock::RMetaExtensionContainerC& aConfigData);
-	void DynamicProvisionConfigL();
-
-	// Utility functions
-	void PostProgressMessage(TInt aStage, TInt aError);
-    void SendDataClientIdleIfNoClients();
-
-private:// Unowned
-	/** networking packet logger for debugging packets */
-	__PACKETLOG_DECLARATION_MEMBER;
-	CBttLogger* iTheLogger;
-
-	// Upstack bound protocol reference
-	CProtocolBase* iProtocol;
-
-	// The protocol to use (IPv4).Note: This is not owned by this class.
-	CBinderBase* iBinder;
-
-	const CBCAProvision* iProvision;						// pointer to BCA provisioning structure in AccessPointConfig
-	const CRawIpAgentConfig* iAgentProvision;				// pointer to Agent provisioning structure in AccessPointConfig
-	TInt iProvisionError;						// error code saved during processing of ProvisionConfig message
-
-private:// Owned
-	TInt iInitError;
-
-	RPacketContext::TContextStatus iContextStatus;
-
-	CBcaIoController* iBcaController;
-	TBool iStarting:1;
-	TBool iStarted:1;
-	TBool iStopping:1;
-	TBool iBlocked:1;
-	};
-
-inline RPacketContext::TContextStatus CRawIPFlow::GetContextStatus()
-/**
- * Returns Context status
- *
- * @return iContextStatus The context status
- */
-	{
-	return iContextStatus;
-	}
-
-#endif // RAWIPFlow_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:
+// Defines the CRawIPFlow class, which provides a central point for the Flow
+// to communicate with NifMan and the BCA controller. This class creates an
+// interface to the IPv4 binder when it is required.
+// 
+//
+
+/**
+ @file
+*/
+
+#ifndef RAWIPFLOW_H
+#define RAWIPFLOW_H
+
+#include <comms-infras/nifif.h>
+#include <networking/packetlogger.h>
+#include <in_sock.h>
+#include <comms-infras/ss_flowbinders.h>
+#include <comms-infras/ss_subconnflow.h>
+#include "BinderBase.h"
+#include "BcaIoController.h"
+#include "MControllerObserver.h"
+#include "bttlog.h"
+#include <comms-infras/linkmessages.h>		// for TLinkMessageId
+
+class CBttLogger;
+class CPacketLogger;
+class TRawIpAgentProvision;
+class CBCAProvision;
+
+class CRawIPFlow : public ESock::CSubConnectionFlowBase, public ESock::MFlowBinderControl,
+				   public MControllerObserver
+	{
+	friend class CRawIPFlowFactory;
+
+public:
+
+    //-=========================================================
+    // Methods for handling incoming SCPR messages
+    //-=========================================================
+    void StartFlowL();
+	void StopFlow(TInt aError);
+	void SubConnectionGoingDown();
+	void SubConnectionError(TInt aError);
+	void Destroy();
+	void Notification(TInt aNotificationId);
+
+	//-=========================================================
+	// CSubConnectionProviderBase methods
+	//-=========================================================
+	MFlowBinderControl* DoGetBinderControlL();
+
+	//-=========================================================
+	// Messages::ANode methods
+	//-=========================================================
+	virtual void ReceivedL(const Messages::TRuntimeCtxId& aSender, const Messages::TNodeId& aRecipient, Messages::TSignatureBase& aMessage);
+
+	//-=========================================================
+	// MFlowBinderControl methods
+	//-=========================================================
+	virtual ESock::MLowerControl* GetControlL(const TDesC8& aProtocol);
+	virtual ESock::MLowerDataSender* BindL(const TDesC8& aProtocol, ESock::MUpperDataReceiver* aReceiver, ESock::MUpperControl* aControl);
+	virtual void Unbind(ESock::MUpperDataReceiver* aReceiver, ESock::MUpperControl* aControl);
+	virtual CSubConnectionFlowBase* Flow(); //returns its own flow
+
+    //-=========================================================
+    // Custom methods
+    //-=========================================================
+    // provide compatability for classes using old CNifIfLink style API and PPP Internal Stop() calls
+    void Stop(TInt aReason, MNifIfNotify::TAction aAction);
+    // call from Binder - MLowerDataSender
+	ESock::MLowerDataSender::TSendResult Send(RMBufChain& aPdu, TUint aProtocol);
+
+	// Used to be :Pure virtuals inherited from MContextSmObserver
+	CBcaIoController* GetBcaController();
+	void UpdateContextState(RPacketContext::TContextStatus aState,	TInt aError);
+
+public: // Pure virtuals inherited from MRawIPNifObserverBase
+	virtual void InitialiseL(TInitialisationState aState, TInt aError);
+	virtual void ShutDown(TInitialisationState aState, TInt aError);
+
+	virtual CBinderBase* GetBinder();
+
+public: // Pure virtuals inherited from MControllerObserver
+	// Data going upstack
+	virtual void Process(RMBufChain& aPdu, TUint16 aProtocolCode);
+	// Flow Control unblocked
+	virtual void ResumeSending();
+
+public:
+	// Notify that link is Up/Down
+	void LinkLayerUp();
+	void LinkLayerDown(TInt aError);
+
+public:	// Send data to CBcaIoController
+	ESock::MLowerDataSender::TSendResult SendPacket(RMBufChain& aPdu, TAny* /*aSource=0*/,
+		TUint16 /*aType=KIp4FrameType*/);
+
+public:	// Context status retrieval.
+	inline RPacketContext::TContextStatus GetContextStatus();
+
+protected:
+	CRawIPFlow(ESock::CSubConnectionFlowFactoryBase& aFactory, const Messages::TNodeId& aSubConnId, ESock::CProtocolIntfBase* aProtocolIntf, CBttLogger* aTheLogger);
+	void ConstructL();
+	virtual ~CRawIPFlow();
+
+protected:
+    class TBinderControlProxy : public ESock::MFlowBinderControl
+        {
+        public:
+    	virtual ESock::MLowerControl* GetControlL(const TDesC8& aProtocol);
+    	virtual ESock::MLowerDataSender* BindL(const TDesC8& aProtocol, ESock::MUpperDataReceiver* aReceiver, ESock::MUpperControl* aControl);
+    	virtual void Unbind(ESock::MUpperDataReceiver* aReceiver, ESock::MUpperControl* aControl);
+    	virtual CSubConnectionFlowBase* Flow(); //returns its own flow
+    	CRawIPFlow& RawIPFlow()
+        	{
+        	ASSERT(iFlow);
+        	return *iFlow;
+        	}
+
+        TBinderControlProxy(CRawIPFlow& aFlow)
+        :iFlow(&aFlow)
+            {
+            }
+
+        CRawIPFlow* iFlow;
+        };
+    TBinderControlProxy* iBinderControl;
+
+private:
+	void ProvisionConfig(const ESock::RMetaExtensionContainerC& aConfigData);
+	void DynamicProvisionConfigL();
+
+	// Utility functions
+	void PostProgressMessage(TInt aStage, TInt aError);
+    void SendDataClientIdleIfNoClients();
+
+private:// Unowned
+	/** networking packet logger for debugging packets */
+	__PACKETLOG_DECLARATION_MEMBER;
+	CBttLogger* iTheLogger;
+
+	// Upstack bound protocol reference
+	CProtocolBase* iProtocol;
+
+	// The protocol to use (IPv4).Note: This is not owned by this class.
+	CBinderBase* iBinder;
+
+	const CBCAProvision* iProvision;						// pointer to BCA provisioning structure in AccessPointConfig
+	const CRawIpAgentConfig* iAgentProvision;				// pointer to Agent provisioning structure in AccessPointConfig
+	TInt iProvisionError;						// error code saved during processing of ProvisionConfig message
+
+private:// Owned
+	TInt iInitError;
+
+	RPacketContext::TContextStatus iContextStatus;
+
+	CBcaIoController* iBcaController;
+	TBool iStarting:1;
+	TBool iStarted:1;
+	TBool iStopping:1;
+	TBool iBlocked:1;
+	};
+
+inline RPacketContext::TContextStatus CRawIPFlow::GetContextStatus()
+/**
+ * Returns Context status
+ *
+ * @return iContextStatus The context status
+ */
+	{
+	return iContextStatus;
+	}
+
+#endif // RAWIPFlow_H