telephonyprotocols/rawipnif/version1/src/ProtocolIfBase.cpp
branchRCL_3
changeset 20 07a122eea281
parent 0 3553901f7fa8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telephonyprotocols/rawipnif/version1/src/ProtocolIfBase.cpp	Wed Sep 01 12:40:21 2010 +0100
@@ -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 <nifmbuf.h>
+#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<CProtocolBase*>(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<CProtocolBase*>(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.
+	}