diff -r abbed5a4b42a -r 8d540f55e491 networkcontrol/ipcprshim/inc/shimnifmansconn.h --- a/networkcontrol/ipcprshim/inc/shimnifmansconn.h Tue Aug 31 16:45:15 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,219 +0,0 @@ -// Copyright (c) 2005-2009 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: -// - -/** - @file - @internalComponent -*/ - - -#if !defined(__SHIMNIFMANSCONN_H__) -#define __SHIMNIFMANSCONN_H__ - -#include -#include "shimdatatransfer.h" -#include "shimclient.h" -#include "shimcpr.h" //access to the CConnectionProviderShim::Provider() fn - -//const TInt KSubConnectionProviderShimImplementationUid = 0x10207106; - -#define KShimScprTag KESockSubConnectionTag -_LIT8(KShimScprSubTag, "shimscpr"); -_LIT8(KShimScprDataTag, "shimscprData"); -_LIT8(KShimScprClientTag, "shimscprClient"); - -//Former CInterface CSubConnection related up-calls so that CConnectionProviderShim -//doesn't have to link against the sub-connection shim -class CConnection; -class MSubInterfaceShim : public MConnDataTransferNotify - { -public: - virtual TInt ProgressNotification(TInt aStage, TInt aError, const TDesC8& aInfo) = 0; - virtual TSubConnectionUniqueId Id() = 0; - virtual void SetSubConnectionUniqueId( TSubConnectionUniqueId aSubConnectionUniqueId ) = 0; - virtual void ConnectionJoiningL(const CConnection& aConnection) = 0; - virtual void ConnectionLeaving(const CConnection& aConnection) = 0; - }; - -//class CSubConnectionProviderFactoryShim; -class CSubConnectionLinkShimClient; - -NONSHARABLE_CLASS(CNifManSubConnectionShim) : public CBase, public MConnectionDataClient, public MSubInterfaceShim -/** - @internalComponent - */ - { - -public: - CNifManSubConnectionShim(CConnectionProviderShim& aProviderShim); - ~CNifManSubConnectionShim(); - - // MSubInterfaceShim impl - virtual TInt ProgressNotification(TInt aStage, TInt aError, const TDesC8& aInfo); - virtual TInt NotifyDataTransferred(TUint aUplinkVolume, TUint aDownlinkVolume); - virtual TInt NotifyDataSent(TUint aUplinkVolume, TUint aCurrentGranularity); - virtual TInt NotifyDataReceived(TUint aDownlinkVolume, TUint aCurrentGranularity); - virtual TSubConnectionUniqueId Id(); - virtual void SetSubConnectionUniqueId( TSubConnectionUniqueId aSubConnectionUniqueId ); - virtual void ConnectionJoiningL(const CConnection& aConnection); - virtual void ConnectionLeaving(const CConnection& aConnection); - - CConnectionProvdBase& Provider() - { - return static_cast(iConnectionProvider)->Provider(); - } - CConnDataTransferShim* DataTransferShim() - { - return iConnDataTransferShim; - } - CSubConnectionLinkShimClient* ShimClient( TInt aIndex ) - { - return aIndex < iShimClients.Count() ? iShimClients[aIndex] : NULL; - } - void DeleteAsync(); -protected: - //MConnectionDataClient - virtual void ConnectionGoingDown(CConnectionProviderBase& aConnProvider); - virtual void ConnectionError(TInt aStage, TInt aError); - virtual void Notify(TNotify aNotifyType, CConnectionProviderBase* aConnProvider, TInt aError, const CConNotificationEvent* aConNotificationEvent); - virtual void AttachToNext(CSubConnectionProviderBase* aSubConnProvider); - - - TInt FindClient(const CConnection& aConnection); - CConnDataTransfer& CreateDataTransferL(); - -protected: - RPointerArray iShimClients; - TSubConnectionUniqueId iSubConnectionsUniqueId; - CConnDataTransferShim* iConnDataTransferShim; - CConnectionProviderBase* iConnectionProvider; - CAsyncCallBack iAsyncDestructor; -private: - static TInt AsyncDestructorCb(TAny* aInstance); - }; - -NONSHARABLE_CLASS(CSubConnectionLinkShimClient) : public CBase, public MConnDataTransferNotify, public MShimControlClient -/** - Handle subconnection-related asynchronous client requests that may not complete immediately, it effectively - represents the old CSubConnection - @internalComponent - */ - { -public: - CSubConnectionLinkShimClient(const CConnection& aConnection, CNifManSubConnectionShim& aSubConnectionShim); - ~CSubConnectionLinkShimClient(); - - //MConnDataTransferNotify interface towards CConnDataTransfer - virtual TInt NotifyDataTransferred(const TUint aUplinkVolume, const TUint aDownlinkVolume); - virtual TInt NotifyDataSent(TUint aUplinkVolume, TUint aCurrentGranularity); - virtual TInt NotifyDataReceived(TUint aDownlinkVolume, TUint aCurrentGranularity); - - void ProgressNotification(TInt aStage, TInt aError, const TDesC8& aInfo); - - //MShimControlClient interface towards ESOCK - //former CConnection::StopSubConnectionL(const RMessage2& aMessage); - virtual TBool StopL(const RMessage2& aMessage); - // Former calls from CConnection::GetSubConnectionInfo - virtual TInt GetSubConnectionInfo(const RMessage2& aMessage); - // Former Calls from RConnection via CSubConnection - virtual TInt GetCurrentProgress(TNifProgress& aProgress); - virtual TBool DataTransferredL(const RMessage2& aMessage); - virtual TBool DataTransferredCancel(const RMessage2& aMessage); - virtual TBool RequestSubConnectionProgressNotificationL(const RMessage2& aMessage); - virtual TBool CancelSubConnectionProgressNotification(const RMessage2& aMessage); - virtual TBool DataSentNotificationRequestL(const RMessage2& aMessage); - virtual TBool DataSentNotificationCancel(const RMessage2& aMessage); - virtual TBool DataReceivedNotificationRequestL(const RMessage2& aMessage); - virtual TBool DataReceivedNotificationCancel(const RMessage2& aMessage); - virtual TBool IsSubConnectionActiveRequestL(const RMessage2& aMessage); - virtual TBool IsSubConnectionActiveCancel(const RMessage2& aMessage); - TBool Match(const CConnection& aConnection) const; - TSubConnectionUniqueId Id(); - virtual TInt ReturnCode() const; - - void SetReturnCode(TInt aErr) - { - iReturnCode = aErr; - } - - /** - Callback from activity timer - */ - void CheckSubConnectionActivity(); - - NONSHARABLE_CLASS(CActivityTimer) : public CTimer - /** - @internalComponent - */ - { - public: - static CActivityTimer* NewL(CSubConnectionLinkShimClient* aOwner, TInt aPriority); - virtual inline ~CActivityTimer() {}; - void RunL(); - private: - inline CActivityTimer(CSubConnectionLinkShimClient* aOwner, TInt aPriority); - private: - CSubConnectionLinkShimClient* iOwner; - }; - - -private: - const CConnection& iConnection; - CNifManSubConnectionShim& iSubConnectionShim; - - TUint iUplinkDataVolume; - TUint iDownlinkDataVolume; - TUint iUplinkDataNotificationVolume; - TUint iDownlinkDataNotificationVolume; - TInt iRemainingUplinkGranularity; - TInt iRemainingDownlinkGranularity; - - TBool iDataSentNotificationsInAbsoluteMode; - TBool iDataReceivedNotificationsInAbsoluteMode; - - TNifProgress iCurrentProgress; - TInt iLastProgressToClient; - TInt iClientRequestedProgress; - CActivityTimer* iActivityTimer; - TInt iRequestedClientTimerPeriod; - TBool iClientBelievesSubConnectionActive; - TUint iPreviousUplinkDataVolume; - TUint iPreviousDownlinkDataVolume; - - TBool iOutstandingProgressNotification:1; - TBool iOutstandingDataSentNotification:1; - TBool iOutstandingDataReceivedNotification:1; - TBool iOutstandingSubConnectionActivity:1; - - RMessage2 iOutstandingProgressNotificationMessage; - RMessage2 iOutstandingDataSentNotificationMessage; - RMessage2 iOutstandingDataReceivedNotificationMessage; - RMessage2 iOutstandingSubConnectionActivityMessage; - - TInt iReturnCode; - }; - -inline CSubConnectionLinkShimClient::CActivityTimer::CActivityTimer(CSubConnectionLinkShimClient* aOwner, TInt aPriority) -: CTimer(aPriority), iOwner(aOwner) -/** -Set up the activity timer for subconnection activity - -@param aOwner, The owing subconnection -@param aPriority, The priority of the active object -*/ - { CActiveScheduler::Add(this); }; - -#endif -// __SHIMNIFMANSCONN_H__