linklayerprotocols/pppnif/INC/PPPBASE.INL
changeset 0 af10295192d8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/linklayerprotocols/pppnif/INC/PPPBASE.INL	Tue Jan 26 15:23:49 2010 +0200
@@ -0,0 +1,165 @@
+// Copyright (c) 1997-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:
+//
+
+#ifndef __PPPBASE_INL__
+#define __PPPBASE_INL__
+
+#include <networking/ppplcp.h>
+
+/** @file
+@internalComponent */
+
+//
+// PPP Link Frame Checksum
+//
+
+// 16 bit CRC
+inline TPppFcs16::TPppFcs16()
+	{
+	Init();
+	}
+	
+/**
+Returns the current CRC value.
+@return CRC-16
+*/	
+inline TUint16 TPppFcs16::Fcs() const
+	{
+	return (TUint16)~iFcs;
+	}
+
+/**
+Sets the CRC value to the initial state before calculation.
+*/
+inline void TPppFcs16::Init()
+	{
+	iFcs = (TUint16)KPppInitFcs16;
+	}
+	
+/**
+Determines if the calculated CRC is valid.
+
+@return ETrue if the calculated CRC matches the expected value
+*/
+inline TBool TPppFcs16::IsGood() const
+	{
+	return iFcs==KPppGoodFcs16;
+	}
+
+/**
+Incrementally calculates the CRC for the next message byte.
+
+@param aByte Message byte
+*/
+inline void TPppFcs16::CalcByte(TUint8 aByte)
+	{
+	iFcs = (TUint16)((iFcs >> 8) ^ FcsTable[(iFcs ^ aByte) & 0xff]);
+	}
+
+
+// 32 bit CRC
+inline TPppFcs32::TPppFcs32()
+	{
+	Init();
+	}
+
+/**
+Returns the current CRC value.
+@return CRC-32
+*/	
+inline TUint32 TPppFcs32::Fcs() const
+	{
+	return (TUint32)~iFcs;
+	}
+
+/**
+Sets the CRC value to the initial state before calculation.
+*/
+inline void TPppFcs32::Init()
+	{
+	iFcs = (TUint32)KPppInitFcs32;
+	}
+
+/**
+Determines if the calculated CRC is valid.
+
+@return ETrue if the calculated CRC matches the expected value
+*/
+inline TBool TPppFcs32::IsGood() const
+	{
+	return iFcs==KPppGoodFcs32;
+	}
+
+/**
+Incrementally calculates the CRC for the next message byte.
+
+@param aByte Message byte
+*/
+inline void TPppFcs32::CalcByte(TUint8 aByte)
+	{
+	iFcs = (((iFcs) >> 8) ^ FcsTable[((iFcs) ^ aByte) & 0xff]);
+	}
+
+//
+// PPP Packet Receiver
+//
+
+inline TInt MPppRecvr::SendFrame(RMBufChain& aPacket)
+	{ return iPppLcp->PppLink()->Send(aPacket, iPppId); }
+inline void MPppRecvr::SetId(TUint aPppId)
+	{ iPppId  = aPppId; }
+inline void MPppRecvr::SetPhase(TPppPhase aPhase)
+	{ iActivePhase  = aPhase; }
+
+//
+// PPP Link Protocol Support
+//
+
+inline void CPppLinkBase::NotifyLinkUp()
+	{ iPppLcp->LinkLayerUp(); }
+inline void CPppLinkBase::NotifyLinkDown(TInt aReason)
+	{ iPppLcp->LinkLayerDown(aReason); }
+inline void CPppLinkBase::DeliverToLcp(RMBufChain& aPacket)
+	{ iPppLcp->LinkRecv(aPacket); }
+inline void CPppLinkBase::NewCompressor(const CPppCompressor* aCompressor)
+	{ 
+	  iPppCompressor = (CPppCompressor*)aCompressor;
+	}
+inline void CPppLinkBase::NewDeCompressor(const CPppDeCompressor* aDeCompressor)
+	{ 
+		iPppDecompressor = (CPppDeCompressor*)aDeCompressor; 
+	}
+
+
+//
+// PPP Options Support
+//
+
+inline RPppOption& RPppOption::Cast(RMBufChain& aChain)
+	{ return *((RPppOption*)&aChain); }
+inline const RPppOption& RPppOption::Cast(const RMBufChain& aChain)
+	{ return *((const RPppOption*)&aChain); }
+inline const RPppOption& RPppOption::operator=(const RMBufChain& aChain)
+	{ iNext = (RMBuf*)aChain.First(); return *this; }
+
+//
+// PPP FSM
+//
+
+inline TBool MPppFsm::FsmIsThisLayerOpen()
+	{ return iState==EPppFsmOpened; }
+
+#endif
+