diff -r 65a3ef1d5bd0 -r f742655b05bf convergedconnectionhandler/cchserver/src/cchetelnetworkstatusnotifier.cpp --- a/convergedconnectionhandler/cchserver/src/cchetelnetworkstatusnotifier.cpp Thu Aug 19 09:45:22 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,221 +0,0 @@ -/* -* Copyright (c) 2006 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: CCchEtelNetworkStatusNotifier implementation - * -*/ - - -// INCLUDES -#include "cchetelnetworkstatusnotifier.h" -#include "cchclientserver.h" -#include "cchuihandler.h" -#include -#include "cchlogger.h" - - -const TUint KCCHEtelRetryDelay = 1000; -// ============================ MEMBER FUNCTIONS ============================== - -// ---------------------------------------------------------------------------- -// CCchEtelNetworkStatusNotifier::NewL() -// ---------------------------------------------------------------------------- -CCchEtelNetworkStatusNotifier* CCchEtelNetworkStatusNotifier::NewL( - MCchEtelNetworkStatusObserver& aEtelNetworkStatusObserver ) - { - CCchEtelNetworkStatusNotifier* self = new(ELeave) - CCchEtelNetworkStatusNotifier( aEtelNetworkStatusObserver ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - -// ---------------------------------------------------------------------------- -// CCchEtelNetworkStatusNotifier::CCchEtelNetworkStatusNotifier() -// ---------------------------------------------------------------------------- -CCchEtelNetworkStatusNotifier::CCchEtelNetworkStatusNotifier( - MCchEtelNetworkStatusObserver& aEtelNetworkStatusObserver ) - : CActive( EPriorityStandard ), - iEtelNetworkStatusObserver( aEtelNetworkStatusObserver ), - iRegistrationStatus( RMobilePhone::ERegistrationUnknown ), - iDelay( KCCHEtelRetryDelay ) - { - CActiveScheduler::Add( this ); - } - -// ---------------------------------------------------------------------------- -// CCchEtelNetworkStatusNotifier::ConstructL() -// ---------------------------------------------------------------------------- -void CCchEtelNetworkStatusNotifier::ConstructL() - { - iTimer.CreateLocal(); - iState = ECCHEtelConnect; - Connect(); - } - -// ---------------------------------------------------------------------------- -// CCchEtelNetworkStatusNotifier::~CCchEtelNetworkStatusNotifier() -// ---------------------------------------------------------------------------- - -CCchEtelNetworkStatusNotifier::~CCchEtelNetworkStatusNotifier() - { - if( IsActive() ) - { - Cancel(); - } - iPhone.Close(); - iEtelServer.UnloadPhoneModule( KMmTsyModuleName ); - iTimer.Close(); - } - -// ----------------------------------------------------------------------------- -// CCchEtelNetworkStatusNotifier::Connect -// Handle notification from pubsub session. -// ----------------------------------------------------------------------------- -// -void CCchEtelNetworkStatusNotifier::Connect() - { - CCHLOGSTRING( "CCchEtelNetworkStatusNotifier::Connect IN" ); - TInt error( 0 ); - - switch( iState ) - { - case ECCHEtelConnect: - error = iEtelServer.Connect(); - if( error ) - { - break; - } - iState = ECCHEtelLoadModule; - - case ECCHEtelLoadModule: - error = iEtelServer.LoadPhoneModule( KMmTsyModuleName ); - if( error ) - { - break; - } - iState = ECCHEtelOpenPhone; - - case ECCHEtelOpenPhone: - error = iPhone.Open( iEtelServer, KMmTsyPhoneName ); - if( error ) - { - break; - } - else - { - iState = ECCHEtelConnected; - iPhone.GetNetworkRegistrationStatus( iStatus, iRegistrationStatus ); - } - - } - if ( error ) - { - iTimer.After( iStatus, iDelay ); - iDelay += KCCHEtelRetryDelay; - } - SetActive(); - - CCHLOGSTRING( "CCchEtelNetworkStatusNotifier::Connect OUT" ); - } - -// ----------------------------------------------------------------------------- -// CCchEtelNetworkStatusNotifier::RunL -// Handle notification from pubsub session. -// ----------------------------------------------------------------------------- -// -void CCchEtelNetworkStatusNotifier::RunL() - { - CCHLOGSTRING( "CCchEtelNetworkStatusNotifier::RunL IN" ); - - if ( iState == ECCHEtelConnected ) - { - OrderNotification(); - - if ( RMobilePhone::ENotRegisteredNoService == iRegistrationStatus && - iLastRegistrationStatus != iRegistrationStatus ) - { - iEtelNetworkStatusObserver.MobileNetworkNoService(); - } - - iLastRegistrationStatus = iRegistrationStatus; - } - else - { - Connect(); - } - - CCHLOGSTRING( "CCchEtelNetworkStatusNotifier::RunL OUT" ); - } -// ----------------------------------------------------------------------------- -// CCchEtelNetworkStatusNotifier::DoCancel -// Handle cancel order on this active object. -// ----------------------------------------------------------------------------- -// -void CCchEtelNetworkStatusNotifier::DoCancel() - { - CCHLOGSTRING( "CCchEtelNetworkStatusNotifier::DoCancel IN" ); - if ( EFalse == iNotified ) - { - iPhone.CancelAsyncRequest( - EMobilePhoneGetNetworkRegistrationStatus ); - } - else - { - iPhone.CancelAsyncRequest( - EMobilePhoneNotifyNetworkRegistrationStatusChange ); - } - iNotified = EFalse; - - CCHLOGSTRING( "CCchEtelNetworkStatusNotifier::DoCancel OUT" ); - } - -// ----------------------------------------------------------------------------- -// CCchEtelNetworkStatusNotifier::OrderNotification -// Order new notification from CenRep. -// ----------------------------------------------------------------------------- -// -void CCchEtelNetworkStatusNotifier::OrderNotification() - { - CCHLOGSTRING( "CCchEtelNetworkStatusNotifier::OrderNotification IN" ); - - iNotified = ETrue; - iPhone.NotifyNetworkRegistrationStatusChange( - iStatus, - iRegistrationStatus ); - SetActive(); - - CCHLOGSTRING( "CCchEtelNetworkStatusNotifier::OrderNotification OUT" ); - } - -// ----------------------------------------------------------------------------- -// CCchEtelNetworkStatusNotifier::IsNetworkStatusNoService -// Is network status no service. -// ----------------------------------------------------------------------------- -// -TBool CCchEtelNetworkStatusNotifier::IsNetworkStatusNoService() const - { - CCHLOGSTRING( "CCchEtelNetworkStatusNotifier::IsNetworkStatusNoService" ); - - if ( RMobilePhone::ENotRegisteredNoService == iRegistrationStatus ) - { - return ETrue; - } - else - { - return EFalse; - } - } - -// End of file