--- /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;
+ }