diff -r 65a3ef1d5bd0 -r f742655b05bf callcontinuity/vcc/src/vccengpspropertylistener.cpp --- a/callcontinuity/vcc/src/vccengpspropertylistener.cpp Thu Aug 19 09:45:22 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,197 +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 "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: Observes the state of P&S property -* -*/ - - - -#include -#include - -#include "vccengpspropertylistener.h" -#include "rubydebug.h" - -//#include "vccuipropertyhandler.pan" - -// ======== MEMBER FUNCTIONS ======== -// ----------------------------------------------------------------------------- -// C++ constructor -// ----------------------------------------------------------------------------- -// -CVccEngPsPropertyListener::CVccEngPsPropertyListener( -const TUid aCategoryUid, - const TUint aKeyId ): -CActive( EPriorityStandard ), -iCategoryId( aCategoryUid ), -iKeyId( aKeyId ) - { - RUBY_DEBUG_BLOCK( "VccEngPsPropertyListener::CVccEngPsPropertyListener" ); - } - -// ----------------------------------------------------------------------------- -// 2nd phase constructor -// ----------------------------------------------------------------------------- -// -void CVccEngPsPropertyListener::ConstructL() - { - RUBY_DEBUG_BLOCKL( "CVccEngPsPropertyListener::ConstructL" ); - // Attach to categroy and key. - User::LeaveIfError( iProperty.Attach( iCategoryId, iKeyId )); - // Add to active scheduler - CActiveScheduler::Add( this ); - } - -// ----------------------------------------------------------------------------- -// Constructor -// ----------------------------------------------------------------------------- -// -CVccEngPsPropertyListener* CVccEngPsPropertyListener::NewL( - const TUid aCategoryId, - const TUint aKeyId) - { - RUBY_DEBUG_BLOCKL("CVccEngPsPropertyListener::NewL"); - - CVccEngPsPropertyListener* self = new (ELeave) CVccEngPsPropertyListener( - aCategoryId, aKeyId ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - return self; - } - -// ----------------------------------------------------------------------------- -// Destructor -// ----------------------------------------------------------------------------- -// -CVccEngPsPropertyListener::~CVccEngPsPropertyListener() - { - RUBY_DEBUG0( "CVccEngPsPropertyListener::~CVccEngPsPropertyListener() - ENTER" ); - Cancel(); - iProperty.Close(); - iObservers.Close(); - RUBY_DEBUG0( "CVccEngPsPropertyListener::~CVccEngPsPropertyListener() - EXIT" ); - } - -// ----------------------------------------------------------------------------- -// Add Vcc property observer -// ----------------------------------------------------------------------------- -// -void CVccEngPsPropertyListener::AddObserverL( - MVccEngPsPropertyListenerObserver& aObserver ) - { - RUBY_DEBUG_BLOCKL( "CVccEngPsPropertyListener::AddObserverL" ); - - if ( iObservers.Find( &aObserver ) == KErrNotFound ) - { - User::LeaveIfError( iObservers.Append( &aObserver ) ); - } - } - -// ----------------------------------------------------------------------------- -// Removes observer -// ----------------------------------------------------------------------------- -// -void CVccEngPsPropertyListener::RemoveObserver( - MVccEngPsPropertyListenerObserver& aObserver ) - { - RUBY_DEBUG_BLOCK( "CVccEngPsPropertyListener::RemoveObserver" ); - - TInt index = iObservers.Find( &aObserver ); - - if ( index != KErrNotFound ) - { - iObservers.Remove( index ); - } - } - -// ----------------------------------------------------------------------------- -// Fetches the current value of the key -// ----------------------------------------------------------------------------- -// -TInt CVccEngPsPropertyListener::CurrentValue() - { - RUBY_DEBUG_BLOCK( "CVccEngPsPropertyListener::CurrentValue" ); - - TInt value( KErrNotFound ); - iProperty.Get( iCategoryId, iKeyId, value ); - return value; - } - - -// ----------------------------------------------------------------------------- -// Cancels the outstanding subsription request -// ----------------------------------------------------------------------------- -// -void CVccEngPsPropertyListener::DoCancel() - { - RUBY_DEBUG0( "CVccEngPsPropertyListener::DoCancel - ENTER" ); - iProperty.Cancel(); - RUBY_DEBUG0( "CVccEngPsPropertyListener::DoCancel - EXIT" ); - } - -// ----------------------------------------------------------------------------- -// Subsribes to property -// ----------------------------------------------------------------------------- -// -void CVccEngPsPropertyListener::Start() - { - RUBY_DEBUG_BLOCK( "CVccEngPsPropertyListener::Start" ); - - // Subscribe to get updates. - iProperty.Subscribe( iStatus ); - SetActive(); - } - -// ----------------------------------------------------------------------------- -// RunL -// ----------------------------------------------------------------------------- -// -void CVccEngPsPropertyListener::RunL() - { - TInt err = iStatus.Int(); -Start(); - RUBY_DEBUG_BLOCK( "CVccEngPsPropertyListener::RunL" ); - RUBY_DEBUG1( " - Status: %d", iStatus.Int() ); - if ( KErrNone == err ) - { - RUBY_DEBUG0( " - CVccEngPsPropertyListener::RunL - \ - if ( KErrNone == err )" ); - // Notify property changes to observers. - NotifyObserversL(); - } - } - -// ----------------------------------------------------------------------------- -// Notify all observers about the changed value -// ----------------------------------------------------------------------------- -// -void CVccEngPsPropertyListener::NotifyObserversL() - { - RUBY_DEBUG_BLOCKL( "CVccEngPsPropertyListener::NotifyObserversL" ); - - TInt value = CurrentValue(); - RUBY_DEBUG1( " - value [%d]", value ); - - for ( TInt i(0) ; i < iObservers.Count() ; i++ ) - { - MVccEngPsPropertyListenerObserver* observer = iObservers[i]; - - if ( observer ) - { - observer->PropertyChangedL( iCategoryId, iKeyId, value ); - } - } - }