diff -r 594d59766373 -r 7d48bed6ce0c convergedcallengine/csplugin/src/cspetelcallstatusmonitor.cpp --- a/convergedcallengine/csplugin/src/cspetelcallstatusmonitor.cpp Thu Aug 19 10:28:14 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,161 +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: Implementation of class CSPEtelCallStatusMonitor which -* monitors call status changes from ETel and notifies observer -* according to call status change. -* -*/ - - -#include - -#include "cspetelcallstatusmonitor.h" -#include "mcspcallobserver.h" -#include "csplogger.h" - - - -// --------------------------------------------------------------------------- -// CSPEtelCallEventMonitor::NewL. -// --------------------------------------------------------------------------- -// -CSPEtelCallStatusMonitor* CSPEtelCallStatusMonitor::NewL( MCSPCallObserver& aObserver, - RMobileCall& aCall ) - { - CSPLOGSTRING(CSPOBJECT, - "CSPEtelCallEventMonitor::NewL()" ); - CSPEtelCallStatusMonitor* self = new ( ELeave ) CSPEtelCallStatusMonitor( - aObserver, aCall ); - return self; - } - - -// --------------------------------------------------------------------------- -// Destructs the object by canceling first ongoing monitoring. -// --------------------------------------------------------------------------- -// -CSPEtelCallStatusMonitor::~CSPEtelCallStatusMonitor( ) - { - CSPLOGSTRING(CSPOBJECT, - "CSPEtelCallStatusMonitor::~CSPEtelCallStatusMonitor()" ); - Cancel(); - - if ( iDestrPtr ) - { - *iDestrPtr = ETrue; - iDestrPtr = NULL; - } - - } - - -// --------------------------------------------------------------------------- -// Starts the monitoring. -// --------------------------------------------------------------------------- -// -void CSPEtelCallStatusMonitor::StartMonitoring() - { - CSPLOGSTRING(CSPINT, "CSPEtelCallStatusMonitor::StartMonitoring()" ); - if ( !IsActive() && iCall.SubSessionHandle() ) - { - CSPLOGSTRING( CSPREQOUT, - "CSP: CSPEtelCallStatusMonitor::StartMonitoring: Request \ - RMobilePhone::NotifyMobileCallStatusChange" ); - iCall.NotifyMobileCallStatusChange( iStatus, iCallStatus ); - CSPLOGSTRING( CSPREQOUT, "CSPEtelCallStatusMonitor:: Notify OK" ); - SetActive(); - } - else - { - CSPLOGSTRING( CSPERROR, - "CSP: CSPEtelCallStatusMonitor::StartMonitoring: Already active" ); - } - } - - -// --------------------------------------------------------------------------- -// Starts the monitoring. -// --------------------------------------------------------------------------- -// -RMobileCall::TMobileCallStatus CSPEtelCallStatusMonitor::State() - { - return iCallStatus; - } - -// --------------------------------------------------------------------------- -// From CActive -// Handles call status notifying. -// --------------------------------------------------------------------------- -// -void CSPEtelCallStatusMonitor::RunL() - { - CSPLOGSTRING( CSPINT, "CSPEtelCallStatusMonitor::RunL") - - // Survive from monitor destruction during observing sequence - TBool destroyed = EFalse; - iDestrPtr = &destroyed; - - if ( iStatus == KErrNone ) - { - iObserver.NotifyCallStateChangedETel( iCallStatus ); - } - - if ( !destroyed ) - { - // In case instance has not been deleted, pointer must be cleared. - iDestrPtr = NULL; - if ( iStatus == KErrNone ) - { - StartMonitoring(); - } - } - else - { - // already destroyed, do not touch members. - } - } - - -// --------------------------------------------------------------------------- -// From CActive -// Canceling functionality. -// --------------------------------------------------------------------------- -// -void CSPEtelCallStatusMonitor::DoCancel() - { - CSPLOGSTRING( CSPINT, "CSPEtelCallStatusMonitor::DoCancel" ); - iCall.CancelAsyncRequest( EMobileCallNotifyMobileCallStatusChange ); - } - - - - -// --------------------------------------------------------------------------- -// Constructs the monitor.. -// --------------------------------------------------------------------------- -// -CSPEtelCallStatusMonitor::CSPEtelCallStatusMonitor( MCSPCallObserver& aObserver, - RMobileCall& aCall ) : - CActive( EPriorityStandard ), - iObserver( aObserver ), - iCall ( aCall ) - { - CSPLOGSTRING(CSPOBJECT, - "CSPEtelCallStatusMonitor::CSPEtelCallStatusMonitor()" ); - CActiveScheduler::Add( this ); - } - - - -// End of file