realtimenetprots/sipfw/SIP/Dialogs/src/Terminated.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 02 Feb 2010 01:03:15 +0200
changeset 0 307788aac0a8
permissions -rw-r--r--
Revision: 201003 Kit: 201005

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