diff -r 39bb7c3571e9 -r 052078dda061 networkcontrol/ipcprshim/src/connectionSelectorShim.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/networkcontrol/ipcprshim/src/connectionSelectorShim.h Tue Jun 29 19:20:22 2010 +0530 @@ -0,0 +1,120 @@ +/** +* 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 CONNECTIONSELECTORSHIM.H + @internalComponent +*/ + +#if !defined(__CONNECTIONSELECTORSHIM_H__) +#define __CONNECTIONSELECTORSHIM_H__ + +#include +#include +#include +#include +#ifdef SYMBIAN_NETWORKING_UMTSR5 +#include +#include +#include +#include "shimcprfactory.h" +#endif //SYMBIAN_NETWORKING_UMTSR5 + +class CConnectionProviderShim; +class CConnectionSelectorShim : public CBase, public MProviderSelector, public MConnectionNotify +/** +@internalTechnology +@released Since 9.1 +*/ + { + friend class CConnectionProviderFactoryShim; + +public: + +#ifdef SYMBIAN_NETWORKING_UMTSR5 + + // This function will be called by the ShimCprFactory to set its interface for the information + // pertaining to the IAP lock status + void SetFactoryIface(MIAPLockInfo * aFactoryIface); + +#endif // #ifdef SYMBIAN_NETWORKING_UMTSR5 + +protected: + CConnectionSelectorShim(ISelectionNotify& aNotify); + virtual ~CConnectionSelectorShim(); + void DeleteAsync(); + +public: + TInt Select(Meta::SMetaData& aPreferences, const RMessagePtr2* aMessage); + + // From MConnectionNotify + virtual void SelectionComplete(TInt aError, const TDesC8& aSelectionInfo); + virtual void ConnectionError(TInt aError); + virtual void LinkLayerOpen(TInt aError); + virtual void LinkLayerClosed(TInt aError); + virtual void ProgressNotification(TInt aStage, TInt aError); + virtual void ProgressNotification(TSubConnectionUniqueId aSubConnectionUniqueId, TInt aStage, TInt aError); + virtual void ServiceChangeNotification(TUint32 aId, const TDesC& aType); + virtual void InterfaceStateChangeNotification(TDesC8& aInfo); + virtual void NotifyDataSent(TSubConnectionUniqueId aSubConnectionUniqueId, TUint aUplinkVolume); + virtual void NotifyDataReceived(TSubConnectionUniqueId aSubConnectionUniqueId, TUint aDownlinkVolume); + virtual void SubConnectionEvent(const TSubConnectionEvent& aSubConnectionEvent); + + //MProviderSelector + virtual TInt Cancel(TInt aReason, const RMessage2* aMessage); + virtual TInt Cancel(); + void SetProviderNull(); +private: + static TInt AsyncDestructorCb(TAny* aInstance); + void CreateProviderL(); + void HandleSelectionL(); +#ifdef SYMBIAN_NETWORKING_UMTSR5 + void MaybeLockIapL(); +#endif + TBool IsConnectionStoppingL(); + +private: + CConnectionProvdBase* iSelectorSession; + ISelectionNotify iNotify; + CAsyncCallBack iAsyncDestructor; + RBuf8 iSelectionInfo; + CConnectionProviderShim* iConnProvider; + TInt iError; +#ifdef SYMBIAN_NETWORKING_UMTSR5 + TBool iSetProviderNull; + TBool iIsLinkLayerOpen; +#else + TBool iSetProviderNull:1; + TBool iIsLinkLayerOpen:1; +#endif + // New Variables added as required by 635 to achieve IAP locking +#ifdef SYMBIAN_NETWORKING_UMTSR5 + // The Connection Info, IAP , etc. + TSoIfConnectionInfo iConnectionInfo; + // The Secure ID of the current Application + TSecureId iAppSecureId; + // Interface to the Factor which Stores and get the IAP Lock Status + MIAPLockInfo* iFactoryIface; +#endif + + }; + + +#endif // __CONNECTIONSELECTORSHIM_H__ +