--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sdkcreationmw/sdkruntimes/wsock/inc/WinsockInterface.h Mon Mar 08 12:09:11 2010 +0530
@@ -0,0 +1,105 @@
+/*
+* Copyright (c) 2004-2005 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:
+*
+*/
+
+
+#ifndef _WSOCK_INTERFACE_H_
+#define _WSOCK_INTERFACE_H_
+
+#include <nifif.h>
+#include <nifagt.h>
+#include "WinsockUid.h"
+
+const TInt KWinsockInterfaceSignature = KWinsockInterfaceUid;
+
+class CWinsockInterface : public CNifIfLink,
+ public MNifIfExtendedManagementInterface,
+ public MNifAgentExtendedManagementInterface
+{
+private:
+ class CallbackQueueEntry;
+ typedef void (CWinsockInterface::*CallbackMethod)(TInt aArg1, TInt aArg2);
+
+private:
+ TInt iSignature;
+ TUint iBytesSent;
+ TUint iBytesReceived;
+ TUint iBytesSentMark;
+ TUint iBytesReceivedMark;
+ TUint iBytesSentGranularity;
+ TUint iBytesReceivedGranularity;
+ TTime iTimeStarted;
+ TSglQue<CallbackQueueEntry> iCallbackQueue;
+ CAsyncCallBack iCallback;
+
+public:
+ CWinsockInterface(CNifIfFactory* aFactory, MNifIfNotify* aNotify);
+ ~CWinsockInterface();
+
+ TInt Signature() const;
+ void DataSent(TUint aBytes);
+ void DataReceived(TUint aBytes);
+
+ // CNifIfLink
+ virtual TInt Start();
+ virtual void Stop(TInt aReason, MNifIfNotify::TAction aAction);
+ virtual CNifIfBase* GetBinderL(const TDesC& aName);
+
+ // CNifIfBase
+ virtual void Info(TNifIfInfo& aInfo) const;
+ virtual TInt Send(RMBufChain& aPdu, TAny* aSource);
+ virtual TInt Notification(TAgentToNifEventType aEvent, void * aInfo);
+ virtual TInt Control(TUint aLevel,TUint aName,TDes8& aOption,TAny* aSrc);
+
+ // MNifIfExtendedManagementInterface
+ virtual TInt Stop(TSubConnectionUniqueId aSubConnectionId, TInt aReason);
+ virtual TInt GetDataTransferred(TSubConnectionUniqueId aSubConnectionId, TUint& aSentBytes, TUint& aReceivedBytes);
+ virtual TInt SetDataSentNotificationGranularity(TSubConnectionUniqueId aSubConnectionId, TUint aGranularity);
+ virtual TInt CancelDataSentNotification(TSubConnectionUniqueId aSubConnectionId);
+ virtual TInt SetDataReceivedNotificationGranularity(TSubConnectionUniqueId aSubConnectionId, TUint aGranularity);
+ virtual TInt CancelDataReceivedNotification(TSubConnectionUniqueId aSubConnectionId);
+
+ // MNifAgentExtendedManagementInterface
+ virtual TInt GetInterfaceType(TConnectionType& aConnectionType);
+ virtual TInt EnumerateSubConnections(TUint& aCount);
+ virtual TInt GetSubConnectionInfo(TUint aIndex, TDes8& aSubConnectionInfo);
+ virtual TInt GetSubConnectionInfo(TDes8& aSubConnectionInfo);
+
+private:
+ // Operations on asynchronous event queue
+ static TInt AsyncCallbackProc(TAny* aPtr);
+ void HandleAsyncCallback();
+ void ScheduleAsyncCallback(CallbackMethod aMethod, TInt aP1=0, TInt aP2=0);
+ void CancelOutstandingCallbacks();
+
+ // Asynchronous callbacks that fire various interface-related events
+ void NotifyLinkLayerUp(TInt aParam1, TInt aParam2);
+ void NotifyLinkLayerOpen(TInt aParam1, TInt aParam2);
+ void NotifySubConnectionOpened(TInt aParam1, TInt aParam2);
+ void NotifySubConnectionClosed(TInt aParam1, TInt aParam2);
+ void NotifyLinkLayerDown(TInt aParam1, TInt aParam2);
+ void NotifyLinkLayerClosed(TInt aParam1, TInt aParam2);
+};
+
+#endif // _WSOCK_INTERFACE_H_
+
+/*
+ * Local Variables:
+ * mode: c++
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */