realtimenetprots/sipfw/SIP/Dialogs/src/Terminated.cpp
changeset 0 307788aac0a8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/realtimenetprots/sipfw/SIP/Dialogs/src/Terminated.cpp	Tue Feb 02 01:03:15 2010 +0200
@@ -0,0 +1,129 @@
+// Copyright (c) 2007-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          : Terminated.cpp
+// Part of       : SIPDialogs
+// Version       : SIP/6.0 
+//
+
+
+
+#include "Terminated.h"
+#include "MDialogContext.h"
+#include "TransactionItemBase.h"
+#include "siperr.h"
+#include "sipinternalstates.h"
+
+_LIT8(KTerminated, "Terminated");
+
+// -----------------------------------------------------------------------------
+// TTerminated::TTerminated
+// -----------------------------------------------------------------------------
+//
+TTerminated::TTerminated (MDialogContext& aDialog)
+ : TDialogStateBase(aDialog)
+	{
+	}
+
+// -----------------------------------------------------------------------------
+// TTerminated::Name
+// -----------------------------------------------------------------------------
+//
+const TDesC8& TTerminated::Name () const
+	{
+	return KTerminated;
+	}
+	
+// -----------------------------------------------------------------------------
+// TTerminated::RequestsWithinDialogAllowed
+// -----------------------------------------------------------------------------
+//
+TBool TTerminated::RequestsWithinDialogAllowed () const
+    {
+    return EFalse; 
+    }		
+
+// -----------------------------------------------------------------------------
+// TTerminated::Accept
+// -----------------------------------------------------------------------------
+//
+TBool TTerminated::Accept(CSIPRequest& /*aRequest*/) const
+    {
+    return EFalse;
+    }
+
+// -----------------------------------------------------------------------------
+// TTerminated::SendL
+// -----------------------------------------------------------------------------
+//    
+void TTerminated::SendL (TTransactionId& /*aTransactionId*/,
+                         CSIPRequest* /*aRequest*/,
+                         CTransactionItemBase& /*aTransactionItem*/,
+                         CURIContainer& /*aRemoteTarget*/)
+    {
+    User::Leave(KErrSIPInvalidDialogState);
+    }
+
+// -----------------------------------------------------------------------------
+// TTerminated::SendL
+// -----------------------------------------------------------------------------
+//
+void TTerminated::SendL (CTransactionItemBase& aTransactionItem,
+						 CSIPResponse* aSipResponse) 
+	{
+	TSIPTransportParams params(iDialog.TransportParams(KEmptyRegistrationId));
+    aTransactionItem.SendL(params,aSipResponse,EFalse);
+	}
+
+// -----------------------------------------------------------------------------
+// TTerminated::ReceiveL
+// -----------------------------------------------------------------------------
+//
+void TTerminated::ReceiveL (CTransactionItemBase& aTransactionItem,
+                            CSIPResponse* aResponse)
+	{
+	PassToOwnerL(aTransactionItem,aResponse);
+	}
+
+// -----------------------------------------------------------------------------
+// TTerminated::ReceiveL
+// -----------------------------------------------------------------------------
+//  
+void TTerminated::ReceiveL (TTransactionId /*aTransactionId*/,
+                            CSIPRequest* /*aRequest*/)
+    {
+    User::Leave(KErrSIPInvalidDialogState);
+    }
+
+
+// -----------------------------------------------------------------------------
+// TTerminated::EndTransaction
+// -----------------------------------------------------------------------------
+//
+void TTerminated::EndTransaction (CTransactionItemBase& aTransactionItem,
+                                  TInt aReason)
+	{ 
+	if (aReason)
+        {
+		PassToOwner(aTransactionItem,aReason);
+        }
+	}
+
+// -----------------------------------------------------------------------------
+// TTerminated::GetState
+// -----------------------------------------------------------------------------
+//
+void TTerminated::GetState (CSIPInternalStates::TState& aState)
+    {
+    aState = CSIPInternalStates::EDialogTerminated;
+    }