realtimenetprots/sipfw/SIP/ConnectionMgr/src/CTcpTransConnected.cpp
changeset 0 307788aac0a8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/realtimenetprots/sipfw/SIP/ConnectionMgr/src/CTcpTransConnected.cpp	Tue Feb 02 01:03:15 2010 +0200
@@ -0,0 +1,178 @@
+// Copyright (c) 2002-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          : CTcpTransConnected.cpp
+// Part of       : ConnectionMgr
+// Version       : SIP/4.0 
+//
+
+
+
+
+#include "CTcpTransConnected.h"
+#include "sipmessage.h"
+#include "CTransportTcp.h"
+#include "CSender.h"
+#include "CListener.h"
+#include "CommonConsts.h"
+#include "sipstrings.h"
+#include "sipstrconsts.h"
+#include "CSocketContainer.h"
+
+// -----------------------------------------------------------------------------
+// CTcpTransportConnected::NewL
+// -----------------------------------------------------------------------------
+//
+CTcpTransportConnected* CTcpTransportConnected::NewL( 
+    const TSIPTransportParams& aParams)
+	{
+	CTcpTransportConnected* self = NewLC(aParams);
+	CleanupStack::Pop(self);
+	return self;	
+	}
+
+// -----------------------------------------------------------------------------
+// CTcpTransportConnected::NewLC
+// -----------------------------------------------------------------------------
+//
+CTcpTransportConnected* CTcpTransportConnected::NewLC(
+    const TSIPTransportParams& aParams)
+	{
+	CTcpTransportConnected* self = new (ELeave) CTcpTransportConnected(aParams);
+	CleanupStack::PushL(self);
+	return self;
+	}
+
+// -----------------------------------------------------------------------------
+// CTcpTransportConnected::SendToNetL
+// -----------------------------------------------------------------------------
+//
+void CTcpTransportConnected::SendToNetL(const TSIPTransportParams& aParams,
+                            CSIPMessage& aMessage,
+							const TInetAddr& aAddr,
+							TRequestStatus &aStatus,
+							TUint aOrigTransport,
+							CTransportTcp* aContext)
+	{
+	__ASSERT_DEBUG(aContext, User::Panic(_L("Nullpointer"), KErrGeneral));
+	
+	aContext->GetSender()->SendL(aParams,
+	                             aMessage,
+                                 aAddr, 
+                                 aOrigTransport, 
+                                 aStatus, 
+                                 EFalse,
+                                 EFalse);
+	aContext->StartTimerL();
+	}
+
+// -----------------------------------------------------------------------------
+// CTcpTransportConnected::CancelSend
+// -----------------------------------------------------------------------------
+//
+TBool CTcpTransportConnected::CancelSend(TRequestStatus& aStatus,
+										 CTransportTcp* aContext)
+	{
+	__ASSERT_DEBUG(aContext, User::Panic(_L("Nullpointer"), KErrGeneral));
+	
+	return aContext->GetSender()->FindAndCancel(aStatus);
+	}
+
+// -----------------------------------------------------------------------------
+// CTcpTransportConnected::Wait
+// -----------------------------------------------------------------------------
+//
+void CTcpTransportConnected::Wait(CTransportTcp* /*aContext*/)
+	{
+	}
+
+// -----------------------------------------------------------------------------
+// CTcpTransportConnected::HandleMessage
+// -----------------------------------------------------------------------------
+//
+TBool CTcpTransportConnected::HandleMessage(RStringF aProtocol,
+											const TInetAddr& aRemoteAddr,
+											CTransportTcp* aContext)
+	{
+	__ASSERT_DEBUG(aContext, User::Panic(_L("Nullpointer"), KErrGeneral));
+	
+	TInetAddr connect;
+	aContext->SocketContainer().RemoteName(connect);
+	if (aProtocol == SIPStrings::StringF(SipStrConsts::ETCP) &&
+		connect.Match(aRemoteAddr) &&
+		(connect.Port() == aRemoteAddr.Port()))
+		{
+		return ETrue;
+		}
+	return EFalse;
+	}
+
+// -----------------------------------------------------------------------------
+// CTcpTransportConnected::CancelAllRequests
+// -----------------------------------------------------------------------------
+//
+void CTcpTransportConnected::CancelAllRequests(CSIPConnection::TState aReason,
+											   CTransportTcp* aContext)
+	{
+	__ASSERT_DEBUG(aContext, User::Panic(_L("Nullpointer"), KErrGeneral));
+	
+	aContext->GetSender()->CancelAllRequests(aReason);
+	}
+
+// -----------------------------------------------------------------------------
+// CTcpTransportConnected::DisconnectedL
+// -----------------------------------------------------------------------------
+//
+void CTcpTransportConnected::DisconnectedL(CTransportTcp* aContext)
+	{
+	__ASSERT_DEBUG(aContext, User::Panic(_L("Nullpointer"), KErrGeneral));
+	
+	aContext->Remove();
+	}
+
+// -----------------------------------------------------------------------------
+// CTcpTransportConnected::SetNeighborState
+// -----------------------------------------------------------------------------
+//
+void CTcpTransportConnected::SetNeighborState(CTcpTransportState* /*aState*/)
+	{	
+	}
+
+// -----------------------------------------------------------------------------
+// CTcpTransportConnected::TimerExpiredL
+// -----------------------------------------------------------------------------
+//
+void CTcpTransportConnected::TimerExpiredL(CTransportTcp* aContext)
+	{
+	__ASSERT_DEBUG(aContext, User::Panic(_L("Nullpointer"), KErrGeneral));
+	
+	DisconnectedL(aContext);
+	}
+
+// -----------------------------------------------------------------------------
+// CTcpTransportConnected::~CTcpTransportConnected
+// -----------------------------------------------------------------------------
+//
+CTcpTransportConnected::~CTcpTransportConnected()
+	{
+	}
+
+// -----------------------------------------------------------------------------
+// CTcpTransportConnected::CTcpTransportConnected
+// -----------------------------------------------------------------------------
+//
+CTcpTransportConnected::CTcpTransportConnected(
+    const TSIPTransportParams& aParams) : 
+    CTcpTransportState(aParams)
+	{
+	}