sdkcreationmw/sdkruntimes/wsock/inc/WinsockInterface.h
author rajpuroh
Mon, 08 Mar 2010 12:09:11 +0530
changeset 0 b26acd06ea60
child 1 ac50fd48361b
permissions -rw-r--r--
First Contribution of SDK components
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
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.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
*
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    14
* Description: 
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
#ifndef _WSOCK_INTERFACE_H_
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    20
#define _WSOCK_INTERFACE_H_
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    21
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    22
#include <nifif.h>
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    23
#include <nifagt.h>
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    24
#include "WinsockUid.h"
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    25
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    26
const TInt KWinsockInterfaceSignature = KWinsockInterfaceUid;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    27
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    28
class CWinsockInterface : public CNifIfLink, 
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    29
                          public MNifIfExtendedManagementInterface,
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    30
                          public MNifAgentExtendedManagementInterface
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
    class CallbackQueueEntry;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    34
    typedef void (CWinsockInterface::*CallbackMethod)(TInt aArg1, TInt aArg2);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    35
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    36
private:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    37
    TInt iSignature;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    38
    TUint iBytesSent;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    39
    TUint iBytesReceived;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    40
    TUint iBytesSentMark;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    41
    TUint iBytesReceivedMark;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    42
    TUint iBytesSentGranularity;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    43
    TUint iBytesReceivedGranularity;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    44
    TTime iTimeStarted;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    45
    TSglQue<CallbackQueueEntry> iCallbackQueue;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    46
    CAsyncCallBack iCallback;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    47
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    48
public:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    49
    CWinsockInterface(CNifIfFactory* aFactory, MNifIfNotify* aNotify);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    50
    ~CWinsockInterface();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    51
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    52
    TInt Signature() const;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    53
    void DataSent(TUint aBytes);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    54
    void DataReceived(TUint aBytes);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    55
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    56
    // CNifIfLink
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    57
    virtual TInt Start();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    58
    virtual void Stop(TInt aReason, MNifIfNotify::TAction aAction);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    59
    virtual CNifIfBase* GetBinderL(const TDesC& aName);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    60
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    61
    // CNifIfBase
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    62
    virtual void Info(TNifIfInfo& aInfo) const;
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    63
    virtual TInt Send(RMBufChain& aPdu, TAny* aSource);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    64
    virtual TInt Notification(TAgentToNifEventType aEvent, void * aInfo);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    65
    virtual TInt Control(TUint aLevel,TUint aName,TDes8& aOption,TAny* aSrc);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    66
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    67
    // MNifIfExtendedManagementInterface
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    68
    virtual TInt Stop(TSubConnectionUniqueId aSubConnectionId, TInt aReason);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    69
    virtual TInt GetDataTransferred(TSubConnectionUniqueId aSubConnectionId, TUint& aSentBytes, TUint& aReceivedBytes);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    70
    virtual TInt SetDataSentNotificationGranularity(TSubConnectionUniqueId aSubConnectionId, TUint aGranularity);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    71
    virtual TInt CancelDataSentNotification(TSubConnectionUniqueId aSubConnectionId);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    72
    virtual TInt SetDataReceivedNotificationGranularity(TSubConnectionUniqueId aSubConnectionId, TUint aGranularity);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    73
    virtual TInt CancelDataReceivedNotification(TSubConnectionUniqueId aSubConnectionId);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    74
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    75
    // MNifAgentExtendedManagementInterface
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    76
    virtual TInt GetInterfaceType(TConnectionType& aConnectionType);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    77
    virtual TInt EnumerateSubConnections(TUint& aCount);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    78
    virtual TInt GetSubConnectionInfo(TUint aIndex, TDes8& aSubConnectionInfo);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    79
    virtual TInt GetSubConnectionInfo(TDes8& aSubConnectionInfo);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    80
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    81
private:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    82
    // Operations on asynchronous event queue
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    83
    static TInt AsyncCallbackProc(TAny* aPtr);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    84
    void HandleAsyncCallback();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    85
    void ScheduleAsyncCallback(CallbackMethod aMethod, TInt aP1=0, TInt aP2=0);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    86
    void CancelOutstandingCallbacks();
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    87
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    88
    // Asynchronous callbacks that fire various interface-related events
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    89
    void NotifyLinkLayerUp(TInt aParam1, TInt aParam2);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    90
    void NotifyLinkLayerOpen(TInt aParam1, TInt aParam2);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    91
    void NotifySubConnectionOpened(TInt aParam1, TInt aParam2);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    92
    void NotifySubConnectionClosed(TInt aParam1, TInt aParam2);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    93
    void NotifyLinkLayerDown(TInt aParam1, TInt aParam2);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    94
    void NotifyLinkLayerClosed(TInt aParam1, TInt aParam2);
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    95
};
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    96
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    97
#endif // _WSOCK_INTERFACE_H_
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    98
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
    99
/*
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   100
 * Local Variables:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   101
 * mode: c++
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   102
 * c-basic-offset: 4
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   103
 * indent-tabs-mode: nil
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   104
 * End:
b26acd06ea60 First Contribution of SDK components
rajpuroh
parents:
diff changeset
   105
 */