diff -r 000000000000 -r 307788aac0a8 realtimenetprots/sipfw/SIP/Transaction/src/ResponseQueueItem.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/realtimenetprots/sipfw/SIP/Transaction/src/ResponseQueueItem.cpp Tue Feb 02 01:03:15 2010 +0200 @@ -0,0 +1,108 @@ +// Copyright (c) 2005-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: +// Name : ResponseQueueItem.cpp +// Part of : Transaction +// Version : SIP/4.0 +// + + + +#include "SipAssert.h" +#include "sipresponse.h" + +#include "ResponseQueueItem.h" + +// ----------------------------------------------------------------------------- +// CResponseQueueItem::NewLC +// ----------------------------------------------------------------------------- +// +CResponseQueueItem* +CResponseQueueItem::NewLC(CSIPResponse* aResp, + const TSIPTransportParams& aParams, + TBool aRespToInvite) + { + __SIP_ASSERT_LEAVE(aResp, KErrArgument); + + CResponseQueueItem* self = new (ELeave) CResponseQueueItem(aResp, + aParams, + aRespToInvite); + CleanupStack::PushL(self); + return self; + } + +// ----------------------------------------------------------------------------- +// CResponseQueueItem::CResponseQueueItem +// ----------------------------------------------------------------------------- +// +CResponseQueueItem::CResponseQueueItem(CSIPResponse* aResp, + const TSIPTransportParams& aParams, + TBool aRespToInvite) : + iResp(aResp), + iParams(aParams), + iRespToInvite(aRespToInvite), + iOwnsResponse(EFalse) + { + } + +// ----------------------------------------------------------------------------- +// CResponseQueueItem::~CResponseQueueItem +// ----------------------------------------------------------------------------- +// +CResponseQueueItem::~CResponseQueueItem() + { + if (iOwnsResponse) + { + delete iResp; + } + } + +// ----------------------------------------------------------------------------- +// CResponseQueueItem::SetResponseOwnership +// CResponseQueueItem can never own a 2xx response to INVITE. +// ----------------------------------------------------------------------------- +// +void CResponseQueueItem::SetResponseOwnership(TBool aOwnsResponse) + { + if (!(iResp->Type() == CSIPResponse::E2XX && iRespToInvite)) + { + iOwnsResponse = aOwnsResponse; + } + } + +// ----------------------------------------------------------------------------- +// CResponseQueueItem::Response +// ----------------------------------------------------------------------------- +// +CSIPResponse& CResponseQueueItem::Response() + { + return *iResp; + } + +// ----------------------------------------------------------------------------- +// CResponseQueueItem::TransportParams +// ----------------------------------------------------------------------------- +// +const TSIPTransportParams& CResponseQueueItem::TransportParams() const + { + return iParams; + } + +// ----------------------------------------------------------------------------- +// CResponseQueueItem::IsRespToInvite +// ----------------------------------------------------------------------------- +// +TBool CResponseQueueItem::IsRespToInvite() const + { + return iRespToInvite; + }