fotaapplication/fotaserver/FotaServer/src/FotaNetworkRegStatus.cpp
changeset 50 a36219ae6585
parent 49 689a71addb96
child 51 2e64dc50f295
--- a/fotaapplication/fotaserver/FotaServer/src/FotaNetworkRegStatus.cpp	Tue Jul 13 09:26:23 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,391 +0,0 @@
-/*
-* Copyright (c) 2005 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:   GPRS and Wlan status getter for sending Generic Alerts
-*
-*/
-
-
-
-// INCLUDE FILES
-
-//System Includes
-#include <startupdomainpskeys.h>	//GlobalRFsStates
-#include <rconnmon.h>	//RConnectionMonitor
-#include <featmgr.h>	//Feature Manager
-#include <features.hrh>	//Feature Manager
-#include <cmconnectionmethoddef.h>
-#include <cmmanagerext.h>
-#include <cmpluginwlandef.h>
-#include <cmpluginpacketdatadef.h>
-
-//User Includes
-#include "FotaServer.h"
-#include "FotaNetworkRegStatus.h"
-
-
-
-// -----------------------------------------------------------------------------
-// CFotaNetworkRegStatus::NewL
-// Symbian 2-Phase construction, NewL used for creating object of this class
-// This method can leave
-// -----------------------------------------------------------------------------
-
-CFotaNetworkRegStatus* CFotaNetworkRegStatus::NewL(CFotaServer* aObserver)
-	{
-	CFotaNetworkRegStatus* self = CFotaNetworkRegStatus::NewLC(aObserver);
-	CleanupStack::Pop(self);
-	return self;	
-	}
-
-// -----------------------------------------------------------------------------
-// CFotaNetworkRegStatus::NewLC
-// Symbian 2-Phase construction, NewLC used for creating object of this class
-// This method can leave
-// -----------------------------------------------------------------------------
-
-CFotaNetworkRegStatus* CFotaNetworkRegStatus::NewLC(CFotaServer* aObserver)
-	{
-	CFotaNetworkRegStatus* self = new (ELeave) CFotaNetworkRegStatus (aObserver);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	
-	return self;
-	}
-
-// -----------------------------------------------------------------------------
-// CFotaNetworkRegStatus::ConstructL
-// Symbian 2-Phase construction, ConstructL used for constructing the members of this class
-// This method can leave
-// -----------------------------------------------------------------------------
-
-void CFotaNetworkRegStatus::ConstructL()
-	{
-	iTimer.CreateLocal();
-	iMonitor.ConnectL();
-	}
-
-// -----------------------------------------------------------------------------
-// CFotaNetworkRegStatus::CFotaNetworkRegStatus
-// C++ Constructor
-// This method shouldn't leave
-// -----------------------------------------------------------------------------
-
-CFotaNetworkRegStatus::CFotaNetworkRegStatus(CFotaServer* aObserver) : 
-    CActive( CActive::EPriorityStandard ), iObserver(aObserver), iRetriesLeft (KRetries), iGlobalRFState(EFalse)
-    {
-     CActiveScheduler::Add( this ); // Add AO to current active scheduler
-    }
-
-// -----------------------------------------------------------------------------
-// CFotaNetworkRegStatus::~CFotaNetworkRegStatus
-// C++ Desctructor
-// This method shouldn't leave
-// -----------------------------------------------------------------------------
-
-CFotaNetworkRegStatus::~CFotaNetworkRegStatus()
-	{
-	Cancel();
-
-	iTimer.Close();
-	iMonitor.Close();
-	}
-
-// -----------------------------------------------------------------------------
-// CFotaNetworkRegStatus::DoCancel()
-// Cancels currently active notifier, if such exists
-// -----------------------------------------------------------------------------
-//
-void CFotaNetworkRegStatus::DoCancel()
-	{
-	FLOG(_L("CFotaNetworkRegStatus::DoCancel >>"));
-	
-	if(IsActive())
-		{
-		iTimer.Cancel();
-//		Cancel();
-		}
-		
-	FLOG(_L("CFotaNetworkRegStatus::DoCancel <<"));
-	}
-
-// -----------------------------------------------------------------------------
-// CFotaNetworkRegStatus::StartMonitoringL
-// Monitors for connection status
-// This method don't leave
-// -----------------------------------------------------------------------------
-
-void CFotaNetworkRegStatus::StartMonitoringL()
-    {
-    FLOG(_L("CFotaNetworkRegStatus::StartMonitoringL >>"));
-	
-	//Check offline state
-	FLOG(_L("Check GlobalRF state..."));
-	if (!iGlobalRFState)
-		{
-		iGlobalRFState = CheckGlobalRFState();	
-		}
-	
-	if (iGlobalRFState)
-		{
-		//Check registration state only if iGlobalRFState is true
-		FLOG(_L("Check registration state..."));
-		if (CheckNetworkRegStateL())
-			{
-			//If both are successful report complete
-			FLOG(_L("Network Registration is successful, sending Status as success to FotaServer"));
-			iObserver->ReportNetworkStatus(ETrue);
-			return;
-			}
-		}
-	//If one of them is not successful, start timer and retry KRetries times...
-	
-	if (--iRetriesLeft>=0)
-		{
-		FLOG(_L("Retry count... [%d]"),KRetries-iRetriesLeft);
-		iTimer.After(iStatus,KTimeInterval); 
-		if (!IsActive())
-			SetActive();
-		}
-	else
-		{
-		FLOG(_L("Maximum retries (%d) reached, sending Status as failure to FotaServer"), KRetries);
-		iObserver->ReportNetworkStatus(IsWlanSupportedL());		
-		}
-
-	FLOG(_L("CFotaNetworkRegStatus::StartMonitoringL <<"));
-    }
-
-// -----------------------------------------------------------------------------
-// CFotaNetworkRegStatus::RunL()
-// Called when event accomplished
-// -----------------------------------------------------------------------------
-//
-void CFotaNetworkRegStatus::RunL()
-    {
-    FLOG(_L("CFotaNetworkRegStatus::RunL >>"));
-    
-	if (iStatus==KErrNone)
-		{
-		StartMonitoringL();
-		}
-	else
-		{
-		iObserver->ReportNetworkStatus(EFalse);	
-		}
-
-	FLOG(_L("CFotaNetworkRegStatus::RunL <<"));
-	}
-
-// -----------------------------------------------------------------------------
-// CFotaNetworkRegStatus::RunError
-// Called when RunL leaves
-// This method can't leave
-// -----------------------------------------------------------------------------
-
-TInt CFotaNetworkRegStatus::RunError(TInt aError)
-	{
-	FLOG(_L("CFotaNetworkRegStatus::RunL >>"));
-	iObserver->ReportNetworkStatus(EFalse);			
-	FLOG(_L("CFotaNetworkRegStatus::RunL <<"));
-	return KErrNone;
-	}
-
-// -----------------------------------------------------------------------------
-// CFotaNetworkRegStatus::CheckGlobalRFState
-// Checks for GlobalRFState, set by Starter
-// This method can't leave
-// -----------------------------------------------------------------------------
-
-TBool CFotaNetworkRegStatus::CheckGlobalRFState()
-{
-	FLOG(_L("CFotaNetworkRegStatus::CheckGlobalRFState >>"));
-	
-	RProperty prop;
-	TInt val = KErrNone;
-	TInt err = KErrNone;
-	TInt status = EFalse;
-	
-	err = prop.Get(KPSUidStartup, KPSGlobalSystemState, val);
-	if (err==KErrNone && val==ESwStateNormalRfOn)
-		{
-		//Phone is not offline. Check for Network Registration status
-		FLOG(_L("Phone is online. Check for Network Registration status"));
-		status = ETrue;
-		}
-	else
-		{
-		//Phone is offline. No Network activities allowed.
-		FLOG(_L("Phone is offline. No Network activities allowed."));
-		status = EFalse;
-		}
-	FLOG(_L("CFotaNetworkRegStatus::CheckGlobalRFState, status = %d <<"),status);	
-	return status;
-}
-
-// -----------------------------------------------------------------------------
-// CFotaNetworkRegStatus::CheckNetworkRegStatusL
-// Checks for Network registration status
-// This method can leave
-// -----------------------------------------------------------------------------
-
-TBool CFotaNetworkRegStatus::CheckNetworkRegStateL()
-	{
-	FLOG(_L("CFotaNetworkRegStatus::CheckNetworkRegStateL >>"));
-	
-	TBool status = EFalse;
-	
-	TInt registrationStatus (KErrNone);
-	TRequestStatus status1;
-	iMonitor.GetIntAttribute( EBearerIdGSM,  // See bearer ids from TConnMonBearerId
-	                         0, 
-	                         KNetworkRegistration, 
-	                         registrationStatus, 
-	                         status1 );
-	User::WaitForRequest( status1 );
-
-	if ( status1.Int() == KErrNone )
-	    {
-	    switch (registrationStatus)
-	    	{
-	    		case ENetworkRegistrationHomeNetwork:
-	    		case ENetworkRegistrationRoaming:
-						{
-						status = ETrue;
-						break;	
-						}
-				default:
-						{
-	    				/* Includes - 	ENetworkRegistrationNotAvailable:
-	    								ENetworkRegistrationUnknown:
-	    								ENetworkRegistrationNoService:
-	    								ENetworkRegistrationEmergencyOnly:
-	    								ENetworkRegistrationSearching:
-	    								ENetworkRegistrationBusy:
-	    								ENetworkRegistrationDenied:*/
-	    				status = EFalse;
-	    				break;
-	    				}
-	    	}
-	    }
-	    
-	FLOG(_L("CFotaNetworkRegStatus::CheckNetworkRegStateL, status = %d <<"),status);    
-	return status;
-	}
-	
-// -----------------------------------------------------------------------------
-// CFotaNetworkRegStatus::IsWlanSupportedL
-// Checks whether Wlan supported on device and active
-// This method can leave
-// -----------------------------------------------------------------------------
-	
-TBool CFotaNetworkRegStatus::IsWlanSupportedL()
-	{
-	FLOG(_L("CFotaNetworkRegStatus::IsWlanSupportedL >>"));
-	
-	TBool status = EFalse;
-	
-	FeatureManager::InitializeLibL();
-	if (FeatureManager::FeatureSupported( KFeatureIdProtocolWlan  )) // check for feature enabled
-		{
-		status = ETrue;
-		}
-	
-	FeatureManager::UnInitializeLib();
-
-#if defined(__WINS__)
-	status = ETrue;
-#endif
-	
-	FLOG(_L("CFotaNetworkRegStatus::IsWlanSupportedL, status = %d <<"),status);
-	return status;
-	}
-
-// -----------------------------------------------------------------------------
-// CFotaNetworkRegStatus::IsConnectionPossibleL
-// Checks whether the network connection is possible in the given IAP Id
-// This method can leave
-// -----------------------------------------------------------------------------
-TBool CFotaNetworkRegStatus::IsConnectionPossibleL(TInt aIapid)
-	{
-	FLOG(_L("CFotaNetworkRegStatus::IsConnectionPossibleL >>"));
-	TBool status (EFalse);
-	
-	TUint32 bearer = FindBearerL(aIapid);
-	if( bearer == KUidPacketDataBearerType )
-	{
-	FLOG(_L("Bearer is Packet data"));
-	if( CheckGlobalRFState() && CheckNetworkRegStateL() )
-		{
-		FLOG(_L("Network is up and connection is possible "));
-		status = ETrue;
-		}
-	else
-		{
-		FLOG(_L("Network is not up and connection is not possible "));
-		status = EFalse;
-		}
-	}
-	else if( bearer == KUidWlanBearerType )//for wlan or other bearers
-		{
-		FLOG(_L("Bearer is wlan and proceeding for download "));
-		//proceed & this else loop to be removed
-		status = ETrue;
-		}
-	else
-		{
-		FLOG(_L("Bearer is not packet data or WLAN"));
-		}
-	
-	FLOG(_L("CFotaNetworkRegStatus::IsConnectionPossibleL, status = %d <<"),status);
-	return status;
-	}
-
-
-// ----------------------------------------------------------------------------------------
-// CFotaDownload::FindBearerId
-// Finds the Bearer Id for a given IAP Id
-// ----------------------------------------------------------------------------------------
-TUint32 CFotaNetworkRegStatus::FindBearerL(TInt aIapId)
-	{
-	FLOG(_L("CFotaNetworkRegStatus::FindBearerL: %d"),aIapId);
-	TUint32 bearer = 0;
-	TInt err( KErrNone );
-	 // Query CM Id
-	TInt cmId ( aIapId );			        
-	RCmManagerExt  CmManagerExt;
-	TRAP( err, CmManagerExt.OpenL() );
-	FLOG(_L("CmManagerExt.OpenL() with error as  %d"),err);	
-    if( err == KErrNone )
-    	{
-    	RCmConnectionMethodExt cm;
-    	TRAP( err, cm = CmManagerExt.ConnectionMethodL( cmId ) );			        	
-    	FLOG(_L("CmManagerExt.ConnectionMethodL with error as  %d"),err);
-	    if ( err == KErrNone )
-	        {	        
-	        CleanupClosePushL( cm );	  
-	        FLOG(_L("cm pushed to cleanupstack "));
-	        bearer = cm.GetIntAttributeL( CMManager::ECmBearerType );	        			        
-	        FLOG(_L("bearer is %d "),bearer);
-		    CleanupStack::PopAndDestroy();  // cm	  
-	        FLOG(_L("cm poped & destroyed from cleanupstack "));
-	        }	  
-	    
-	    CmManagerExt.Close();
-	    FLOG(_L("CmManagerExt closed "));
-    	}
-    FLOG(_L("CFotaNetworkRegStatus::FindBearerL end with bearer: %d"),bearer);				
-    return bearer;
-	}
-
-// End of File