diff -r 2eacb6118286 -r ba76fc04e6c2 phoneengine/phonemodel/src/cpeclientemergencycallmonitor.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phoneengine/phonemodel/src/cpeclientemergencycallmonitor.cpp Fri Jun 04 10:19:18 2010 +0100 @@ -0,0 +1,159 @@ +/* +* Copyright (c) 2006-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: This module contains the implementation of +* CPEClientEmergencyCallMonitor class +* +*/ + + +// INCLUDE FILES +#include "cpeclientemergencycallmonitor.h" +#include "cpemessagehandler.h" +#include "mpephonemodelinternal.h" +#include "pevirtualengine.h" +#include +#include +#include + + +// ================= MEMBER FUNCTIONS ======================= + +// ----------------------------------------------------------------------------- +// CPEClientEmergencyCallMonitor::CPEClientEmergencyCallMonitor +// C++ default constructor can NOT contain any code, that +// might leave. +// ----------------------------------------------------------------------------- +// +CPEClientEmergencyCallMonitor::CPEClientEmergencyCallMonitor( + MPEPhoneModelInternal& aModel, + CPhCltCallNotify& aCallNotifier ) + : iModel( aModel ), + iCallNotifier( aCallNotifier ), + iClientOriginatedCall( EFalse ) + { + TEFLOGSTRING( KTAOBJECT, + "PE CPEClientEmergencyCallMonitor::CPEClientEmergencyCallMonitor complete"); + } + +// ----------------------------------------------------------------------------- +// CPEClientEmergencyCallMonitor::ConstructL +// Two-phased constructor. +// ----------------------------------------------------------------------------- +// +void CPEClientEmergencyCallMonitor::ConstructL() + { + } + +// ----------------------------------------------------------------------------- +// CPEClientEmergencyCallMonitor::NewL +// Two-phased constructor. +// ----------------------------------------------------------------------------- +// +CPEClientEmergencyCallMonitor* CPEClientEmergencyCallMonitor::NewL( + MPEPhoneModelInternal& aModel, + CPhCltCallNotify& aCallNotifier ) + { + CPEClientEmergencyCallMonitor* self = new( ELeave ) + CPEClientEmergencyCallMonitor( aModel, aCallNotifier ); + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + return self; + } + +// Destructor +CPEClientEmergencyCallMonitor::~CPEClientEmergencyCallMonitor() + { + Cancel(); + } + +// ----------------------------------------------------------------------------- +// CPhCltDialData* CPEClientEmergencyCallMonitor::ClientDialData +// ----------------------------------------------------------------------------- +// +CPhCltDialData* CPEClientEmergencyCallMonitor::ClientDialData() + { + return NULL; + } + +// ----------------------------------------------------------------------------- +// CPEClientEmergencyCallMonitor::SendRespond +// Sends respond to the phone client. +// ----------------------------------------------------------------------------- +// +void CPEClientEmergencyCallMonitor::SendRespond( + const TInt aRespond ) + { + if ( iClientOriginatedCall ) + { + TEFLOGSTRING2( KTAMESOUT, + "PE CPEClientEmergencyCallMonitor::SendRespond, CPhCltCallNotify::RespondClient( %d )" + ,aRespond ); + iCallNotifier.RespondEmergencyToClient( aRespond ); + iClientOriginatedCall = EFalse; + // StartMonitoring(); + } + } + +// ----------------------------------------------------------------------------- +// CPEClientEmergencyCallMonitor::StartMonitoring +// Starts monitoring phone client for client dials. +// ----------------------------------------------------------------------------- +// +void CPEClientEmergencyCallMonitor::StartMonitoring() + { + TEFLOGSTRING( KTAMESOUT, + "PE CPEClientEmergencyCallMonitor::StartMonitoring, CPhCltCallNotify::NotifyEmergencyCall( )" ); + iCallNotifier.NotifyEmergencyCall( this, iEmergencyNumber ); + iMonitoring = ETrue; + } + +// ----------------------------------------------------------------------------- +// CPEClientEmergencyCallMonitor::Cancel +// Cancel active object request +// ----------------------------------------------------------------------------- +// +void CPEClientEmergencyCallMonitor::Cancel() + { + TEFLOGSTRING( KTAREQEND, "PE CPEClientEmergencyCallMonitor::Cancel" ); + iCallNotifier.CancelNotifyEmergencyCall(); + iMonitoring = EFalse; + } + +// ----------------------------------------------------------------------------- +// CPEClientEmergencyCallMonitor::DialEmergencyRequest +// ----------------------------------------------------------------------------- +// +void CPEClientEmergencyCallMonitor::DialEmergencyRequest() + { + iMonitoring = EFalse; + TEFLOGSTRING( KTAREQEND, + "PE CPEClientEmergencyCallMonitor::DialEmergencyRequest" ); + iClientOriginatedCall = ETrue; + iModel.DataStore()->SetPhoneNumber( + static_cast( iEmergencyNumber ) ); + iModel.HandleInternalMessage( MPEPhoneModel::EPEMessageClientDialEmergency ); + StartMonitoring(); + } + +// ----------------------------------------------------------------------------- +// CPEClientEmergencyCallMonitor::IsActive +// ----------------------------------------------------------------------------- +// +TBool CPEClientEmergencyCallMonitor::IsActive() + { + return iMonitoring; + } + +// End of File