diff -r 000000000000 -r af10295192d8 linklayerprotocols/pppnif/SPPP/PppUmts.h --- /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 +#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 iNifName; // Lower layer Nif name + }; + +#endif