cbsref/csyrefplugins/csy27010/src/ChannelMgrCmdData.cpp
branchRCL_3
changeset 20 07a122eea281
parent 19 630d2f34d719
child 21 4814c5a49428
--- a/cbsref/csyrefplugins/csy27010/src/ChannelMgrCmdData.cpp	Tue Aug 31 16:23:08 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,282 +0,0 @@
-//
-// * Copyright 2004 Neusoft America Inc.
-// * All rights reserved.
-// * This component and the accompanying materials are made available
-// * under the terms of the Eclipse Public License v1.0
-// * which accompanies this distribution, and is available
-// * at the URL "http://www.eclipse.org/legal/epl-v10.html".
-// *
-// * Contributors:
-// * Keith Collins (Neusoft America Inc.)  original software development and additional code and modifications.
-// * Thomas Gahagen (Neusoft America Inc.)  additional code and modifications.
-// * Zhen Yuan (Neusoft America Inc.)  additional code and modifications.
-// *
-// * Description:  The CChannelMgrCmdData class defines a single 3GPP 27.010 based logical channel
-// *               called DLC. Derived control and data channel add specific behavior.
-//
-
-// ChannelMgrCmdData.cpp
-
-/** @file ChannelMgrCmdData.cpp
- *
- */
-
-#include "ChannelMgrCmdData.h"
-#include "PortC32InterfaceBase.h"
-#include "PortC32Interface.h"
-#include "CsyMsgBufBPFrame.h"
-#include "CsyDebugLogger.h"
-
-CChannelMgrCmdData* CChannelMgrCmdData::NewL(const TUint8 aDlcNum,
-											 CPortFactory& aPortFactory,
-											 CMux0710Protocol& aMux0710Protocol)
-/**
- * This methods uses two phase construction and the cleanup stack to create
- * an instance of class CChannelMgrCmd.
- * @param aDlcNum - DLC number of this channel
- * @param aPortFactory - Reference to the port factory
- * @param aMux0710Protocol - Pointer to the 27.010 mux protocol
- * @return Pointer to the created instance
- */
-    {
-	_LOG_L4C2("CChannelMgrCmdData::NewL [aDlcNum=%d]", aDlcNum);
-
-    CChannelMgrCmdData* p = new(ELeave) CChannelMgrCmdData(aDlcNum, aPortFactory,
-														   aMux0710Protocol);
- 	CleanupStack::PushL(p);
- 	p->ConstructL();
-	CleanupStack::Pop(p);
- 	return p;
-	}
-
-CChannelMgrCmdData::~CChannelMgrCmdData()
-/**
- * Destructor. Delete all resources and memory allocated by this object.
- * Disconnect the channel from the multiplexer.
- */
-	{
-    _LOG_L4C1("CChannelMgrData::~CChannelMgrCmdData");
-	}
-
-
-CChannelMgrCmdData::CChannelMgrCmdData(const TUint8 aDlcNum,
-									   CPortFactory& aPortFactory,
-									   CMux0710Protocol& aMux0710Protocol)
-: CChannelMgrBase(aDlcNum, aPortFactory, aMux0710Protocol),
-  iCount(0)
-/**
- * Constructor.
- * @param aDlcNum - DLC number of this channel
- * @param aPortFactory - Reference to the port factory
- * @param aMux0710Protocol - Reference to the 27.010 mux protocol
- */
- 	{
-	iCsyAllowedToSendFrames = EFlowControlOn;
-	}
-
-void CChannelMgrCmdData::ConstructL()
-/**
- * Create any instances and allocate any memory used by this object.
- */
- 	{
-	CChannelMgrBase::ConstructL();
-	}
-
-void CChannelMgrCmdData::Open(CPortC32InterfaceBase* aPort)
-/**
- * Open the port
- *
- * @param aPort - Pointer to CPortC32Interface
- */
-	{
-	_LOG_L4C2(">>CChannelMgrCmdData::Open [aPort=0x%x]",aPort);
-	
-	iCount++;
-	if (iCount == 1)
-		{
-		_LOG_L4C1("First client of port");
-		
-		if (aPort->GetClientType() == CPortFactory::EC32ClientIpNif)
-			{
-			ParameterNegotiate();
-			}
-		else
-			{
-			TInt err = Connect();
-			if (err != KErrNone)
-				_LOG_L4C2("Open Connect error =%d",err);				
-			}
-	}
-	iPortArray.Insert(aPort,0);
-	SetOwner(aPort);
-
-	_LOG_L4C2("<<CChannelMgrCmdData::Open [iCount=%d]",iCount);
-	}
-
-void CChannelMgrCmdData::Close(CPortC32InterfaceBase* aPort)
-/**
- * Close the port
- *
- * @param aPort - Pointer to CPortC32Interface
- */
-	{
-	_LOG_L4C2(">>CChannelMgrCmdData::Close [aPort=%d]",aPort->GetPortNumber());
-
-	iCount--;
-	if (iCount < 1)
-		{
-		_LOG_L4C1("Last client of port");
-		Disconnect();
-		iCount = 0; // reset counter
-		iChannelReady = EFalse;
-		}
-
-	// remove port from the port list, set next port in the queue to be the port owner
-	TInt index;
-	index = iPortArray.Find(aPort);
-	if (index == KErrNotFound)
-		{
-		_LOG_L1C2("** Close() - Port %d not found **", aPort);
-		}
-	else
-		{
-		iPortArray.Remove(index);
-		if (iPortC32Interface == aPort)
-			{
-			// close the current owner of the channel, set owership to the first one in the port list
-			// if there are one
-			if (iPortArray.Count() > 0)
-				SetOwner(iPortArray[0]);
-			else
-				SetOwner(NULL);
-			}
-		}
-
-	_LOG_L4C2("<<CChannelMgrCmdData::Close [iCount=%d]",iCount);
-	}
-
-void CChannelMgrCmdData::SetOwner(CPortC32InterfaceBase* aPort)
-/**
- * Set owner to the pointer
- * @param aPort - Pointer to new owner, which is a CPortC32Interface instance
- */
-	{
-	_LOG_L4C1(">>CChannelMgrCmdData::SetOwner");
-	
-	if (iPortC32Interface == aPort)
-		return;
-
-	if (iPortC32Interface != NULL)
-		iPortC32Interface->CompleteOutstandingRequest();
-
-	if (aPort == NULL)
-		{
-		iPortC32Interface = aPort;
-		_LOG_L4C1("<<CChannelMgrCmdData::SetOwner aPort was Null");
-		return;
-		}
-
-	TInt index;
-	index = iPortArray.Find(aPort);
-	if (index == KErrNotFound)
-		{
-		_LOG_L1C2("** Port %d not found **", aPort);
-		}
-	else
-		{
-		iPortC32Interface = aPort;
-		}
-
-	_LOG_L4C1("<<CChannelMgrCmdData::SetOwner");
-	}
-
-void CChannelMgrCmdData::SetupCmdChannelsForATCmdsL()
-/**
- * Set up and prepare the ports for AT commands
- */
-	{
-	_LOG_L4C1("CChannelMgrCmdData::SetupCmdChannelsForATCmdsL");
-#if defined DSAMPLE || defined H2
-	_LOG_L4C1("Setting up for DSample/H2 (or P2Sample on Wins)");
-#endif
-#ifdef P2SAMPLE
-	_LOG_L4C1("Setting up for P2Sample on TARGET");
-#endif
-
-	TBuf8<20> temp;
-	temp.Copy(KATCmdSetup);
-	iMux0710Protocol.Create0710DataFrames(temp, (TInt8)GetDlcNumber());
-	}
-
-void CChannelMgrCmdData::ProcessRecvUihFrame(CCsyMsgBufBpFrame* aBpFrame)
-/**
- * Process a received UIH frame. Set flow control off if an "ok" is received
- * and we are still initializing.
- *
- * @param aBpFrame - Pointer to the frame received from the baseband
- */
-	{
-#ifdef _DEBUG
-	// The dlcNum is only needed for logging when _DEBUG is set.
-	// Otherwise we get a warning for ARM v5
-	TInt dlcNum;
-	dlcNum = aBpFrame->GetDlcNum();
-#endif
-
-	if(!iInitFinished)
-		{
-		if (iChannelState != ECsyChannelStateConnected)
-			{
-			_LOG_L4C1("Waiting for AT interpreter");
-			if (aBpFrame->iMsg.Find(KATInitialised) != KErrNotFound)
-				{
-				_LOG_L3C2E("AT interpreter ready [dlcNum=%d]", dlcNum);
-				iChannelState = ECsyChannelStateConnected;
-				// Send initial AT command
-				TRAP_IGNORE(SetupCmdChannelsForATCmdsL());
-				}
-			else
-				{
-				_LOG_L3C2E("Throw away unexpected response dlcNum=%d", dlcNum);
-				}
-			}
-		else
-			{
-			_LOG_L4C1("Waiting for response to initial AT command");
-			if (aBpFrame->iMsg.Find(_L8("OK")) != KErrNotFound)
-				{
-				_LOG_L1C2E("**** Init completed [dlcNum=%d] ****", dlcNum);
-				NotifyChannelReady();
-				ModemAndCsyToClientFlowCtrl(EFlowControlOff);
-				}
-			/*else if (aBpFrame->iMsg.Find(_L8("ERROR")) != KErrNotFound)
-				{
-				_LOG_L1C2E("**** Init completed [dlcNum=%d] ****ERROR****", dlcNum);
-				NotifyChannelReady();
-				ModemAndCsyToClientFlowCtrl(EFlowControlOff);
-				}
-			*/
-			else
-				{
-				_LOG_L3C2E("Throw away unexpected response dlcNum=%d", dlcNum);
-				}
-			}
-		iMux0710Protocol.AddFrameFreeQ(aBpFrame);
-		}
-	else if (iPortC32Interface)
-		{
-		// don't need to add to the mux's queue if we are not defragging messages
-		// simply add to the port object's queue
-		// send frame to client
-		iPortC32Interface->SendFrameToClient(aBpFrame);
-		}
-	else
-		{
-		_LOG_L1C2E("** NULL C32 PORT ** dlcNum=%d", dlcNum);
-		iMux0710Protocol.AddFrameFreeQ(aBpFrame);
-		// MAF __ASSERT_DEBUG(EFalse, PANIC(KPanicIllegalState));
-		}
-	}
-
-
-