--- a/fotaapplication/fotaserver/src/FotaNetworkRegStatus.cpp Tue Aug 31 16:04:06 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,392 +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