diff -r 4baee4f15982 -r 6385c4c93049 browserplugins/browsersysteminfoplugin/src/NetworkObserver.cpp --- a/browserplugins/browsersysteminfoplugin/src/NetworkObserver.cpp Thu Aug 19 09:57:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,273 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of the License "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: -* -*/ - - -// INCLUDE FILES -#include -#include "NetworkObserver.h" -#include "SystemInfoPlugin.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CNetworkObserver::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -CNetworkObserver* CNetworkObserver::NewL( CSystemInfoPlugin* aPlugin ) - { - CNetworkObserver* self = new (ELeave) CNetworkObserver( aPlugin ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - -// ----------------------------------------------------------------------------- -// CNetworkObserver::CNetworkObserver -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -CNetworkObserver::CNetworkObserver( CSystemInfoPlugin* aPlugin ) - : iSystemInfoPlugin( aPlugin ), - iSignalPckg( iSignal ), - iRegistrationStatusPckg( iRegistrationStatus ), - iNetworkInfoPckg( iNetworkInfo ) - { - } - -// ----------------------------------------------------------------------------- -// CNetworkObserver::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -void CNetworkObserver::ConstructL() - { - iSignalObserver = CSystemInfoObserver::NewL( this, EIdSignalStrength ); - iRegistrationStatusObserver = CSystemInfoObserver::NewL( this, EIdRegistrationStatus ); - iNetworkInfoObserver = CSystemInfoObserver::NewL( this, EIdNetworkInfo ); - - iTelephony = CTelephony::NewL(); - iTelephony2 = CTelephony::NewL(); - iTelephony3 = CTelephony::NewL(); - - // bootstrap monitoring - - // signal - iSignal.iSignalStrength = INT_MIN; // default indicates unknown - iSignal.iBar = CHAR_MIN; // default indicates unknown - iSignalObserver->RequestNotificationL(); - - // registration status - iRegistrationStatus.iRegStatus = CTelephony::ERegistrationUnknown; // default - iRegistrationStatusObserver->RequestNotificationL(); - - // network info - iNetworkInfo.iDisplayTag.Copy(_L("")); // default indicates unknown - iNetworkInfoObserver->RequestNotificationL(); - } - -// ----------------------------------------------------------------------------- -// CNetworkObserver::~CNetworkObserver() -// Destructor -// ----------------------------------------------------------------------------- -CNetworkObserver::~CNetworkObserver() - { - delete iSignalObserver; - delete iRegistrationStatusObserver; - delete iRegistrationStatusChangedFunction; - delete iNetworkInfoObserver; - delete iTelephony; - delete iTelephony2; - delete iTelephony3; - } - -// ----------------------------------------------------------------------------- -// CNetworkObserver::SignalBars -// ----------------------------------------------------------------------------- -TInt CNetworkObserver::SignalBars() const - { - if ( !iSignalStarted ) - { - return INT_MIN; // value indicates unknown - } - return iSignal.iBar; - } - -// ----------------------------------------------------------------------------- -// CNetworkObserver::RegistrationStatus -// ----------------------------------------------------------------------------- -TInt CNetworkObserver::RegistrationStatus() const - { - TInt s = iRegistrationStatus.iRegStatus; - // explicitly map enum values in case CTelephony API changes. - switch ( s ) - { - case CTelephony::ERegistrationUnknown: - s = 0; - break; - case CTelephony::ENotRegisteredNoService: - s = 1; - break; - case CTelephony::ENotRegisteredEmergencyOnly: - s = 2; - break; - case CTelephony::ENotRegisteredSearching: - s = 3; - break; - case CTelephony::ERegisteredBusy: - s = 4; - break; - case CTelephony::ERegisteredOnHomeNetwork: - s = 5; - break; - case CTelephony::ERegistrationDenied: - s = 6; - break; - case CTelephony::ERegisteredRoaming: - s = 7; - break; - default: - s = 0; - break; - }; - - return s; - } - -// ----------------------------------------------------------------------------- -// CNetworkObserver::NetworkName -// ----------------------------------------------------------------------------- -const TDesC& CNetworkObserver::NetworkName() const - { - return iNetworkInfo.iDisplayTag; - } - -// ----------------------------------------------------------------------------- -// CNetworkObserver::RequestNotificationL -// ----------------------------------------------------------------------------- -void CNetworkObserver::RequestNotificationL( TIdNetworkItem aId, HBufC8* aFunctionName ) - { - if ( aId == EIdRegistrationStatus ) - { - delete iRegistrationStatusChangedFunction; - iRegistrationStatusChangedFunction = aFunctionName; - // already monitoring, don't request notification again - } - } - -// ----------------------------------------------------------------------------- -// CNetworkObserver::SubscribeL -// ----------------------------------------------------------------------------- -void CNetworkObserver::SubscribeL( TInt aId, TRequestStatus& aStatus ) - { - if ( aId == EIdSignalStrength ) - { - if ( iSignalStarted ) - { - iTelephony->NotifyChange( aStatus, - CTelephony::ESignalStrengthChange, - iSignalPckg ); - } - else - { - iTelephony->GetSignalStrength( aStatus, iSignalPckg ); - } - } - else if ( aId == EIdRegistrationStatus ) - { - if ( iRegistrationStatusStarted ) - { - iTelephony2->NotifyChange( aStatus, - CTelephony::ENetworkRegistrationStatusChange, - iRegistrationStatusPckg ); - } - else - { - iTelephony2->GetNetworkRegistrationStatus( aStatus, iRegistrationStatusPckg ); - } - } - else if ( aId == EIdNetworkInfo ) - { - if ( iNetworkInfoStarted ) - { - iTelephony3->NotifyChange( aStatus, - CTelephony::ECurrentNetworkInfoChange, - iNetworkInfoPckg ); - } - else - { - iTelephony3->GetCurrentNetworkInfo( aStatus, iNetworkInfoPckg ); - } - } - } - -// ----------------------------------------------------------------------------- -// CNetworkObserver::UpdateL -// ----------------------------------------------------------------------------- -void CNetworkObserver::UpdateL( TInt aId ) - { - if ( aId == EIdSignalStrength ) - { - iSignalStarted = 1; - } - else if ( aId == EIdRegistrationStatus ) - { - iRegistrationStatusStarted = 1; - if ( iRegistrationStatusChangedFunction ) - { - iSystemInfoPlugin->InvokeCallback( *iRegistrationStatusChangedFunction, NULL, 0 ); - } - } - else if ( aId == EIdNetworkInfo ) - { - iNetworkInfoStarted = 1; - // FUTURE add callback to script API - } - } - -// ----------------------------------------------------------------------------- -// CNetworkObserver::Cancel -// ----------------------------------------------------------------------------- -void CNetworkObserver::Cancel( TInt aId ) - { - if ( aId == EIdSignalStrength ) - { - (void) iTelephony->CancelAsync( ( iSignalStarted ? - CTelephony::ESignalStrengthChangeCancel - : CTelephony::EGetSignalStrengthCancel ) ); - } - else if ( aId == EIdRegistrationStatus ) - { - (void) iTelephony2->CancelAsync( ( iRegistrationStatusStarted ? - CTelephony::ENetworkRegistrationStatusChangeCancel - : CTelephony::EGetNetworkRegistrationStatusCancel ) ); - } - else if ( aId == EIdNetworkInfo ) - { - (void) iTelephony3->CancelAsync( ( iNetworkInfoStarted ? - CTelephony::ECurrentNetworkInfoChangeCancel - : CTelephony::EGetCurrentNetworkInfoCancel ) ); - } - } - -// ----------------------------------------------------------------------------- -// CNetworkObserver::Close -// ----------------------------------------------------------------------------- -void CNetworkObserver::Close( TInt /*aId*/ ) - { - } - -// End of File