networkcontrol/ipcpr/inc/ipcprprovider.h
changeset 29 c0a997472b1c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/networkcontrol/ipcpr/inc/ipcprprovider.h	Fri Jun 11 15:15:43 2010 +0300
@@ -0,0 +1,141 @@
+/**
+* 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:
+* This class is an example implementation of a bearer-mobile network session layer. It is intended as a guide only and does
+* not employ any advanced bearer selection algorithms.
+* This is part of an ECOM plug-in
+* 
+*
+*/
+
+
+
+/**
+ @file IPCPRPROVIDER.H
+ @internalComponent
+*/
+
+#if !defined(__SS_IPCPRPROVIDER_H__)
+#define __SS_IPCPRPROVIDER_H__
+
+#include "ipcprfactory.h"	// for CIPConnectionSelector
+#include <es_sock.h>
+#include <es_prot.h>
+#include <ss_connprov.h>	// for CConnectionProviderBase and MConnectionControlClient
+#include <comms-infras/ss_log.h>			// for KESockConnectionTag
+
+#ifdef SYMBIAN_NETWORKING_UMTSR5	
+
+#include "MAppIdInfo.h"
+
+#endif
+
+#define KIpcprTag KESockConnectionTag
+_LIT8(KIpcprSubTag, "ipcpr");		// logging tag
+
+
+	
+
+class CConnectionSettings;
+/**
+ @internalComponent
+ @released Since 9.1
+ */
+#ifdef SYMBIAN_NETWORKING_UMTSR5
+NONSHARABLE_CLASS(CIPNetworkConnectionProvider) : public CConnectionProviderBase, public MConnectionControlClient, 
+												  public MConnectionAppIdInfo
+	{
+#else // SYMBIAN_NETWORKING_UMTSR5	
+
+NONSHARABLE_CLASS(CIPNetworkConnectionProvider) : public CConnectionProviderBase, public MConnectionControlClient
+	{
+
+#endif // SYMBIAN_NETWORKING_UMTSR5	
+
+public:
+	static CIPNetworkConnectionProvider* NewL(CConnectionProviderFactoryBase& aFactory);
+	
+#ifdef SYMBIAN_NETWORKING_UMTSR5	
+	// Interface from MConnectionAppIdInfo
+	virtual TUint32 GetAppSecureId(); 
+
+	void SetAppSecurId(TUint32 aSecureId);
+#endif // SYMBIAN_NETWORKING_UMTSR5	
+   
+protected:
+	CIPNetworkConnectionProvider(CConnectionProviderFactoryBase& aFactory) :
+		CConnectionProviderBase(aFactory)
+			{
+      	__CFLOG_VAR((KIpcprTag, KIpcprSubTag, _L8("CIPNetworkConnectionProvider [this=%08x]:\tCIPNetworkConnectionProvider [MConnectionControlClient=%08x]"),
+      	   this, (MConnectionControlClient*)this));
+			}
+	~CIPNetworkConnectionProvider();
+	
+	/////////////////////////////////////////////////////////////////////////////
+	// from MConnectionControlClient
+	virtual void ConnectionGoingDown(CConnectionProviderBase& aConnProvider);
+	virtual void ProgressNotification(TInt aStage, TInt aError);
+	virtual void ConnectionError(TInt aStage,  TInt aError);
+	virtual void ServiceChangeNotification(TUint32 aId, const TDesC& aType);
+	virtual void SubConnectionEvent(CSubConnectionProviderBase* aSubConnNextLayerProvider, const TSubConnectionEvent& aSubConnectionEvent);
+	virtual void LayerUp(TInt aError);
+	virtual TCtlType CtlType() const;
+
+	////////////////////////////////////////////////////////////////////////////
+	// from CConnectionProviderBase
+#ifdef SYMBIAN_NETWORKING_UMTSR5		
+	virtual TAny* DoFetchInterfaceInstanceL( const STypeId& aTid );
+#endif	
+	
+	virtual void DoDataClientJoiningL(MConnectionDataClient& aDataClient);
+	virtual void DoDataClientLeaving(MConnectionDataClient& aDataClient);
+	virtual void DoControlClientJoiningL(MConnectionControlClient& aControlClient);
+	virtual void DoControlClientLeaving(MConnectionControlClient& aControlClient);
+
+	virtual void DoStartL(Meta::SMetaData& aParams, const RMessagePtr2* aMessage);	
+	virtual TInt DoStop(TInt aError, const RMessagePtr2* aMessage);   
+
+	virtual void DoProgressL(Meta::SMetaData& aBuffer) const;
+	virtual void DoLastProgressError(Meta::SMetaData& aBuffer);
+	virtual void DoRequestServiceChangeNotificationL();
+	virtual void DoCancelServiceChangeNotification();
+	virtual void DoControlL(TUint aOptionLevel, TUint aOptionName, Meta::SMetaData& aOption, const RMessagePtr2* aMessage);
+	virtual TInt DoAllSubConnectionNotificationEnable();
+	virtual TInt DoCancelAllSubConnectionNotification();
+	virtual void DoSendIoctlMessageL(const RMessage2& aMessage);
+	virtual void DoSendCancelIoctl();   
+	virtual TInt DoEnumerateSubConnectionsL(TUint& aCount);
+	virtual TUint DoEnumerateClientsL(HBufC8*& aClientInfoBuffer, TEnumClients aClientType);
+	virtual void DoConnectionControlActivityL( TControlActivity aControlActivity, const Meta::SMetaData* aData, const RMessagePtr2* aMessage );
+
+	virtual CConnectionSettings& DoSettingsAccessL();
+
+	virtual TInt DoCanDoSubConnection(RSubConnection::TSubConnType aSubConnType) const;
+
+	virtual CConnectionProviderBase* DoNextLayer() const;
+	virtual void DoJoinNextLayerL(CConnectionProviderBase* aNextLayer);
+
+protected:
+	void UpdateUsageProfile(MConnectionControlClient* aControlClient);
+
+private:
+	CConnectionProviderBase* iShimCpr;
+	TMetaDes8* iMDes;
+#ifdef SYMBIAN_NETWORKING_UMTSR5	
+	// Added as per the requirements of PREQ 635 to block sockets
+	TUint32		iAppSecureId;
+#endif // SYMBIAN_NETWORKING_UMTSR5	
+	};
+
+#endif // __SS_IPCPRPROVIDER_H__