diff -r 000000000000 -r 3553901f7fa8 telephonyprotocols/rawipnif/version1/src/ProtocolIfBase.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/telephonyprotocols/rawipnif/version1/src/ProtocolIfBase.cpp Tue Feb 02 01:41:59 2010 +0200 @@ -0,0 +1,159 @@ +// 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: +// This file implements the base class for the protocol interface classes. +// +// + +/** + @file +*/ + +#include +#include "ProtocolIfBase.h" +#include "RawIPNifMain.h" + +CProtocolIfBase::CProtocolIfBase(CRawIPNifMain& aNifMain, CBttLogger* aTheLogger) +/** + * Constructor + * + * @param aNifMain A pointer to CRawIPNifMain + */ + :iNifMain(aNifMain), + iTheLogger(aTheLogger) + { + } + +CProtocolIfBase::~CProtocolIfBase() +/** + * Destructor + */ + { + } + +void CProtocolIfBase::BindL(TAny *aId) +/** + * Binds TCP/IP protocol to Nif + * + * @param aId A pointer to protocol object + */ + + { + _LOG_L1C2(_L8("CProtocolIfBase::BindL [aId=%X]"), aId); + + if (iProtocol) + _BTT_PANIC(KNifName, KNifProtocolInUse); + iProtocol = reinterpret_cast(aId); + } + +TInt CProtocolIfBase::State() +/** + * Used to retrieve the Nif state + * + * @return The Nif state + */ + { + _LOG_L1C1(_L8("CProtocolIfBase::State")); + + return GetNifMain().State(); + } + +TInt CProtocolIfBase::Control(TUint aLevel, TUint aName, TDes8& aOption, TAny* aSource) +/** + * This method will call the control method in IPv4Protocol + * + */ + { + _LOG_L1C1(_L8("CProtocolIfBase::Control")); + + return GetNifMain().Control(aLevel, aName, aOption, aSource); + } + +TInt CProtocolIfBase::Send(RMBufChain& aPdu, TAny* aSource) +/** + * Send and IP packet. This method is overriden by the IPv4ProtocolIf class. + * + * @param aPdu The outgoing packet + * @param aSource The source of the packet + * @return Standard error codes + */ + { + _LOG_L1C1(_L8("CProtocolIfBase::Send")); + + return GetNifMain().Send(aPdu, aSource); + } + +void CProtocolIfBase::Info(TNifIfInfo& aInfo) const +/** + * Used to retrieved Nif information + * + * @param aInfo Nif Information structure + */ + { + _LOG_L1C1(_L8("CProtocolIfBase::Info")); + + aInfo.iVersion = TVersion(KNifMajorVersionNumber, KNifMinorVersionNumber, + KNifBuildVersionNumber); + aInfo.iFlags = KNifIfIsBase | KNifIfUsesNotify | KNifIfCreatedByLink; + // Doesn't fill in aInfo.iName, as this is done by derived classes. + aInfo.iProtocolSupported = KProtocolInetIp; + } + +TInt CProtocolIfBase::Notification(TAgentToNifEventType /*aEvent*/, void* /*aInfo*/) +/** + * Method overidden by the notification method on IPv4ProtocolIf class. + * + * @param aEvent Not used + * @param aInfo Not used + */ + { + _LOG_L1C1(_L8("CProtocolIfBase::Notification")); + + return KErrNone; + } + +void CProtocolIfBase::StartSending(CProtocolBase* /*aProtocol*/) +/** + * Indicates to the protocol layer that the NIF is ready to send packets. + * + * @param aProtocol A pointer to a protocol + */ + { + _LOG_L1C1(_L8("CProtocolIfBase::StartSending")); + + // Default implementation. + // Uses iProtocol instead aProtocol. + iProtocol->StartSending(reinterpret_cast(this)); + } + + +void CProtocolIfBase::UpdateContextConfigL(const + RPacketContext::TContextConfigGPRS& /*aConfig*/) +/** + * Method overidden by UpdateContextConfig on IPv4ProtocolIf class + * + * @param aConfig Not used + */ + { + // Default implementation does nothing. + } + +void CProtocolIfBase::UpdateConnectionSpeed(TUint /*aConnectionSpeed*/) +/** + * Method overidden by UpdateConnectionSpeed on IPv4ProtocolIf class + * + * @param aConnectionSpeed Not used + */ + { + // Default implementation does nothing. + }