sdkcreationmw/sdkruntimes/new_wsock_3pc/inc/winsockBinders.h
author rajpuroh
Wed, 21 Apr 2010 10:32:25 +0530
changeset 2 82fb8aa91b2c
permissions -rw-r--r--
Winsock 3 PC Arch Contribution
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
     1
// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
     2
// All rights reserved.
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
     3
// This component and the accompanying materials are made available
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
     4
// under the terms of the License "Eclipse Public License v1.0"
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
     5
// which accompanies this distribution, and is available
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
     7
//
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
     8
// Initial Contributors:
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    10
//
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    11
// Contributors:
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    12
//
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    13
// Description:
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    14
// tunnelnif.h 
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    15
// 
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    16
//
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    17
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    18
/**
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    19
 @file 
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    20
 @internalComponent
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    21
*/
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    22
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    23
#ifndef WINSOCKBINDERS_H__
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    24
#define WINSOCKBINDERS_H__
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    25
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    26
#include <comms-infras/nifif.h>
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    27
#include <in6_if.h>
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    28
#include <eui_addr.h>	// TE64Addr
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    29
#include <comms-infras/ss_flowbinders.h>
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    30
#include <comms-infras/ss_nodemessages.h>
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    31
#include "winsockflow.h"				// for CTunnelNcp::Info()
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    32
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    33
using namespace ESock;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    34
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    35
const TInt KWinsockMtu = 1500;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    36
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    37
class CWinsockFlow;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    38
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    39
NONSHARABLE_CLASS(CWinsockNcp) : public CBase, public ESock::MLowerDataSender, public ESock::MLowerControl
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    40
	{
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    41
public:
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    42
	// from MLowerControl
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    43
	virtual TInt GetName(TDes& aName);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    44
	virtual TInt BlockFlow(ESock::MLowerControl::TBlockOption /*aOption*/);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    45
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    46
	// from MLowerDataSender
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    47
	virtual ESock::MLowerDataSender::TSendResult Send(RMBufChain& aPdu);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    48
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    49
	// Utility functions called from CTunnelFlow
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    50
	ESock::MLowerDataSender* Bind(ESock::MUpperDataReceiver* aUpperReceiver, ESock::MUpperControl* aUpperControl);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    51
	void Unbind(ESock::MUpperDataReceiver* aUpperReceiver, ESock::MUpperControl* aUpperControl);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    52
	TBool MatchesUpperControl(const ESock::MUpperControl* aUpperControl);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    53
	void StartSending();
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    54
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    55
protected:
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    56
	CWinsockNcp(CWinsockFlow& aFlow);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    57
	inline const TWinsockInfo* Info();
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    58
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    59
protected:
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    60
    CWinsockFlow* iFlow;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    61
	
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    62
    TInetAddr iNameSer1;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    63
	TInetAddr iNameSer2;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    64
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    65
	ESock::MUpperControl* iUpperControl;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    66
	ESock::MUpperDataReceiver* iUpperReceiver;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    67
	};
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    68
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    69
// ======================================================================================
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    70
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    71
NONSHARABLE_CLASS(CWinsockNcp4) : public CWinsockNcp
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    72
	{
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    73
public:
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    74
	static CWinsockNcp4* ConstructL(CWinsockFlow& aLink);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    75
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    76
	// from MLowerDataSender
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    77
	virtual TInt GetConfig(TBinderConfig& aConfig);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    78
	virtual TInt Control(TUint, TUint, TDes8&);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    79
	//
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    80
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    81
	virtual TInt Notification(TWinsockAgentMessage::TTunnelSetAddress& aMessage);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    82
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    83
private:
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    84
    CWinsockNcp4(CWinsockFlow& aLink);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    85
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    86
	TUint32 iLocalAddress;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    87
	};
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    88
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    89
// ======================================================================================
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    90
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    91
NONSHARABLE_CLASS(CWinsockNcp6) : public CWinsockNcp
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    92
	{
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    93
public:
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    94
	static CWinsockNcp6* ConstructL(CWinsockFlow& aLink);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    95
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    96
	// from MLowerDataSender
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    97
	virtual TInt GetConfig(TBinderConfig& aConfig);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    98
	virtual TInt Control(TUint, TUint, TDes8&);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
    99
	//
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   100
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   101
	virtual TInt Notification(TWinsockAgentMessage::TTunnelSetAddress& aMessage);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   102
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   103
private:
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   104
    CWinsockNcp6(CWinsockFlow& aLink);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   105
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   106
	TInetAddr iLocalAddress;
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   107
	};
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   108
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   109
// ======================================================================================
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   110
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   111
class CWinsockNcpLog : public CBase
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   112
	{
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   113
public:
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   114
	static void Write(const TDesC& aDes);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   115
	static void Printf(TRefByValue<const TDesC> aFmt, ...);
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   116
	};
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   117
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   118
//
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   119
// Inline functions
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   120
//
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   121
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   122
inline const TWinsockInfo* CWinsockNcp::Info()
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   123
	{
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   124
	return iFlow->Info();
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   125
	}
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   126
82fb8aa91b2c Winsock 3 PC Arch Contribution
rajpuroh
parents:
diff changeset
   127
#endif