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