--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/realtimenetprots/sipfw/SIP/TransactionUser/src/ResolvingResults.cpp Tue Feb 02 01:03:15 2010 +0200
@@ -0,0 +1,113 @@
+// Copyright (c) 2006-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 : ResolvingResults.cpp
+// Part of : TransactionUser
+// Version : SIP/5.0
+//
+
+
+
+#include <stringpool.h>
+#include "MSIPResolvingResult.h"
+
+#include "ResolvingResults.h"
+
+#ifdef CPPUNIT_TEST
+#include "TestCleanupStack.h"
+#endif
+
+
+// -----------------------------------------------------------------------------
+// CResolvingResults::NewL
+// -----------------------------------------------------------------------------
+//
+CResolvingResults* CResolvingResults::NewL()
+ {
+ CResolvingResults* self = new (ELeave) CResolvingResults();
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// CResolvingResults::CResolvingResults
+// -----------------------------------------------------------------------------
+//
+CResolvingResults::CResolvingResults()
+#ifdef CPPUNIT_TEST
+ : iAddresses(1)
+#endif
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CResolvingResults::~CResolvingResults
+// -----------------------------------------------------------------------------
+//
+CResolvingResults::~CResolvingResults()
+ {
+ iAddresses.ResetAndDestroy();
+ }
+
+// -----------------------------------------------------------------------------
+// CResolvingResults::Addresses
+// -----------------------------------------------------------------------------
+//
+RPointerArray<MSIPResolvingResult>& CResolvingResults::Addresses()
+ {
+ return iAddresses;
+ }
+
+// -----------------------------------------------------------------------------
+// CResolvingResults::GetNext
+// -----------------------------------------------------------------------------
+//
+TBool CResolvingResults::GetNext(TInetAddr& aAddress,
+ RStringF& aTransport,
+ TBool& aForceUDP)
+ {
+ TInt pos = 0;
+ while (pos < iAddresses.Count() && iAddresses[pos]->Failed())
+ {
+ pos++;
+ }
+
+ if (pos < iAddresses.Count())
+ {
+ aAddress = iAddresses[pos]->Address();
+ aTransport.Close();
+ aTransport = iAddresses[pos]->Protocol().Copy();
+ aForceUDP = iAddresses[pos]->ForceUDP();
+ iAddresses[pos]->SetFailed(ETrue);
+ return ETrue;
+ }
+
+ return EFalse;
+ }
+
+// -----------------------------------------------------------------------------
+// CResolvingResults::ContinueResolvingCurrentUri
+// -----------------------------------------------------------------------------
+//
+TBool CResolvingResults::ContinueResolvingCurrentUri() const
+ {
+ return iAddresses.Count() > 0;
+ }
+
+// -----------------------------------------------------------------------------
+// CResolvingResults::ClearAll
+// -----------------------------------------------------------------------------
+//
+void CResolvingResults::ClearAll()
+ {
+ iAddresses.ResetAndDestroy();
+ }