realtimenetprots/sipfw/SIP/ConnectionMgr/inc/CTransportBase.h
changeset 0 307788aac0a8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/realtimenetprots/sipfw/SIP/ConnectionMgr/inc/CTransportBase.h	Tue Feb 02 01:03:15 2010 +0200
@@ -0,0 +1,135 @@
+/*
+* 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          : MTransport.h
+* Part of       : ConnectionMgr
+* Version       : SIP/4.0 
+*
+*/
+
+
+
+
+/**
+ @internalComponent
+*/
+
+#ifndef __CTRANSPORTBASE_H__
+#define __CTRANSPORTBASE_H__
+
+#include <e32base.h>
+#include <e32std.h>
+#include <e32def.h>
+#include <in_sock.h>
+#include "Lwtimer.h"
+#include "siprequest.h"
+#include "sipresponse.h"
+#include "sipmessage.h"
+#include "sipclient.h"
+#include "sipconnection.h"
+#include "CSipConnectionMgr.h"
+#include "SipStackServerDefs.h"
+#include "CSender.h"
+
+// FORWARD DECLARATIONS
+class MSocketUsagePermissionObserver;
+class MSIPNATBindingObserver;
+class MSIPTransportRemovalObserver;
+
+// CLASS DEFINITION
+//
+class CTransportBase :  public CBase
+	{
+public:
+	virtual ~CTransportBase() {}
+	virtual CSender* Sender(const TSIPTransportParams& aParams,
+	                        TUint aProtocol,
+	                        const TInetAddr& aRemoteAddr) = 0;
+	virtual TUint ProtocolType() = 0;
+	virtual TBool HandleL(const TSIPTransportParams& aParams,
+	                      CSIPMessage* aMessage, 
+	                      TTransactionId aId,
+	                      TBool aIsStrict) = 0;
+	virtual TBool HandleL(const TSIPTransportParams& aParams,
+	                      CSIPMessage* aMessage, 
+	                      const TInetAddr& aAddr,
+	                      TUint aLocalPort,
+	                      TBool aIsStrict) = 0;
+	virtual TBool HandleMessage(const TSIPTransportParams& aParams,
+	                            RStringF aProtocol,
+							 	const TInetAddr& aRemoteAddr,
+							 	TUint aLocalPort,
+							 	TBool aIsStrict) = 0;
+	virtual TBool Handle(TUint32 aTransportId) = 0;
+	virtual TBool Match(const TSIPTransportParams& aParams) = 0;
+	virtual void WaitL() = 0;
+	virtual TBool IsWaiting(TUint aProtocol, TUint aPort) = 0;
+	virtual void Send(const TSIPTransportParams& aParams,
+	                  CSIPResponse& aResponse,
+					  TTransactionId aId,
+					  TRequestStatus &aStatus) = 0;
+	virtual void Send(const TSIPTransportParams& aParams,
+	                  CSIPResponse& aResponse,
+					  const TInetAddr& aAddr,
+					  TRequestStatus &aStatus) = 0;
+	virtual void Send(const TSIPTransportParams& aParams,
+	                  CSIPRequest& aRequest,
+	                  TBool aForceUDP,
+					  const TInetAddr& aAddr,
+					  TUint aOrigTransport,
+					  TRequestStatus &aStatus,
+					  TBool aPublicAddrResolved) = 0;
+	virtual TBool CancelSend(TRequestStatus& aStatus) = 0;
+	virtual TBool CancelResponseSend(TTransactionId aId, 
+	                                 TBool aCancelAlso2xxResponses) = 0;
+	virtual void CancelAllRequests(CSIPConnection::TState aReason) = 0;
+	virtual void GetAddrFromResponseL(const TSIPTransportParams& aParams,
+	                                  CSIPMessage& aMessage,
+									  TInetAddr& aAddr) = 0;
+	virtual void ICMPErrorL(CSipConnectionMgr::TICMPError aICMPError,
+							const TInetAddr& aSourceAddr) = 0;
+	virtual TBool HasRemoteHost(const TSIPTransportParams& aParams,
+	                            const TInetAddr& aRemoteHost,
+	                            RStringF aProtocol) = 0;
+	virtual void Disconnect(const TInetAddr& aRemoteHost) = 0;	
+
+    virtual TBool Remove(const TSIPTransportParams& aParams) = 0;
+    virtual TBool Remove(TUint32 aTransportId) = 0;
+    virtual TBool Remove(MSIPNATBindingObserver& aSIPNATBindingObserver) = 0;
+    
+    virtual TBool Shutdown(TUint32 aTransportId,
+                           MSIPTransportRemovalObserver* aRemovalObserver) = 0;
+    
+    virtual TBool AddUserL(const TSIPTransportParams& aParams, 
+                           TUint aReceivePort) = 0;
+                           
+    virtual TBool IsReservedTransport() const = 0;
+    
+    virtual RSocket* AcquireUdpSocket( MSocketUsagePermissionObserver* aObserver,
+                                       const TInetAddr& aRemoteAddr,
+                                       TBool& aPermissionToUse ) = 0;
+                                        
+    virtual void UdpSocketReleased( MSocketUsagePermissionObserver* aObserver,
+                                    RSocket& aSocket ) = 0; 
+    
+    virtual TInetAddr* PersistentRemoteAddr( 
+                            MSIPNATBindingObserver* aBindingObserver ) = 0;
+    
+	static const TInt iOffset;
+	TSglQueLink iLink;
+	};
+
+#endif // end of __CTRANSPORTBASE_H__
+
+// End of File