--- 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;
-}
-
-