diff -r 000000000000 -r 307788aac0a8 realtimenetprots/sipfw/SIP/TransactionUser/src/UserAgentState.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/realtimenetprots/sipfw/SIP/TransactionUser/src/UserAgentState.cpp Tue Feb 02 01:03:15 2010 +0200 @@ -0,0 +1,283 @@ +// 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 : UserAgentState.cpp +// Part of : TransactionUser +// Version : SIP/5.0 +// + + + +#include "SipAssert.h" + +#include "CUserAgent.h" +#include "UserAgentState.h" +#include "UserAgentTimer.h" + +// ----------------------------------------------------------------------------- +// CUserAgentState::CUserAgentState +// ----------------------------------------------------------------------------- +// +CUserAgentState::CUserAgentState() + { + } + +// ----------------------------------------------------------------------------- +// CUserAgentState::~CUserAgentState +// ----------------------------------------------------------------------------- +// +CUserAgentState::~CUserAgentState() + { + } + +// ----------------------------------------------------------------------------- +// CUserAgentState::IsResolving +// ----------------------------------------------------------------------------- +// +TBool CUserAgentState::IsResolving() const + { + return EFalse; + } + +// ----------------------------------------------------------------------------- +// CUserAgentState::CanContinueWithoutOutgoingMsg +// By default, UA can't continue without iOutgoingMsg. +// ----------------------------------------------------------------------------- +// +TBool CUserAgentState::CanContinueWithoutOutgoingMsg( + TBool /*aFinalRespPassed*/) const + { + return EFalse; + } + +// ----------------------------------------------------------------------------- +// CUserAgentState::ShouldUASStop +// ----------------------------------------------------------------------------- +// +TBool CUserAgentState::ShouldUASStop() const + { + return EFalse; + } + +// ----------------------------------------------------------------------------- +// CUserAgentState::CancelL +// Only certain UAs can be canceled, and they have to be in a certain state. +// ----------------------------------------------------------------------------- +// +TBool CUserAgentState::CancelL(CUserAgent& /*aUserAgent*/) const + { + return EFalse; + } + +// ----------------------------------------------------------------------------- +// CUserAgentState::SendRequestL +// ----------------------------------------------------------------------------- +// +void CUserAgentState::SendRequestL(CUserAgent& /*aUserAgent*/, + CSIPRequest* aReq, + TRegistrationId /*aRegisterId*/, + const CURIContainer& /*aRemoteTarget*/) const + { + __SIP_ASSERT_LEAVE(aReq, KErrArgument); + __SIP_ASSERT_LEAVE(EFalse, KErrGeneral); + } + +// ----------------------------------------------------------------------------- +// CUserAgentState::SendResponseL +// ----------------------------------------------------------------------------- +// +void +CUserAgentState::SendResponseL(CUserAgent& /*aUserAgent*/, + CSIPResponse* aResp, + const TSIPTransportParams& /*aParams*/) const + { + __SIP_ASSERT_LEAVE(aResp, KErrArgument); + __SIP_ASSERT_LEAVE(EFalse, KErrGeneral); + } + +// ----------------------------------------------------------------------------- +// CUserAgentState::SendCancelL +// ----------------------------------------------------------------------------- +// +void CUserAgentState::SendCancelL(CUserAgent& /*aUserAgent*/, + TTransactionId /*aInviteTaId*/) const + { + __SIP_ASSERT_LEAVE(EFalse, KErrGeneral); + } + +// ----------------------------------------------------------------------------- +// CUserAgentState::SendAckL +// ----------------------------------------------------------------------------- +// +void CUserAgentState::SendAckL(CUserAgent& /*aUserAgent*/, + CSIPRequest* aAck, + MTransactionOwner& /*aObserver*/, + const TSIPTransportParams& /*aParams*/, + TRegistrationId /*aRegisterId*/, + const CURIContainer& /*aRemoteTarget*/, + TBool /*aDeleteRequest*/, + RStringF /*aBranch*/) const + { + __SIP_ASSERT_LEAVE(aAck, KErrArgument); + __SIP_ASSERT_LEAVE(EFalse, KErrGeneral); + } + +// ----------------------------------------------------------------------------- +// CUserAgentState::AddressResolvedL +// ----------------------------------------------------------------------------- +// +void CUserAgentState::AddressResolvedL(CUserAgent& /*aUserAgent*/) const + { + __SIP_ASSERT_LEAVE(EFalse, KErrGeneral); + } + +// ----------------------------------------------------------------------------- +// CUserAgentState::ResolvingFailed +// ----------------------------------------------------------------------------- +// +void CUserAgentState::ResolvingFailed(CUserAgent& /*aUserAgent*/) const + { + __SIP_ASSERT_RETURN(EFalse, KErrGeneral); + } + +// ----------------------------------------------------------------------------- +// CUserAgentState::TransactionEndsL +// ----------------------------------------------------------------------------- +// +void CUserAgentState::TransactionEndsL(CUserAgent& /*aUserAgent*/, + TInt /*aReason*/) const + { + __SIP_ASSERT_LEAVE(EFalse, KErrGeneral); + } + +// ----------------------------------------------------------------------------- +// CUserAgentState::ReceiveL +// ----------------------------------------------------------------------------- +// +void CUserAgentState::ReceiveL(CUserAgent& /*aUserAgent*/, + CSIPRequest* aRequest) const + { + __SIP_ASSERT_LEAVE(aRequest, KErrArgument); + __SIP_ASSERT_LEAVE(EFalse, KErrGeneral); + } + +// ----------------------------------------------------------------------------- +// CUserAgentState::ReceiveL +// ----------------------------------------------------------------------------- +// +void CUserAgentState::ReceiveL(CUserAgent& /*aUserAgent*/, + CSIPResponse* aResponse) const + { + __SIP_ASSERT_LEAVE(aResponse, KErrArgument); + __SIP_ASSERT_LEAVE(EFalse, KErrGeneral); + } + +// ----------------------------------------------------------------------------- +// CUserAgentState::OwnerFoundL +// ----------------------------------------------------------------------------- +// +void CUserAgentState::OwnerFoundL(CUserAgent& /*aUserAgent*/, + MTransactionOwner* aOwner) const + { + __SIP_ASSERT_LEAVE(aOwner, KErrArgument); + __SIP_ASSERT_LEAVE(EFalse, KErrGeneral); + } + +// ----------------------------------------------------------------------------- +// CUserAgentState::OwnerNotFoundL +// ----------------------------------------------------------------------------- +// +void CUserAgentState::OwnerNotFoundL(CUserAgent& /*aUserAgent*/, + CSIPResponse* aResp) const + { + __SIP_ASSERT_LEAVE(aResp, KErrArgument); + __SIP_ASSERT_LEAVE(EFalse, KErrGeneral); + } + +// ----------------------------------------------------------------------------- +// CUserAgentState::SendCompleteL +// ----------------------------------------------------------------------------- +// +void CUserAgentState::SendCompleteL(CUserAgent& /*aUserAgent*/) const + { + __SIP_ASSERT_LEAVE(EFalse, KErrGeneral); + } + +// ----------------------------------------------------------------------------- +// CUserAgentState::SendFailedL +// ----------------------------------------------------------------------------- +// +void CUserAgentState::SendFailedL(CUserAgent& /*aUserAgent*/, + TInt /*aErrcode*/) const + { + __SIP_ASSERT_LEAVE(EFalse, KErrGeneral); + } + +// ----------------------------------------------------------------------------- +// CUserAgentState::SIPSecCacheUpdatedL +// SIPSec uses this callback also when UAC has canceled the pending operations. +// So the default implementation just ignores the event. +// ----------------------------------------------------------------------------- +// +void CUserAgentState::SIPSecCacheUpdatedL(CUserAgent& /*aUserAgent*/, + TBool /*aSuccess*/) const + { + } + +// ----------------------------------------------------------------------------- +// CUserAgentState::IcmpErrorL +// By default, UA ignores ICMP errors. +// ----------------------------------------------------------------------------- +// +void +CUserAgentState::IcmpErrorL(CUserAgent& /*aUserAgent*/, + const TInetAddr& /*aAddress*/, + CSipConnectionMgr::TICMPError /*aError*/) const + { + } + +// ----------------------------------------------------------------------------- +// CUserAgentState::TimerExpiredL +// ----------------------------------------------------------------------------- +// +void CUserAgentState::TimerExpiredL(CUserAgent& /*aUserAgent*/, + TTimerId /*aTimerId*/, + TAny* aTimerParam) const + { + __SIP_ASSERT_LEAVE(aTimerParam, KErrArgument); + __SIP_ASSERT_LEAVE(EFalse, KErrGeneral); + } + +// ----------------------------------------------------------------------------- +// CUserAgentState::RequestRouterErrorL +// ----------------------------------------------------------------------------- +// +void CUserAgentState::RequestRouterErrorL(CUserAgent& /*aUserAgent*/) const + { + __SIP_ASSERT_LEAVE(EFalse, KErrGeneral); + } + +// ----------------------------------------------------------------------------- +// CUserAgentState::HandleTimerExpirationL +// ----------------------------------------------------------------------------- +// +void CUserAgentState::HandleTimerExpirationL(CUserAgent& aUserAgent, + TTimerId aTimerId, + TAny* aTimerParam) const + { + __SIP_ASSERT_LEAVE(aTimerParam, KErrArgument); + + CUserAgentTimer* timer = reinterpret_cast(aTimerParam); + timer->ExpiredL(&aUserAgent, aTimerId); + aUserAgent.DeleteTimer(*timer); + }