networkcontrol/ipscpr/src/qos_msg.cpp
branchRCL_3
changeset 58 8d540f55e491
parent 57 abbed5a4b42a
child 59 e36178c55292
child 63 425d8f4f7fa5
--- a/networkcontrol/ipscpr/src/qos_msg.cpp	Tue Aug 31 16:45:15 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,393 +0,0 @@
-// Copyright (c) 2004-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:
-// Implementation file for the QoS Mapping Messages
-// 
-//
-
-/**
- @file qos_msg.cpp
-*/
-
-#include "pfqos_stream.h"
-#include "pfqoslib.h"
-#include "ipscpr.h"
-#include "qos_msg.h"
-#include "ipscprlog.h"
-
-
-const TIp6Addr KInet6AddrMask = {{{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
-                                  0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}}};
-
-const TInt KQoSDefaultBufSize = 8000;
-
-
-CQoSMsg* CQoSMsg::NewL( TPfqosMessages aMsgType )
-/**
-Create a new QoS PRT Message
-
-@param aMsgType Message Type
-*/
-	{
-	CQoSMsg* msg = new (ELeave) CQoSMsg();
-
-	CleanupStack::PushL( msg );
-	msg->ConstructL( aMsgType );
-	CleanupStack::Pop();
-
-	return msg;
-	}
-
-
-CQoSMsg::~CQoSMsg()
-/**
-Destructor
-*/
-	{
-	__IPCPRLOG(IpCprLog::Printf(_L("CQoSMsg::Destroy [%08x] Type=%d"), this, iType));
-
-	delete iMsg;
-	iMsg = NULL;
-	}
-
-
-CQoSMsg::CQoSMsg()
-/**
-Constructor
-*/
-	{
-	}
-
-
-void CQoSMsg::ConstructL( TPfqosMessages aMsgType )
-/**
-QoS PRT Message second phase construction
-
-@param aMsgType Message Type
-*/
-	{
-	__IPCPRLOG(IpCprLog::Printf(_L("CQoSMsg::Construct [%08x] Type=%d"), this, aMsgType));
-
-	iMsg = CPfqosStream::NewL(KQoSDefaultBufSize);
-	iMsg->Init((TUint8)aMsgType);
-	iType = aMsgType;
-	}
-
-
-void CQoSMsg::AddSrcAddr(const TInetAddr &aAddr)
-/**
-Adds Source Address Information to the QoS PRT Message
-
-@param aAddr Source Address
-*/
-	{
-	TInetAddr srcInetAddr(aAddr);
-	srcInetAddr.SetFamily(KAFUnspec);
-	srcInetAddr.SetAddress(KInet6AddrNone);
-
-	TInetAddr mask;
-	mask.SetAddress(KInet6AddrMask);
-	iMsg->AddSrcAddress(srcInetAddr, mask, (TUint16)srcInetAddr.Port()); 
-	}
-
-
-void CQoSMsg::AddDstAddr(const TInetAddr &aAddr)
-/**
-Adds Destination Address Information to the QoS PRT Message
-
-@param aAddr Destination Address
-*/
-	{
-	TInetAddr dstInetAddr(aAddr);
-	if (dstInetAddr.Family() == KAfInet)
-		{
-		dstInetAddr.ConvertToV4Mapped();
-		}
-
-	TInetAddr mask;
-	mask.SetAddress(KInet6AddrMask);
-	iMsg->AddDstAddress(dstInetAddr, mask, (TUint16)dstInetAddr.Port()); 
-	}
-
-
-void CQoSMsg::AddExtensionPolicy(TQoSExtensionQueue& aExtensions)
-/**
-Add QoS Extension Parameters to the QoS Message
-
-@param aExtensions Collection of Extensions Parameters
-*/
-	{
-	TQoSExtensionQueueIter iter(aExtensions);
-	CExtensionBase* extension;
-	while ((extension=iter++) != NULL)
-		{
-		TDesC8& extData = extension->Data();
-		iMsg->AddExtensionPolicy(extData);
-		}
-	}
-
-
-void CQoSMsg::Send(RInternalSocket &aSocket, TRequestStatus& aStatus)
-/** 
-Sends the current message to the QoS PRT
-
-@param aSocket Internal Socket over which to send a message
-@param aStatus Request Status
-*/
-	{
-	__IPCPRLOG(IpCprLog::Printf(_L("CQoSMsg::Send [%08x] Type=%d"), this, iType));
-	
-	iMsg->Send(aSocket, aStatus);
-	}
-
-
-// ###########################################################
-
-
-CQoSMsgWriter* CQoSMsgWriter::NewL(CIpSubConnectionProvider* aOwner, RInternalSocket& aSocket)
-/**
-Create QoS PRT Message Writer
-
-@param aOwner The IP SubConnection Provider that creates this object
-@param aSocket reference to an Internal Socket owned by the IP SubConnection Provider
-*/
-	{
-	return new (ELeave) CQoSMsgWriter(aOwner, aSocket);
-	}
-
-
-CQoSMsgWriter::CQoSMsgWriter(CIpSubConnectionProvider* aOwner, RInternalSocket& aSocket)
-/**
-Constructor
-
-@param aOwner The IP SubConnection Provider that creates this object
-@param aSocket reference to an Internal Socket owned by the IP SubConnection Provider
-*/
-	: CActive(EPriorityStandard)
-	, iOwner(aOwner)
-	, iSocket(aSocket)
-	, iClosing(EFalse)
-	{
-	__IPCPRLOG(IpCprLog::Printf(_L("CQoSMsgWriter::Construct [%08x]"), this));
-
-	CActiveScheduler::Add(this);
-	iPendingMsg.SetOffset(_FOFF(CQoSMsg, iLink));
-	}
-
-
-CQoSMsgWriter::~CQoSMsgWriter()
-/**
-Destructor
-*/
-	{
-	__IPCPRLOG(IpCprLog::Printf(_L("CQoSMsgWriter::Destroy [%08x]"), this));
-
-	if (IsActive())
-		{
-		Cancel();
-		}
-
-	iClosing = ETrue;
-
-	if (iCurrentMsg)
-		{
-		delete iCurrentMsg;
-		iCurrentMsg = NULL;
-		}
-
-	while (!iPendingMsg.IsEmpty())
-		{
-		CQoSMsg* msg = iPendingMsg.First();
-		iPendingMsg.Remove(*msg);
-		delete msg;
-		}
-
-	iPendingMsg.Reset();
-	}
-
-
-void CQoSMsgWriter::Send(CQoSMsg* aMsg)
-/**
-Sends a Message to the QoS PRT
-
-@param aMsg The message to send
-*/
-	{
-	__IPCPRLOG(IpCprLog::Printf(_L("CQoSMsgWriter::Send [%08x]"), this));
-
-	// Can only process one message at a time.
-	if (IsActive())
-		{
-		iPendingMsg.AddLast(*aMsg);
-		}
-	else
-		{
-		iCurrentMsg = aMsg;
-		iCurrentMsg->Send(iSocket, iStatus);
-		SetActive();
-		}
-	}
-
-
-void CQoSMsgWriter::RunL()
-/**
-Active Object main processing function
-*/
-	{
-	__IPCPRLOG(IpCprLog::Printf(_L("CQoSMsgWriter::RunL [%08x] - Enter"), this));
-
-	TInt err = iStatus.Int();
-	if (err != KErrNone && iOwner)
-		{
-		__IPCPRLOG(IpCprLog::Printf(_L("CQoSMsgWriter::RunL [%08x] - Process Error"), this));
-#ifdef _DEBUG
-		TInt msgType = EPfqosReserved;
-		if( iCurrentMsg )
-			{
-			msgType = iCurrentMsg->iType;
-			}
-		iOwner->ProcessPRTError(msgType, err);
-#endif
-		}
-
-	delete iCurrentMsg;
-	iCurrentMsg = NULL;
-
-	if (!iClosing && !iPendingMsg.IsEmpty())
-		{
-		__IPCPRLOG(IpCprLog::Printf(_L("CQoSMsgWriter::RunL [%08x] - Send next message"), this));
-		CQoSMsg* msg = iPendingMsg.First();
-		iPendingMsg.Remove(*msg);
-		iCurrentMsg = msg;
-		iCurrentMsg->Send(iSocket, iStatus);
-		SetActive();
-		}
-
-	__IPCPRLOG(IpCprLog::Printf(_L("CQoSMsgWriter::RunL [%08x] - Exit"), this));
-	}
-
-
-// ###########################################################
-
-
-CQoSMsgReader* CQoSMsgReader::NewL( CIpSubConnectionProvider *aOwner, RInternalSocket& aSocket)
-/**
-Create QoS PRT Message Reader
-
-@param aOwner The IP SubConnection Provider that creates this object
-@param aSocket reference to an Internal Socket owned by the IP SubConnection Provider
-*/
-	{
-	CQoSMsgReader* reader = new (ELeave) CQoSMsgReader(aOwner, aSocket);
-
-	CleanupStack::PushL( reader );
-	reader->ConstructL();
-	CleanupStack::Pop();
-
-	return reader;
-	}
-
-
-CQoSMsgReader::CQoSMsgReader(CIpSubConnectionProvider *aOwner, RInternalSocket& aSocket)
-/**
-Constructor
-
-@param aOwner The IP SubConnection Provider that creates this object
-@param aSocket reference to an Internal Socket owned by the IP SubConnection Provider
-*/
-	: CActive(EPriorityStandard)
-	, iOwner(aOwner)
-	, iSocket(aSocket)
-	, iRecvPtr(0,0)
-	, iClosing(EFalse)
-	{
-	CActiveScheduler::Add(this);
-	}
-
-
-CQoSMsgReader::~CQoSMsgReader()
-/**
-Destructor
-*/
-	{
-	__IPCPRLOG(IpCprLog::Printf(_L("CQoSMsgReader::Destruct [%08x]"), this));
-
-	if (IsActive())
-		{
-		Cancel();
-		}
-
-	iClosing = ETrue;
-
-	if (iRecvBuf)
-		{
-		delete iRecvBuf;
-		iRecvBuf = NULL;
-		}
-	}
-
-
-void CQoSMsgReader::ConstructL()
-/**
-QoS PRT Message Reader second phase construction
-*/
-	{
-	__IPCPRLOG(IpCprLog::Printf(_L("CQoSMsgReader::Construct [%08x]"), this));
-
-	iRecvBuf = HBufC8::NewL(KQoSDefaultBufSize);
-	TPtr8 tmp(iRecvBuf->Des());
-	iRecvPtr.Set(tmp);
-
-	iRecvPtr.Zero();
-	iRecvPtr.SetLength(KQoSDefaultBufSize);
-	iSocket.Recv(iRecvPtr, 0, iStatus);
-	SetActive();
-	}
-
-
-void CQoSMsgReader::RunL()
-/**
-Active Object main processing function
-*/
-	{
-	__IPCPRLOG(IpCprLog::Printf(_L("CQoSMsgReader::RunL [%08x] - Enter"), this));
-
-	if (iStatus.Int() == KErrNone && iRecvPtr.Length() > 0 )
-		{
-		__IPCPRLOG(IpCprLog::Printf(_L("CQoSMsgReader::RunL [%08x] - Process Response"), this));
-		TPfqosMessage msg(iRecvPtr);
-		if (msg.iError == KErrNone)
-			{
-			iOwner->ProcessPRTMsg(msg);
-			}
-#ifdef _DEBUG
-		else
-			{
-			TInt msgType = EPfqosReserved;
-			iOwner->ProcessPRTError(msgType, msg.iError);
-			}
-#endif
-		}
-
-	if (!iClosing)
-		{
-		__IPCPRLOG(IpCprLog::Printf(_L("CQoSMsgReader::RunL [%08x] - Wait for next message"), this));
-		iRecvPtr.Zero();
-		iRecvPtr.SetLength(KQoSDefaultBufSize);
-		iSocket.Recv(iRecvPtr, 0, iStatus);
-		SetActive();
-		}
-
-	__IPCPRLOG(IpCprLog::Printf(_L("CQoSMsgReader::RunL [%08x] - Exit"), this));
-	}
-