--- a/satengine/SatServer/Commands/MoSmControlCmd/src/CMoSmControlHandler.cpp Mon Aug 23 15:50:31 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,369 +0,0 @@
-/*
-* Copyright (c) 2002-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: Handles MO ShortMessage Control command
-*
-*/
-
-
-
-// INCLUDE FILES
-#include "MSatApi.h"
-#include "MSatUtils.h"
-#include "MSatUiSession.h"
-#include "MSatSUiClientHandler.h"
-#include "CMoSmControlHandler.h"
-#include "SatLog.h"
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CMoSmControlHandler::CMoSmControlHandler
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-//lint -e{1403, 1769} Can not be initialized, harmless.
-CMoSmControlHandler::CMoSmControlHandler() :
- CSatCommandHandler(),
- iMoSmControlData(),
- iMoSmControlPckg( iMoSmControlData ),
- iMoSmControlSendData(),
- iMoSmControlSendPckg( iMoSmControlSendData ),
- iMoSmControlUiRespData(),
- iMoSmControlUiRespPckg( iMoSmControlUiRespData )
- {
- LOG( SIMPLE, "MOSMCONTROL: \
- CMoSmControlHandler::CMoSmControlHandler calling - exiting" )
- }
-
-// -----------------------------------------------------------------------------
-// CMoSmControlHandler::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CMoSmControlHandler::ConstructL()
- {
- LOG( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::ConstructL calling" )
-
- // Register notification observer
- iUtils->RegisterServiceRequestL(
- ESatSProactiveNotification,
- ESatSProactiveNotificationResponse,
- this );
-
- LOG( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::ConstructL exiting" )
- }
-
-// -----------------------------------------------------------------------------
-// CMoSmControlHandler::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CMoSmControlHandler* CMoSmControlHandler::NewL( MSatUtils* aUtils )
- {
- LOG( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::NewL calling" )
-
- CMoSmControlHandler* self = new( ELeave ) CMoSmControlHandler();
-
- CleanupStack::PushL( self );
- self->BaseConstructL( aUtils );
- self->ConstructL();
- CleanupStack::Pop( self );
-
- LOG( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::NewL exiting" )
- return self;
- }
-
-
-// Destructor
-CMoSmControlHandler::~CMoSmControlHandler()
- {
- LOG( SIMPLE,
- "MOSMCONTROL: CMoSmControlHandler::~CMoSmControlHandler calling" )
-
- Cancel();
-
- LOG( SIMPLE,
- "MOSMCONTROL: CMoSmControlHandler::~CMoSmControlHandler exiting" )
- }
-
-// -----------------------------------------------------------------------------
-// CMoSmControlHandler::ClientResponse
-// Handles responses from client.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CMoSmControlHandler::ClientResponse()
- {
- LOG( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::ClientResponse calling" )
-
- // Start to receive more commands. We have to start again here because
- // we don't send terminal response, wich does this automatically.
- Start();
-
- // Inform the system that we are finished executing. If there is proactive
- // SendSm command pending, it is notified and it continues from here.
- iUtils->NotifyEvent( MSatUtils::EMoSmControlDone );
-
- // If we launched UI, close it.
- if ( !iUtils->SatUiHandler().UiLaunchedByUser() )
- {
- LOG( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::ClientResponse \
- ESimSessionEndCallBack" )
- iUtils->NotifyEvent( MSatUtils::ESimSessionEndCallBack );
- }
-
- else
- {
- LOG( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::ClientResponse \
- EDelaySimSessionEnd" )
- // Inform the session that we are done here.
- iUtils->NotifyEvent( MSatUtils::EDelaySimSessionEnd );
- }
-
- // We do not send TerminalResponse to SIM.
- LOG( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::ClientResponse exiting" )
- }
-
-// -----------------------------------------------------------------------------
-// CMoSmControlHandler::DoCancel
-// Cancels the SAT request
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CMoSmControlHandler::DoCancel()
- {
- LOG( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::DoCancel calling" )
-
- iUtils->USatAPI().NotifyMoSmControlCancel();
-
- LOG( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::DoCancel exiting" )
- }
-
-// -----------------------------------------------------------------------------
-// CMoSmControlHandler::IssueUSATRequest
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CMoSmControlHandler::IssueUSATRequest( TRequestStatus& aStatus )
- {
- LOG( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::IssueUSATRequest calling" )
-
- // Clear the IPC package.
- new (&iMoSmControlData) RSat::TMoSmControlV1();
- iNeedUiSession = EFalse;
-
- iUtils->USatAPI().NotifyMoSmControl( aStatus, iMoSmControlPckg );
-
- LOG( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::IssueUSATRequest exiting" )
- }
-
-// -----------------------------------------------------------------------------
-// CMoSmControlHandler::CommandAllowed
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CMoSmControlHandler::CommandAllowed()
- {
- LOG( SIMPLE,
- "MOSMCONTROL: CMoSmControlHandler::CommandAllowed calling - exiting" )
- return ETrue;
- }
-
-// -----------------------------------------------------------------------------
-// CMoSmControlHandler::NeedUiSession
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CMoSmControlHandler::NeedUiSession()
- {
- LOG( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::NeedUiSession calling" )
- // UI is not needed, if control is AllowedWithMod and AlphaId is NULL or
- // control is Allowed and AlphaId is not provided
-
- const RSat::TAlphaIdStatus alphaId( iMoSmControlData.iAlphaId.iStatus );
- const RSat::TControlResult control( iMoSmControlData.iResult );
-
- const TBool alphaIdNull( RSat::EAlphaIdNull == alphaId ||
- RSat::EAlphaIdNotSet == alphaId );
-
- const TBool controlAllowed(
- RSat::EAllowedNoModification == control ||
- RSat::EControlResultNotSet == control );
-
- if ( RSat::EAllowedWithModifications == control &&
- alphaIdNull )
- {
- LOG( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::NeedUiSession \
- RSat::EAllowedWithModifications == control" )
- iNeedUiSession = EFalse;
- }
- else if ( controlAllowed && ( RSat::EAlphaIdProvided != alphaId ) )
- {
- LOG( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::NeedUiSession \
- RSat::EAlphaIdProvided != alphaId" )
- iNeedUiSession = EFalse;
- }
- else
- {
- iNeedUiSession = ETrue;
- }
-
- LOG2( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::NeedUiSession exiting,\
- iNeedUiSession:%d", iNeedUiSession )
- return iNeedUiSession;
- }
-
-// -----------------------------------------------------------------------------
-// CMoSmControlHandler::HandleCommand
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CMoSmControlHandler::HandleCommand()
- {
- LOG( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::HandleCommand calling" )
-
- // Notify other commands that we are executing.
- iUtils->NotifyEvent( MSatUtils::EMoSmControlExecuting );
- LOG2( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::HandleCommand \
- iNeedUiSession:%d", iNeedUiSession )
- if ( iNeedUiSession )
- {
- // Clear send data.
- TSatNotificationV1 temp;
- iMoSmControlSendData = temp;
-
- // Enums to UI related parameters
- TSatAlphaIdStatus satAlphaIdStatus;
- TSatControlResult satControlResult;
- LOG2( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::HandleCommand \
- iMoSmControlData.iAlphaId.iStatus:%d",
- iMoSmControlData.iAlphaId.iStatus )
- // Map RSat value
- switch ( iMoSmControlData.iAlphaId.iStatus )
- {
- case RSat::EAlphaIdProvided :
- {
- satAlphaIdStatus = ESatAlphaIdNotNull;
- break;
- }
-
- case RSat::EAlphaIdNotPresent :
- {
- satAlphaIdStatus = ESatAlphaIdNotProvided;
- break;
- }
-
- // Use this also as a default value
- case RSat::EAlphaIdNull :
- case RSat::EAlphaIdNotSet :
- default :
- {
- satAlphaIdStatus = ESatAlphaIdNull;
- break;
- }
- }
- LOG2( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::HandleCommand \
- iMoSmControlData.iResult:%d", iMoSmControlData.iResult )
- // Map RSat value
- switch ( iMoSmControlData.iResult )
- {
- case RSat::ENotAllowed :
- {
- satControlResult = ESatNotAllowed;
- break;
- }
-
- case RSat::EAllowedWithModifications :
- {
- satControlResult = ESatAllowedWithModifications;
- break;
- }
-
- // Use this also as a default value
- case RSat::EAllowedNoModification :
- case RSat::EControlResultNotSet :
- default :
- {
- satControlResult = ESatAllowedNoModification;
- break;
- }
- }
-
- // Build the IPC package.
- iMoSmControlSendData.iCommand = ESatSMoSmControlNotify;
- iMoSmControlSendData.iText = iMoSmControlData.iAlphaId.iAlphaId;
- iMoSmControlSendData.iAlphaIdStatus = satAlphaIdStatus;
- iMoSmControlSendData.iControlResult = satControlResult;
-
- // Register notification observer
- TRAPD( regErr, iUtils->RegisterServiceRequestL(
- ESatSProactiveNotification,
- ESatSProactiveNotificationResponse,
- this )
- ); // TRAPD
- LOG2( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::HandleCommand \
- regErr:%d", regErr )
- // No need to check error value, since we cannot send terminal response
- // for this command
- if ( KErrNone == regErr )
- {
- // Get UISession.
- MSatUiSession* uiSession = iUtils->SatUiHandler().UiSession();
-
- // Send command to SatClient.
- uiSession->SendCommand( &iMoSmControlSendPckg,
- &iMoSmControlUiRespPckg, ESatSProactiveNotification );
- }
- }
-
- else
- {
- // Restart request since we don't get client response
- Start();
-
- // Inform the system that we are finished executing. If there is
- // proactive
- // SendSm command pending, it is notified and it continues from here.
- iUtils->NotifyEvent( MSatUtils::EMoSmControlDone );
-
- // Inform the session that we are done here.
- iUtils->NotifyEvent( MSatUtils::EDelaySimSessionEnd );
- }
-
- LOG( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::HandleCommand exiting" )
- }
-
-// -----------------------------------------------------------------------------
-// CMoSmControlHandler::UiLaunchFailed
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CMoSmControlHandler::UiLaunchFailed()
- {
- LOG( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::UiLaunchFailed calling" )
-
- // We cannot send terminal response to UICC since it doesn't
- // expect terminal response from MoSmControl command...
-
- // Inform the session that we are done here.
- iUtils->NotifyEvent( MSatUtils::EDelaySimSessionEnd );
-
- // Start to receive more commands.
- Start();
-
- LOG( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::UiLaunchFailed exiting" )
- }
-
-// End of File