networkcontrol/ipcprshim/src/shimcprfactory.cpp
branchRCL_3
changeset 58 8d540f55e491
parent 57 abbed5a4b42a
child 59 e36178c55292
child 63 425d8f4f7fa5
--- a/networkcontrol/ipcprshim/src/shimcprfactory.cpp	Tue Aug 31 16:45:15 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,256 +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:
-// SHIMCPRFACTORY.H
-// 
-//
-
-#include <ecom/ecom.h>
-#include <implementationproxy.h>
-#include "shimcprfactory.h"	// for CConnectionProviderFactoryShim
-
-#include "connectionSelectorShim.h"
-#include "shimcpr.h"
-#include "shimnifmansconn.h"
-#include "idquerynetmsg.h"
-#include <nifman.h>
-#ifdef SYMBIAN_NETWORKING_UMTSR5
-#include <esockmessages.h>
-#endif // #ifdef SYMBIAN_NETWORKING_UMTSR5	
-
-
-const TUint KShimConnectionProviderImplementationUid = 0x102070FF;
-/**
-Data required for instantiating ECOM Plugin
-*/
-const TImplementationProxy ImplementationTable[] = 
-	{
-	IMPLEMENTATION_PROXY_ENTRY(KShimConnectionProviderImplementationUid, CConnectionProviderFactoryShim::NewL),
-	};
-
-
-/**
-ECOM Implementation Factory
-*/
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
-    {
-    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
-
-    return ImplementationTable;
-    }
-
-CConnectionProviderFactoryShim* CConnectionProviderFactoryShim::NewL(TAny* aConstructionParameters)
-	{
-	CConnectionProviderFactoryShim* ptr = new (ELeave) CConnectionProviderFactoryShim(KShimConnectionProviderFactoryId, *(reinterpret_cast<CConnectionFactoryContainer*>(aConstructionParameters)));
-	CleanupStack::PushL(ptr);
-	ptr->ConstructL();
-	CleanupStack::Pop(ptr);
-	return ptr;
-	}
-   
-void CConnectionProviderFactoryShim::ConstructL()
-	{//create a provider session for global tasks (enumerate connections/all interface notification....)
-    iNifmanSession = Nif::NewConnectionL(this, 0);
-    iNifmanSession->AllInterfaceNotificationL();
-	}
-// Destructor
-CConnectionProviderFactoryShim::~CConnectionProviderFactoryShim()
-	{
-	delete iNifmanSession;
-	}
-   
-// Constructor
-CConnectionProviderFactoryShim::CConnectionProviderFactoryShim(TUint aFactoryId, CConnectionFactoryContainer& aParentContainer) :
-	CConnectionProviderFactoryBase( aFactoryId, aParentContainer )
-	{
-	}
-
-#ifdef SYMBIAN_NETWORKING_UMTSR5
-// Sets the IAP lock status
-void CConnectionProviderFactoryShim::SetIAPLockStatus(TBool aLockStatus, TInt aLockedIAP)
-	{
-	iIsIAPLocked = aLockStatus;
-	iLockedIAP = aLockedIAP;
-	}
-// Gets the IAP lock status
-void CConnectionProviderFactoryShim::GetIAPLockStatus(TBool &aLockStatus, TInt &aLockedIAP)
-	{
-	aLockStatus = iIsIAPLocked;
-	aLockedIAP = iLockedIAP;
-	}
-	
-#endif // #ifdef SYMBIAN_NETWORKING_UMTSR5	
-
-CConnectionProviderBase* CConnectionProviderFactoryShim::DoCreateProviderL()
-	{
-#ifdef SYMBIAN_NETWORKING_UMTSR5	
-	CConnectionProviderShim * shimProv = CConnectionProviderShim::NewL(*this);
-	shimProv->SetFactoryIfactory(this);
-	return shimProv;
-#else
-	return CConnectionProviderShim::NewL(*this);
-#endif // #ifdef SYMBIAN_NETWORKING_UMTSR5		
-	}
-   
-MProviderSelector* CConnectionProviderFactoryShim::DoSelectProvider( Meta::SMetaData& aPreferences, ISelectionNotify& aSelectionNotify, const RMessagePtr2* aMessage )
-	{
-	//create self-destructing object
-	CConnectionSelectorShim* selector = new CConnectionSelectorShim(aSelectionNotify);
-	if (!selector)
-		{
-		aSelectionNotify.SelectComplete(NULL,KErrNoMemory);
-		aSelectionNotify.Detach();
-		}
-	else 
-		{
-		#ifdef SYMBIAN_NETWORKING_UMTSR5	
-		selector->SetFactoryIface(this);	
-		#endif
-		if ( selector->Select(aPreferences, aMessage) != KErrNone )
-			{
-			selector = NULL;
-			}	
-		}
-		
-		
-	return selector;
-	}
-   
-MProviderSelector* CConnectionProviderFactoryShim::DoSelectNextLayerProvider( Meta::SMetaData& /*aPreferences*/, ISelectionNotify& /*aSelectionNotify*/, const RMessagePtr2* /*aMessage*/ )
-	{	
-	return NULL;
-	}
-	
-void CConnectionProviderFactoryShim::DoEnumerateConnectionsL(RPointerArray<TConnectionInfo>& aConnectionInfoPtrArray)
-	{
-    iNifmanSession->EnumerateConnectionsL(aConnectionInfoPtrArray);
-	}
-
-//MConnectionNotify interface to catch the global events
-void CConnectionProviderFactoryShim::SelectionComplete(TInt /*aError*/, const TDesC8& /*aSelectionInfo*/)
-	{
-	
-	ASSERT(NULL);//it's never to happen
-	}
-	
-void CConnectionProviderFactoryShim::ConnectionError(TInt /*aError*/)
-	{
-	ASSERT(NULL);//it's never to happen
-	}
-	
-void CConnectionProviderFactoryShim::LinkLayerOpen(TInt /*aError*/)
-	{
-	ASSERT(NULL);//it's never to happen
-	}
-	
-void CConnectionProviderFactoryShim::LinkLayerClosed(TInt /*aError*/)
-	{
-	ASSERT(NULL);//it's never to happen
-	}
-	
-void CConnectionProviderFactoryShim::ProgressNotification(TInt /*aStage*/, TInt /*aError*/)
-	{
-	ASSERT(NULL);//it's never to happen
-	}
-	
-void CConnectionProviderFactoryShim::ProgressNotification(TSubConnectionUniqueId /*aSubConnectionUniqueId*/, TInt /*aStage*/, TInt /*aError*/)
-	{
-	ASSERT(NULL);//it's never to happen
-	}
-	
-void CConnectionProviderFactoryShim::ServiceChangeNotification(TUint32 /*aId*/, const TDesC& /*aType*/)
-	{
-	ASSERT(NULL);//it's never to happen
-	}
-	
-void CConnectionProviderFactoryShim::InterfaceStateChangeNotification(TDesC8& aInfo)
-	{
-	TInt count = iConnectionFactoryNotify.Count();
-	for (TInt n = 0; n < count; n++)
-		{
-		iConnectionFactoryNotify[n].InterfaceStateChange(aInfo);
-		}
-	}
-	
-void CConnectionProviderFactoryShim::NotifyDataSent(TSubConnectionUniqueId /*aSubConnectionUniqueId*/, TUint /*aUplinkVolume*/)
-	{
-	ASSERT(NULL);//it's never to happen
-	}
-	
-void CConnectionProviderFactoryShim::NotifyDataReceived(TSubConnectionUniqueId /*aSubConnectionUniqueId*/, TUint /*aDownlinkVolume*/)
-	{
-	ASSERT(NULL);//it's never to happen
-	}
-	
-void CConnectionProviderFactoryShim::SubConnectionEvent(const TSubConnectionEvent& /*aSubConnectionEvent*/)
-	{
-	ASSERT(NULL);//it's never to happen
-	}
-	
-
-/**
-Define the factory query to find out particular CSubConnectionLinkShimClient object based on CConnection address 
-*/
-
-class XShimFactoryQuery : public MCommsFactoryQuery
-	{
-	friend class CConnectionProviderFactoryShim;
-	
-public:
-	explicit XShimFactoryQuery( NetMessages::CTypeIdQuery& aQuery ) :
-		iQuery(aQuery),
-		iClient(NULL)
-		{
-		}
-
-protected:
-	NetMessages::CTypeIdQuery& iQuery;
-	CSubConnectionLinkShimClient* iClient;
-
-public:
-	virtual TMatchResult Match( TFactoryObjectInfo& aInfo );
-	};
-
-//This method is called for each instance of particular class being managed by CommsFactory framework
-MCommsFactoryQuery::TMatchResult XShimFactoryQuery::Match( TFactoryObjectInfo& aInfo )
-	{
-	CConnectionProviderShim* connectionProvider = static_cast<CConnectionProviderShim*>(aInfo.iInfo.iFactoryObject);
-	ASSERT(connectionProvider);
-	//call the CNifManSubConnectionShim interface to do the job
-	iClient = connectionProvider->QuerySubSessions(iQuery.iTypeId, reinterpret_cast<CConnection*> (iQuery.iHandle));
-	
-	return iClient ? MCommsFactoryQuery::EMatch : MCommsFactoryQuery::EContinue;
-	}
-	
-/**	Handles incoming messages
-
-@param aNetMessage Messsge reference
-@return KErrNone|KErrNotFound|KErrNotSupported
-@return if object found passes its pointer to the aNetMessasge object
-*/
-TInt CConnectionProviderFactoryShim::DoReceiveMessage( NetMessages::CMessage& aNetMessage )
-{
-STypeId tid = STypeId::CreateSTypeId(NetMessages::KInterfaceUid, NetMessages::ETypeIdQueryId);
-NetMessages::CTypeIdQuery& query = static_cast<NetMessages::CTypeIdQuery&>(aNetMessage);
-TInt ret = KErrNotSupported;
-if (aNetMessage.GetTypeId() == tid && query.iUid == KShimCommsUid)
-	{
-	XShimFactoryQuery q(query);
-	ret = FindObject(q) ? KErrNone : KErrNotFound;
-	//carry the result back
-	query.iHandle = (TInt)(static_cast<MShimControlClient*>(q.iClient));
-	}
-return ret;
-}
-
-