diff -r bb2423252ea3 -r c1029e558ef5 linklayerprotocols/tundriver/inc/tundriverbinder.h --- a/linklayerprotocols/tundriver/inc/tundriverbinder.h Wed Sep 15 13:53:10 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,139 +0,0 @@ -/** -* Copyright (c) 2010 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: -* Header file for the Ip4 and Ip6 Binder Configuration. -* -* -*/ - -/** - @file tundriverbinder.h - @internalTechnology -*/ - -#ifndef _TUNDRIVERBINDER_H -#define _TUNDRIVERBINDER_H - -#include -#include -#include -#include -#include -#include -#include -#include "es_protbinder.h" -#include "tundriverflow.h" - -const TInt KMTU = 1500; - -const TInt KSpeedMetric = 0; - -const TUint KTUNDriverTos = 192; // 0xC0; uses the UNUSED 7,8 MSB of Differentiated Services - -class CTunDriverSubConnectionFlow; - -class CTunDriverBinder : public CBase, public ESock::MLowerDataSender, public ESock::MLowerControl -/** -Common Binder for the tunnel driver binder. This binder will be inherited by IPv4 or IPv6 Binder classes. -*/ - { -public: - virtual MLowerDataSender* Bind(ESock::MUpperDataReceiver& aUpperReceiver , ESock::MUpperControl& aUpperControl); - virtual void Unbind (ESock::MUpperDataReceiver& aUpperReceiver, ESock::MUpperControl& aUpperControl); - virtual TBool MatchesUpperControl(ESock::MUpperControl* aUpperControl) const; - virtual TInt Control(TUint, TUint, TDes8&); - void SetPort(TUint aPort); - TUint GetPort(); -protected: - CTunDriverBinder(CTunDriverSubConnectionFlow& aTunDriverSubConnectionFlow); -protected: - __FLOG_DECLARATION_MEMBER; -private: - CTunDriverSubConnectionFlow& iTunDriverSubConnectionFlow; - TUint iPort; - }; - -class CTunDriverBinder4 : public CTunDriverBinder - { -public: - static CTunDriverBinder4* NewL(CTunDriverSubConnectionFlow& aLink); - ~CTunDriverBinder4(); - // from MLowerDataSender - virtual TInt GetName(TDes& aName); - virtual TInt GetConfig(TBinderConfig& aConfig); - MLowerDataSender* Bind(ESock::MUpperDataReceiver& aUpperReceiver , ESock::MUpperControl& aUpperControl); - void Unbind (ESock::MUpperDataReceiver& aUpperReceiver, ESock::MUpperControl& aUpperControl); - TBool MatchesUpperControl(ESock::MUpperControl* aUpperControl) const; - ESock::MLowerDataSender::TSendResult Send(RMBufChain& aData); - void StartSending(); -private: - CTunDriverBinder4(CTunDriverSubConnectionFlow& aLink); - void ConstructL(); - void TunnelProcessing(RMBufPacket& aPacket, RMBufPacket& aRecv); - inline CTunDriverSubConnectionFlow* Flow(); - virtual void DoSend(); - virtual void DoProcess(); - static TInt RecvCallBack(TAny* aCProtocol); - static TInt SendCallBack(TAny* aCProtocol); -private: - TInetAddr iLocalAddress; - CTunDriverSubConnectionFlow& iTunDriverSubConnectionFlow; - ESock::MUpperDataReceiver* iUpperReceiver; - ESock::MUpperControl* iUpperControl; - RMBufPktQ iSendQ; - RMBufPktQ iRecvQ; - CAsyncCallBack* iSendCallBack; - CAsyncCallBack* iRecvCallBack; - }; - -CTunDriverSubConnectionFlow* CTunDriverBinder4::Flow() - { - return &iTunDriverSubConnectionFlow; - } - -#ifdef IPV6SUPPORT -class CTunDriverBinder6 : public CTunDriverBinder - { -public: - static CTunDriverBinder6* NewL(CTunDriverSubConnectionFlow& aLink); - ~CTunDriverBinder6(); - // from MLowerDataSender - virtual TInt GetName(TDes& aName); - virtual TInt GetConfig(TBinderConfig& aConfig); - MLowerDataSender* Bind(ESock::MUpperDataReceiver& aUpperReceiver , ESock::MUpperControl& aUpperControl); - void Unbind (ESock::MUpperDataReceiver& aUpperReceiver, ESock::MUpperControl& aUpperControl); - TBool MatchesUpperControl(ESock::MUpperControl* aUpperControl) const; - ESock::MLowerDataSender::TSendResult Send(RMBufChain& aData); - void StartSending(); -private: - CTunDriverBinder6(CTunDriverSubConnectionFlow& aLink); - void ConstructL(); - void TunnelProcessing(RMBufPacket& aPacket, RMBufPacket& aRecv); - inline CTunDriverSubConnectionFlow* Flow(); - virtual void DoSend(); - virtual void DoProcess(); - static TInt RecvCallBack(TAny* aCProtocol); - static TInt SendCallBack(TAny* aCProtocol); -private: - TInetAddr iLocalAddress; - CTunDriverSubConnectionFlow& iTunDriverSubConnectionFlow; - ESock::MUpperDataReceiver* iUpperReceiver; - ESock::MUpperControl* iUpperControl; - RMBufPktQ iSendQ; - RMBufPktQ iRecvQ; - CAsyncCallBack* iSendCallBack; - CAsyncCallBack* iRecvCallBack; - }; -#endif -#endif // _TUNDRIVERBINDER_H