sdkcreationmw/sdkruntimes/wsock/src/WinsockInterface.cpp
author Shabe Razvi <shaber@symbian.org>
Thu, 04 Nov 2010 17:22:05 +0000
changeset 4 b3b823debf08
parent 1 ac50fd48361b
permissions -rw-r--r--
Workaround for Bug 3917 - CWinsockInterface::DataSent calls NotifyDataSent which is not implemented.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
     1
/*
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
     2
* Copyright (c) 2004-2005 Nokia Corporation and/or its subsidiary(-ies).
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
     3
* All rights reserved.
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
     4
* This component and the accompanying materials are made available
1
ac50fd48361b Second Contribution
rajpuroh
parents: 0
diff changeset
     5
* under the terms of the License "Eclipse Public License v1.0"
0
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
     6
* which accompanies this distribution, and is available
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
     8
*
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
     9
* Initial Contributors:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    11
*
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    12
* Contributors:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    13
*
1
ac50fd48361b Second Contribution
rajpuroh
parents: 0
diff changeset
    14
* Description:
0
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    15
*
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    16
*/
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    17
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    18
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    19
#define TRACE_PREFIX "WSOCK: Interface: "
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    20
#include "wsock.h"
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    21
#include "WinsockInterface.h"
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    22
#include "WinsockProtocolFamily.h"
1
ac50fd48361b Second Contribution
rajpuroh
parents: 0
diff changeset
    23
#include <es_enum_partner.h>
0
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    24
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    25
const TInt KWinsockSubConnectionId = 1;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    26
const TConnectionType EWinsockConnectionType = EConnectionEthernet;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    27
#define super CNifIfLink 
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    28
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    29
// CWinsockInterface::CallbackQueueEntry
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    30
class CWinsockInterface::CallbackQueueEntry
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    31
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    32
private:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    33
    CWinsockInterface* iInterface;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    34
    CallbackMethod iMethod;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    35
    TInt iParam1;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    36
    TInt iParam2;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    37
public:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    38
    TSglQueLink iLink;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    39
    CallbackQueueEntry(CWinsockInterface* aInterface, CallbackMethod aMethod,
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    40
        TInt aParam1, TInt aParam2) : iInterface(aInterface), 
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    41
        iMethod(aMethod), iParam1(aParam1), iParam2(aParam2) {}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    42
    void Invoke() { (iInterface->*iMethod)(iParam1, iParam2); }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    43
};
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    44
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    45
// CWinsockInterface
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    46
CWinsockInterface::CWinsockInterface(CNifIfFactory* aFactory, 
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    47
                                     MNifIfNotify* aNotify) : 
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    48
super(*aFactory),
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    49
iSignature(KWinsockInterfaceSignature),
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    50
iCallbackQueue(_FOFF(CallbackQueueEntry,iLink)),
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    51
iCallback(TCallBack(AsyncCallbackProc,this),CActive::EPriorityStandard)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    52
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    53
    iNotify = aNotify;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    54
    iTimeStarted.HomeTime();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    55
    TRACE1("created [%08X]",this);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    56
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    57
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    58
CWinsockInterface::~CWinsockInterface()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    59
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    60
    CancelOutstandingCallbacks();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    61
    TRACE1("destroyed [%08X]",this);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    62
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    63
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    64
TInt CWinsockInterface::Signature() const
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    65
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    66
    return KWinsockInterfaceSignature;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    67
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    68
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    69
TInt CWinsockInterface::AsyncCallbackProc(TAny* aPtr)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    70
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    71
    CWinsockInterface* self = (CWinsockInterface*)aPtr;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    72
    self->HandleAsyncCallback();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    73
    return KErrNone;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    74
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    75
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    76
void CWinsockInterface::HandleAsyncCallback()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    77
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    78
    // Invoke the first callback in the queue
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    79
    if (!iCallbackQueue.IsEmpty()) {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    80
        CallbackQueueEntry* entry = iCallbackQueue.First();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    81
        iCallbackQueue.Remove(*entry);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    82
        entry->Invoke();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    83
        delete entry;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    84
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    85
        // Schedule the next one
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    86
        if (!iCallbackQueue.IsEmpty()) {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    87
            iCallback.CallBack();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    88
        }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    89
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    90
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    91
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    92
void CWinsockInterface::ScheduleAsyncCallback(CallbackMethod aMethod,
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    93
                                              TInt aP1, TInt aP2)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    94
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    95
    CallbackQueueEntry* entry = new CallbackQueueEntry(this,aMethod,aP1,aP2);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    96
    if (entry) {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    97
        iCallbackQueue.AddLast(*entry);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    98
        iCallback.Cancel();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    99
        iCallback.CallBack();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   100
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   101
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   102
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   103
void CWinsockInterface::CancelOutstandingCallbacks()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   104
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   105
    iCallback.Cancel();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   106
    while (!iCallbackQueue.IsEmpty()) {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   107
        CallbackQueueEntry* entry = iCallbackQueue.First();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   108
        iCallbackQueue.Remove(*entry);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   109
        delete entry;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   110
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   111
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   112
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   113
void CWinsockInterface::NotifyLinkLayerUp(TInt, TInt)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   114
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   115
    ScheduleAsyncCallback(NotifySubConnectionOpened);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   116
    TRACE("firing LinkLayerUp event");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   117
    iNotify->LinkLayerUp();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   118
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   119
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   120
void CWinsockInterface::NotifyLinkLayerOpen(TInt, TInt)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   121
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   122
    TRACE("firing LinkLayerOpen event");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   123
    iNotify->IfProgress(KLinkLayerOpen, KErrNone);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   124
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   125
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   126
// Sends a subconnection opened event for the entire connection
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   127
void CWinsockInterface::NotifySubConnectionOpened(TInt, TInt)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   128
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   129
    ScheduleAsyncCallback(NotifyLinkLayerOpen);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   130
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   131
    TRACE("firing TSubConnectionOpenedEvent");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   132
    TSubConnectionOpenedEvent event;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   133
    event.iSubConnectionUniqueId = KNifEntireConnectionSubConnectionId;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   134
    TPckg<TSubConnectionOpenedEvent> eventPtr(event);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   135
    iNotify->NifEvent(ESubConnectionEvent, ESubConnectionOpened, eventPtr); 
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   136
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   137
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   138
// Sends a subconnection Closed event for the entire connection
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   139
void CWinsockInterface::NotifySubConnectionClosed(TInt aReason, TInt)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   140
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   141
    ScheduleAsyncCallback(NotifyLinkLayerClosed, aReason);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   142
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   143
    TRACE("firing TSubConnectionClosedEvent");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   144
    TSubConnectionClosedEvent event;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   145
    event.iSubConnectionUniqueId = KNifEntireConnectionSubConnectionId;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   146
    event.iTotalUplinkDataVolume = iBytesReceived;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   147
    event.iTotalDownlinkDataVolume = iBytesSent;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   148
    event.iTimeClosed.UniversalTime();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   149
    TPckg<TSubConnectionClosedEvent> eventPtr(event);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   150
    iNotify->NifEvent(ESubConnectionEvent, ESubConnectionClosed, eventPtr);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   151
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   152
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   153
void CWinsockInterface::NotifyLinkLayerDown(TInt aReason, TInt aAction)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   154
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   155
    ScheduleAsyncCallback(NotifySubConnectionClosed, aReason);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   156
    TRACE("firing LinkLayerDown event");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   157
    iNotify->LinkLayerDown(aReason, (MNifIfNotify::TAction)aAction);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   158
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   159
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   160
void CWinsockInterface::NotifyLinkLayerClosed(TInt aReason, TInt)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   161
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   162
    TRACE("firing LinkLayerClosed event");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   163
    iNotify->IfProgress(KLinkLayerClosed, aReason);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   164
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   165
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   166
void CWinsockInterface::DataSent(TUint aBytes)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   167
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   168
    // Handle rollover?
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   169
    iBytesSent += aBytes;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   170
    if (iBytesSentGranularity)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   171
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   172
        TUint delta = iBytesSent - iBytesSentMark;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   173
        if (delta >= iBytesSentGranularity)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   174
        {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   175
            int chunks = delta/iBytesSentGranularity;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   176
            iBytesSentMark += chunks*iBytesSentGranularity;
4
b3b823debf08 Workaround for Bug 3917 - CWinsockInterface::DataSent calls NotifyDataSent which is not implemented.
Shabe Razvi <shaber@symbian.org>
parents: 1
diff changeset
   177
            //
b3b823debf08 Workaround for Bug 3917 - CWinsockInterface::DataSent calls NotifyDataSent which is not implemented.
Shabe Razvi <shaber@symbian.org>
parents: 1
diff changeset
   178
            // Workaround for  Bug 3917 -  CWinsockInterface::DataSent calls NotifyDataSent which is not implemented.
b3b823debf08 Workaround for Bug 3917 - CWinsockInterface::DataSent calls NotifyDataSent which is not implemented.
Shabe Razvi <shaber@symbian.org>
parents: 1
diff changeset
   179
            //
b3b823debf08 Workaround for Bug 3917 - CWinsockInterface::DataSent calls NotifyDataSent which is not implemented.
Shabe Razvi <shaber@symbian.org>
parents: 1
diff changeset
   180
            // iNotify->NotifyDataSent(KWinsockSubConnectionId,
b3b823debf08 Workaround for Bug 3917 - CWinsockInterface::DataSent calls NotifyDataSent which is not implemented.
Shabe Razvi <shaber@symbian.org>
parents: 1
diff changeset
   181
            //    delta*iBytesSentGranularity);
0
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   182
        }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   183
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   184
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   185
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   186
void CWinsockInterface::DataReceived(TUint aBytes)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   187
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   188
    // Handle rollover?
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   189
    iBytesReceived += aBytes;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   190
    if (iBytesReceivedGranularity)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   191
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   192
        TUint delta = iBytesReceived - iBytesReceivedMark;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   193
        if (delta >= iBytesReceivedGranularity)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   194
        {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   195
            int chunks = delta/iBytesReceivedGranularity;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   196
            iBytesReceivedMark += chunks*iBytesReceivedGranularity;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   197
            iNotify->NotifyDataReceived(KWinsockSubConnectionId,
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   198
                delta*iBytesReceivedGranularity);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   199
        }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   200
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   201
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   202
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   203
// CNifIfBase
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   204
void CWinsockInterface::Info(TNifIfInfo& aInfo) const
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   205
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   206
    aInfo.iName = KWinsockInterface;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   207
    aInfo.iVersion = TVersion(1,0,0);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   208
    aInfo.iFlags = KNifIfIsBase | KNifIfIsLink | KNifIfUsesNotify | KNifIfCreatedByFactory;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   209
    aInfo.iProtocolSupported = 0;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   210
    for (TInt i=0; i<CWinsockProtocolFamily::ProtocolCount(); i++)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   211
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   212
        const TServerProtocolDesc* p = CWinsockProtocolFamily::ProtocolDesc(i);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   213
        aInfo.iProtocolSupported |= p->iProtocol;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   214
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   215
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   216
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   217
TInt CWinsockInterface::Send(RMBufChain& /*aPdu*/, TAny* /*aSource*/)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   218
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   219
    TRACE("Send()");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   220
    return KErrNotSupported;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   221
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   222
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   223
TInt CWinsockInterface::Notification(TAgentToNifEventType DEBUG_ONLY(aEvent),
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   224
                                     TAny* /*aInfo*/)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   225
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   226
    TRACE1("Notification(%d)",aEvent);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   227
    return KErrNotSupported;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   228
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   229
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   230
// CNifIfLink
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   231
TInt CWinsockInterface::Start()
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   232
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   233
    TRACE("Start()");
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   234
    ScheduleAsyncCallback(NotifyLinkLayerUp);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   235
    return KErrNone;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   236
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   237
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   238
void CWinsockInterface::Stop(TInt aReason, MNifIfNotify::TAction aAction)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   239
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   240
    TRACE2("Stop(%d,%d)",aReason, aAction);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   241
    CancelOutstandingCallbacks();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   242
    ScheduleAsyncCallback(NotifyLinkLayerDown, aReason, aAction);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   243
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   244
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   245
CNifIfBase* CWinsockInterface::GetBinderL(const TDesC& DEBUG_ONLY(aName))
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   246
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   247
    TRACE1("GetBinderL(%S)",&aName);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   248
    return this;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   249
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   250
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   251
TInt CWinsockInterface::Control(TUint aLevel,TUint aName,TDes8& aOption, 
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   252
                                TAny* aSource)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   253
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   254
    TRACE3("Control(%d,%08X), %d bytes",aLevel,aName,aOption.Length());
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   255
	switch (aLevel)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   256
    {
1
ac50fd48361b Second Contribution
rajpuroh
parents: 0
diff changeset
   257
  /*  case KCOLInterface:
0
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   258
        switch (aName)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   259
        {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   260
        case KCOGetNifEMIPtr:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   261
        default:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   262
            {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   263
                MNifIfExtendedManagementInterface** that = 
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   264
                    (MNifIfExtendedManagementInterface**)aOption.Ptr();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   265
                if (aOption.Length() == sizeof(*that))
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   266
                {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   267
                    MNifIfExtendedManagementInterface* This = this;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   268
                    TRACE1("MNifIfExtendedManagementInterface = %08X",This);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   269
                    *that = This;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   270
                    return KErrNone;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   271
                }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   272
                else
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   273
                {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   274
                    return KErrArgument;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   275
                }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   276
            }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   277
            break;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   278
        }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   279
        break;
1
ac50fd48361b Second Contribution
rajpuroh
parents: 0
diff changeset
   280
*/
0
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   281
    case KCOLAgent:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   282
        switch (aName)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   283
        {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   284
        case KCOGetAgentEMIPtr:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   285
            {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   286
                MNifAgentExtendedManagementInterface** that = 
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   287
                    (MNifAgentExtendedManagementInterface**)aOption.Ptr();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   288
                if (aOption.Length() == sizeof(*that))
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   289
                {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   290
                    MNifAgentExtendedManagementInterface* This = this;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   291
                    TRACE1("MNifAgentExtendedManagementInterface = %08X",This);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   292
                    *that = This;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   293
                    return KErrNone;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   294
                }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   295
                else
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   296
                {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   297
                    return KErrArgument;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   298
                }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   299
            }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   300
        default:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   301
            break;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   302
        }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   303
        break;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   304
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   305
    default:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   306
        break;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   307
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   308
    return super::Control(aLevel, aName, aOption, aSource);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   309
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   310
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   311
// MNifIfExtendedManagementInterface
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   312
TInt CWinsockInterface::Stop(TSubConnectionUniqueId aId, 
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   313
                             TInt DEBUG_ONLY(aReason))
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   314
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   315
    TRACE2("Stop(%d,%d)", aId, aReason);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   316
    switch (aId)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   317
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   318
    case KNifEntireConnectionSubConnectionId:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   319
    case KWinsockSubConnectionId:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   320
        return KErrNone;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   321
    default:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   322
        return KErrNotFound;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   323
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   324
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   325
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   326
TInt CWinsockInterface::GetDataTransferred(TSubConnectionUniqueId aId, 
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   327
                                           TUint& aSentBytes, 
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   328
                                           TUint& aReceivedBytes)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   329
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   330
    TRACE1("GetDataTransferred(%d)", aId);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   331
    switch (aId)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   332
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   333
    case KNifEntireConnectionSubConnectionId:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   334
    case KWinsockSubConnectionId:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   335
        aSentBytes = iBytesSent;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   336
        aReceivedBytes = iBytesReceived;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   337
        return KErrNone;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   338
    default:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   339
        return KErrNotFound;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   340
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   341
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   342
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   343
TInt CWinsockInterface::SetDataSentNotificationGranularity(TSubConnectionUniqueId aId, 
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   344
                                                           TUint aGranularity)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   345
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   346
    TRACE2("SetDataSentNotificationGranularity(%d,%d)", aId, aGranularity);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   347
    switch (aId)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   348
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   349
    case KNifEntireConnectionSubConnectionId:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   350
    case KWinsockSubConnectionId:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   351
        iBytesSentGranularity = aGranularity;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   352
        return KErrNone;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   353
    default:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   354
        return KErrNotFound;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   355
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   356
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   357
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   358
TInt CWinsockInterface::CancelDataSentNotification(TSubConnectionUniqueId aId)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   359
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   360
    TRACE1("CancelDataSentNotification(%d)", aId);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   361
    switch (aId)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   362
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   363
    case KNifEntireConnectionSubConnectionId:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   364
    case KWinsockSubConnectionId:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   365
        iBytesSentGranularity = 0;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   366
        return KErrNone;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   367
    default:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   368
        return KErrNotFound;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   369
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   370
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   371
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   372
TInt CWinsockInterface::SetDataReceivedNotificationGranularity(TSubConnectionUniqueId aId, 
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   373
                                                               TUint aGranularity)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   374
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   375
    TRACE2("SetDataReceivedNotificationGranularity(%d,%d)", aId, aGranularity);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   376
    switch (aId)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   377
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   378
    case KNifEntireConnectionSubConnectionId:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   379
    case KWinsockSubConnectionId:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   380
        iBytesReceivedGranularity = aGranularity;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   381
        return KErrNone;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   382
    default:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   383
        return KErrNotFound;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   384
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   385
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   386
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   387
TInt CWinsockInterface::CancelDataReceivedNotification(TSubConnectionUniqueId aId)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   388
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   389
    TRACE1("CancelDataReceivedNotification(%d)", aId);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   390
    switch (aId)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   391
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   392
    case KNifEntireConnectionSubConnectionId:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   393
    case KWinsockSubConnectionId:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   394
        iBytesReceivedGranularity = 0;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   395
        return KErrNone;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   396
    default:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   397
        return KErrNotFound;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   398
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   399
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   400
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   401
// MNifAgentExtendedManagementInterface
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   402
TInt CWinsockInterface::GetInterfaceType(TConnectionType& aConnectionType)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   403
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   404
    aConnectionType = EWinsockConnectionType;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   405
    return KErrNone;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   406
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   407
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   408
TInt CWinsockInterface::EnumerateSubConnections(TUint& aCount)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   409
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   410
    aCount = 1;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   411
    return KErrNone;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   412
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   413
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   414
TInt CWinsockInterface::GetSubConnectionInfo(TUint aIndex, 
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   415
                                             TDes8& aInfo)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   416
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   417
    if (aInfo.Length() != sizeof(TSubConnectionInfo))
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   418
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   419
        return KErrArgument;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   420
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   421
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   422
    TSubConnectionInfo* info = (TSubConnectionInfo*)aInfo.Ptr();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   423
    switch (aIndex)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   424
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   425
    case KNifEntireConnectionSubConnectionId:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   426
    case KWinsockSubConnectionId:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   427
        info->iConnectionType = EWinsockConnectionType;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   428
        info->iSubConnectionUniqueId = aIndex;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   429
        info->iTimeStarted = iTimeStarted;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   430
        return KErrNone;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   431
    default:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   432
        return KErrNotFound;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   433
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   434
}
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   435
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   436
TInt CWinsockInterface::GetSubConnectionInfo(TDes8& aInfo)
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   437
{
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   438
    if (aInfo.Length() != sizeof(TSubConnectionInfo))
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   439
    {
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   440
        return KErrArgument;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   441
    }
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   442
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   443
    TSubConnectionInfo* info = (TSubConnectionInfo*)aInfo.Ptr();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   444
    return GetSubConnectionInfo(info->iSubConnectionUniqueId, aInfo);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   445
}