linklayerprotocols/pppnif/SPPP/PppUmts.h
changeset 0 af10295192d8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/linklayerprotocols/pppnif/SPPP/PppUmts.h	Tue Jan 26 15:23:49 2010 +0200
@@ -0,0 +1,124 @@
+// Copyright (c) 2002-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:
+//
+
+/**
+ @file
+ @internalComponent 
+*/
+
+#ifndef __PPPUMTS_H__
+#define __PPPUMTS_H__
+#include "PPPBASE.H"
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <comms-infras/nifprvar_internal.h>
+#endif
+
+const TInt KMaxLinkInterfaceName = 20;
+
+/****************/
+/* CProtocolPpp */
+/****************/
+
+class CPppUmtsLink;
+NONSHARABLE_CLASS(CProtocolPpp) : public CProtocolBase
+/**
+ * Class used by PPP to receive data from lower layer Nif and send it up to LCP.
+ */
+	{
+public:
+	static CProtocolPpp* NewL();
+	CProtocolPpp();
+	~CProtocolPpp();
+
+	// CProtocolBase mirrored functions to allow passing of data from lower layer Nif up to LCP
+	inline virtual void Process(RMBufChain &,CProtocolBase* aSourceProtocol=NULL);	// Up
+	inline virtual void Process(TDes8& aPDU,TSockAddr *from,TSockAddr *to=NULL,CProtocolBase* aSourceProtocol=NULL);	// Up
+	inline virtual void StartSending(CProtocolBase* aProtocol);	// Up
+	inline virtual void Identify(TServerProtocolDesc* aProtocolDesc) const;
+
+	void SetValue(CPppUmtsLink* aPppUmtsLink);
+private:
+	CPppUmtsLink* iPppUmtsLink;
+	};
+
+/****************/
+/* CPppUmtsLink */
+/****************/
+
+NONSHARABLE_CLASS(CPppUmtsLink) : public CPppLinkBase, public MNifIfNotify
+/**
+ * Definition of the PPP "proxy" class which acts as a bridge between PPP and the lower layer Nif.
+ */
+	{
+public:
+	CPppUmtsLink(CPppLcp* aLcp, const TDesC& aParams);
+	~CPppUmtsLink();
+
+	// CProtocolBase API to lower layer Nif
+	inline void Process(RMBufChain &,CProtocolBase* aSourceProtocol=NULL);	// Up
+	inline void Process(TDes8& aPDU,TSockAddr *from,TSockAddr *to=NULL,CProtocolBase* aSourceProtocol=NULL);	// Up
+	inline void StartSending(CProtocolBase* aProtocol);	// Up
+
+	// CPppLinkBase API to lower layer Nif
+	virtual void CreateL();
+	inline virtual TInt Send(RMBufChain& aPacket, TUint aPppId=KPppIdAsIs);
+	inline virtual void OpenL();
+	inline virtual void Close();
+	inline virtual void StartL();
+	virtual void Stop(TInt aReason, TBool aLinkDown=ETrue);
+	inline virtual void GetSendRecvSize(TInt& aMaxRecvSize, TInt& aMaxSendSize);
+	virtual TInt SpeedMetric();
+	inline virtual void GetDataTransfer(RPacketContext::TDataVolume&);
+
+	// MNifIfNotify API to lower layer Nif
+    inline virtual void LinkLayerDown(TInt aReason, TAction aAction);		
+	inline virtual void LinkLayerUp();
+    inline virtual void NegotiationFailed(CNifIfBase* aIf, TInt aReason);
+    inline virtual TInt Authenticate(TDes& aUsername, TDes& aPassword);
+    inline virtual void CancelAuthenticate();
+	inline virtual TInt GetExcessData(TDes8& aBuffer);
+	inline virtual void IfProgress(TInt aStage, TInt aError);
+	inline virtual void IfProgress(TSubConnectionUniqueId aSubConnectionUniqueId, TInt aStage, TInt aError);
+
+	inline virtual void OpenRoute();
+	inline virtual void CloseRoute();
+	inline virtual TInt Notification(TNifToAgentEventType aEvent, void * aInfo = NULL);
+	virtual void BinderLayerDown(CNifIfBase* aBinderIf, TInt aReason, TAction aAction);
+	virtual TInt PacketActivity(TDataTransferDirection aDirection, TUint aBytes, TBool aResetTimer);
+
+	inline virtual void NotifyDataSent(TSubConnectionUniqueId aSubConnectionUniqueId, TUint aUplinkVolume);
+	inline virtual void NotifyDataReceived(TSubConnectionUniqueId aSubConnectionUniqueId, TUint aDownlinkVolume);
+	inline virtual void NifEvent(TNetworkAdaptorEventType aEventType, TUint aEvent, const TDesC8& aEventData, TAny* aSource=0);
+
+
+protected:
+	inline virtual TInt DoReadInt(const TDesC& aField, TUint32& aValue,const RMessagePtr2* aMessage);
+    inline virtual TInt DoWriteInt(const TDesC& aField, TUint32 aValue,const RMessagePtr2* aMessage);
+    inline virtual TInt DoReadDes(const TDesC& aField, TDes8& aValue,const RMessagePtr2* aMessage);
+    inline virtual TInt DoReadDes(const TDesC& aField, TDes16& aValue,const RMessagePtr2* aMessage);
+    inline virtual TInt DoWriteDes(const TDesC& aField, const TDesC8& aValue,const RMessagePtr2* aMessage);
+	inline virtual TInt DoWriteDes(const TDesC& aField, const TDesC16& aValue,const RMessagePtr2* aMessage);
+	inline virtual TInt DoReadBool(const TDesC& aField, TBool& aValue,const RMessagePtr2* aMessage);
+    inline virtual TInt DoWriteBool(const TDesC& aField, TBool aValue,const RMessagePtr2* aMessage);
+
+
+private:
+	CNifIfLink* iUmtsNif;
+	CNifIfBase* iUmtsNifPppBinder;
+	CProtocolPpp* iProtocolPpp;
+	TBuf<KMaxLinkInterfaceName> iNifName;		// Lower layer Nif name
+	};
+
+#endif