diff -r ebdbd102c78a -r 2eacb6118286 phoneengine/phonemodel/src/cpesimstatemonitor.cpp --- a/phoneengine/phonemodel/src/cpesimstatemonitor.cpp Fri May 14 15:51:57 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,217 +0,0 @@ -/* -* Copyright (c) 2003 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: Sim State Monitoring class methods implementation -* -*/ - - - -// INCLUDE FILES -#include "cpesimstatemonitor.h" -#include "mpephonemodelinternal.h" -#include -#include - - -// ================= MEMBER FUNCTIONS ======================================= - -// ----------------------------------------------------------------------------- -// CPESimStateMonitor::CPESimStateMonitor -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPESimStateMonitor::CPESimStateMonitor( - MPEPhoneModelInternal& aModel, - const TEvent aEvent ) - : CActive( EPriorityStandard ), - iModel( aModel ), - iSimState( EPESimStatusUninitialized ), - iStartUp( ETrue ) - { - if ( aEvent == EEventSimStatus ) - { - iPropertyKey = KPSSimStatus; - } - else - { - iPropertyKey = KPSSimChanged; - } - } - -// ----------------------------------------------------------------------------- -// CPESimStateMonitor::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CPESimStateMonitor::ConstructL() - { - TEFLOGSTRING( KTAMESOUT, "PE CPESimStateMonitor::ConstructL start" ); - - RProperty::TType type( RProperty::EInt ); - TInt err = iProperty.Define( KPSUidStartup, iPropertyKey, type ); - - //An error of KErrAlready exists should be ignored, as this only - //indicates that some other code int system is also interested in the - //value and has created the property. - if ( err != KErrNone && err != KErrAlreadyExists ) - { - User::Leave( err ); - } - User::LeaveIfError( iProperty.Attach( KPSUidStartup, iPropertyKey ) ); - - // NOTE StartMonitoring() is not called here and this is intentional. - // It is undesirable to send out messages before initialization is complete. - // The first completion of this monitor is achieved by calling Start() from - // MPEPhoneModelInternal::StepL() - - TEFLOGSTRING( KTAMESOUT, "PE CPESimStateMonitor::ConstructL complete" ); - } - -// ----------------------------------------------------------------------------- -// CPESimStateMonitor::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CPESimStateMonitor* CPESimStateMonitor::NewL( - MPEPhoneModelInternal& aModel, - const TEvent aEvent ) - { - TEFLOGSTRING2( KTAOBJECT, "PE CPESimStateMonitor::Newl %d", aEvent ); - CPESimStateMonitor* self = new ( ELeave ) CPESimStateMonitor( aModel, aEvent ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - TEFLOGSTRING( KTAMESOUT, "PE CPESimStateMonitor::NewL complete" ); - - return self; - } - -// Destructor -CPESimStateMonitor::~CPESimStateMonitor() - { - Cancel(); - iProperty.Close(); - } - -// ----------------------------------------------------------------------------- -// CPESimStateMonitor::Start -// Completes monitor to finish initialization -// ----------------------------------------------------------------------------- -// -void CPESimStateMonitor::Start() - { - if ( !IsActive() ) - { - CActiveScheduler::Add( this ); - SetActive(); - TRequestStatus* status = &iStatus ; - User::RequestComplete( status, KErrNone ); - } - } - -// ----------------------------------------------------------------------------- -// CPESimStateMonitor::SimState -// Returns Sim state. -// ----------------------------------------------------------------------------- -// -TPESimState CPESimStateMonitor::SimState() const - { - return static_cast( iSimState ); - } - -// ----------------------------------------------------------------------------- -// CPESimStateMonitor::StartMonitoring -// Starts monitoring Sim state -// ----------------------------------------------------------------------------- -// -void CPESimStateMonitor::StartMonitoring() - { - iProperty.Subscribe( iStatus ); - SetActive(); - } - -// ----------------------------------------------------------------------------- -// CPESimStateMonitor::DoCancel -// Callback method from CActive. -// ----------------------------------------------------------------------------- -// -void CPESimStateMonitor::DoCancel() - { - iProperty.Cancel(); - } - -// ----------------------------------------------------------------------------- -// CPESimStateMonitor::RunL -// In startup reads Sim state from System Agent, otherwise it is called -// when Sim state is changed. -// ----------------------------------------------------------------------------- -// -void CPESimStateMonitor::RunL() - { - TInt status = iStatus.Int(); - // resubscribe before processing new value to prevent missing updates - StartMonitoring(); - - iProperty.Get( KPSUidStartup, iPropertyKey, iSimState ); - - if ( iStartUp ) - { - iStartUp = EFalse; - - if ( iPropertyKey == KPSSimStatus ) - { - if( iSimState != EPESimStatusUninitialized && iSimState != EPESimNotSupported ) - { - iModel.SendMessage( MEngineMonitor::EPEMessageSIMStateChanged ); - } - } - else - { - iModel.SendMessage( MEngineMonitor::EPEMessageSIMChanged ); - } - } - else // Sim or Sim status has changed - { - if ( status == KErrNone ) - { - TEFLOGSTRING3( KTAMESINT, - "PE CPESimStateMonitor::RunL, event: %d, property: %d" - , iPropertyKey - , iSimState ); - - if ( iPropertyKey == KPSSimStatus ) - { - iModel.SendMessage( MEngineMonitor::EPEMessageSIMStateChanged ); - } - else - { - if ( iSimState == ESimChanged ) - { - iModel.SendMessage( MEngineMonitor::EPEMessageSIMChanged ); - } - } - } - else - { - TEFLOGSTRING3( KTAERROR, "PE CPESimStateMonitor::RunL, event: %d, status: %d", iPropertyKey, status ); - } - } - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// None - -// End of File