diff -r 000000000000 -r 307788aac0a8 realtimenetprots/sipfw/ClientResolver/Server/src/CSIPCRResponseQueue.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/realtimenetprots/sipfw/ClientResolver/Server/src/CSIPCRResponseQueue.cpp Tue Feb 02 01:03:15 2010 +0200 @@ -0,0 +1,111 @@ +// 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 : CSIPCRResponseQueue.cpp +// Part of : SIP Client Resolver +// Version : 1.0 +// + + + +// INCLUDES +#include "CSIPCRResponseQueue.h" + +// ----------------------------------------------------------------------------- +// CSIPCRResponseQueue::CSIPCRResponseQueue +// ----------------------------------------------------------------------------- +// +CSIPCRResponseQueue::CSIPCRResponseQueue () + { + iResponseItems.Reset (); + } + +// ----------------------------------------------------------------------------- +// CSIPCRResponseQueue::~CSIPCRResponseQueue +// ----------------------------------------------------------------------------- +// +CSIPCRResponseQueue::~CSIPCRResponseQueue () + { + iResponseItems.ResetAndDestroy(); + } + +// ----------------------------------------------------------------------------- +// CSIPCRResponseQueue::IsEmpty +// ----------------------------------------------------------------------------- +// +TBool CSIPCRResponseQueue::IsEmpty () const + { + return (iResponseItems.Count () == 0); + } + +// ----------------------------------------------------------------------------- +// CSIPCRResponseQueue::First +// ----------------------------------------------------------------------------- +// +CSIPCRResponseItem& CSIPCRResponseQueue::First () + { + __ASSERT_ALWAYS (iResponseItems.Count () > 0, + User::Panic(KNullDesC, KErrGeneral)); + return *(iResponseItems[0]); + } + +// ----------------------------------------------------------------------------- +// CSIPCRResponseQueue::AddLast() +// ----------------------------------------------------------------------------- +// +TInt CSIPCRResponseQueue::AddLast (const CSIPCRResponseItem* aItem) + { + return iResponseItems.Append (aItem); + } + +// ----------------------------------------------------------------------------- +// CSIPCRResponseQueue::RemoveFirst +// ----------------------------------------------------------------------------- +// +void CSIPCRResponseQueue::RemoveFirst () + { + if (iResponseItems.Count () > 0) + { + CSIPCRResponseItem* item = iResponseItems[0]; + iResponseItems.Remove (0); + delete item; + } + } + +// ----------------------------------------------------------------------------- +// CSIPCRResponseQueue::RemoveByRequestId +// ----------------------------------------------------------------------------- +// +void CSIPCRResponseQueue::RemoveByRequestId (TUint32 aRequestId) + { + for (TInt i=iResponseItems.Count()-1; i >= 0; i--) + { + CSIPCRResponseItem* item = iResponseItems[i]; + if (aRequestId == item->RequestId()) + { + iResponseItems.Remove(i); + delete item; + } + } + } + +// ----------------------------------------------------------------------------- +// CSIPCRResponseQueue::RemoveAll +// ----------------------------------------------------------------------------- +// +void CSIPCRResponseQueue::RemoveAll () + { + iResponseItems.ResetAndDestroy(); + } + +// End of File