satengine/SatServer/Commands/SetUpEventListCmd/src/CSetUpEventListHandler.cpp
changeset 0 ff3b6d0fd310
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/satengine/SatServer/Commands/SetUpEventListCmd/src/CSetUpEventListHandler.cpp	Tue Feb 02 01:11:09 2010 +0200
@@ -0,0 +1,266 @@
+/*
+* 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 SetUpEventList command
+*
+*/
+
+
+#include    "MSatApi.h"
+#include    "MSatUtils.h"
+#include    "MSatUiSession.h"
+#include    "MSatEventMonitorContainer.h"
+#include    "CSetUpEventListHandler.h"
+#include    "SatLog.h"
+
+// ======== MEMBER FUNCTIONS ========
+
+// -----------------------------------------------------------------------------
+// CSetUpEventListHandler::CSetUpEventListHandler
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CSetUpEventListHandler::CSetUpEventListHandler() :
+    CSatCommandHandler(),
+    iSetUpEventListData(),
+    iSetUpEventListPckg( iSetUpEventListData ),
+    iSetUpEventListRsp(),
+    iSetUpEventListRspPckg( iSetUpEventListRsp )
+    {
+    LOG( SIMPLE, "SETUPEVENTLIST: \
+        CSetUpEventListHandler::CSetUpEventListHandler calling - exiting" )
+    }
+
+// -----------------------------------------------------------------------------
+// CSetUpEventListHandler::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CSetUpEventListHandler::ConstructL()
+    {
+    LOG( SIMPLE, "SETUPEVENTLIST: CSetUpEventListHandler::ConstructL calling" )
+
+    // Register to listen ESimReset execution.
+    iUtils->RegisterL( this, MSatUtils::ESimResetCalled );
+
+    LOG( SIMPLE, "SETUPEVENTLIST: CSetUpEventListHandler::ConstructL exiting" )
+    }
+
+// -----------------------------------------------------------------------------
+// CSetUpEventListHandler::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CSetUpEventListHandler* CSetUpEventListHandler::NewL( MSatUtils* aUtils )
+    {
+    LOG( SIMPLE, "SETUPEVENTLIST: CSetUpEventListHandler::NewL calling" )
+
+    CSetUpEventListHandler* self = new( ELeave ) CSetUpEventListHandler;
+
+    CleanupStack::PushL( self );
+    self->BaseConstructL( aUtils );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+
+    LOG( SIMPLE, "SETUPEVENTLIST: CSetUpEventListHandler::NewL exiting" )
+    return self;
+    }
+    
+// -----------------------------------------------------------------------------
+// CSetUpEventListHandler::~CSetUpEventListHandler
+// Destructor.
+// -----------------------------------------------------------------------------
+//
+CSetUpEventListHandler::~CSetUpEventListHandler()
+    {
+    LOG( SIMPLE, "SETUPEVENTLIST: \
+        CSetUpEventListHandler::~CSetUpEventListHandler calling" )
+
+    Cancel();
+
+    LOG( SIMPLE, "SETUPEVENTLIST: \
+        CSetUpEventListHandler::~CSetUpEventListHandler exiting" )
+    }
+
+// -----------------------------------------------------------------------------
+// CSetUpEventListHandler::Event
+// -----------------------------------------------------------------------------
+//
+void CSetUpEventListHandler::Event( TInt aEvent )
+    {
+    LOG2( SIMPLE, 
+    "SETUPEVENTLIST: CSetUpEventListHandler::Event calling,aEvent: %d",
+    aEvent )
+
+    // Check the response
+    switch ( aEvent )
+        {
+        case MSatUtils::ESimResetCalled:
+            {
+            LOG( NORMAL,
+                "SETUPEVENTLIST: CSetUpEventListHandler ESimResetCalled" )
+
+            // Cancel all event monitors.
+            iUtils->EventMonitors()->CancelAllMonitors();
+            break;
+            }
+
+        default:
+            {
+            CSatCommandHandler::Event( aEvent );
+            break;
+            }
+        }
+
+    LOG( SIMPLE, "SETUPEVENTLIST: CSetUpEventListHandler::Event exiting" )
+    }
+
+// -----------------------------------------------------------------------------
+// CSetUpEventListHandler::DoCancel
+// Cancels the sat request.
+// -----------------------------------------------------------------------------
+//
+void CSetUpEventListHandler::DoCancel()
+    {
+    LOG( SIMPLE, "SETUPEVENTLIST: CSetUpEventListHandler::DoCancel calling" )
+
+    iUtils->USatAPI().NotifySetUpEventListCancel();
+
+    LOG( SIMPLE, "SETUPEVENTLIST: CSetUpEventListHandler::DoCancel exiting" )
+    }
+
+// -----------------------------------------------------------------------------
+// CSetUpEventListHandler::IssueUSATRequest
+// -----------------------------------------------------------------------------
+//
+void CSetUpEventListHandler::IssueUSATRequest( TRequestStatus& aStatus )
+    {
+    LOG( SIMPLE,
+        "SETUPEVENTLIST: CSetUpEventListHandler::IssueUSATRequest calling" )
+
+    // Clear the IPC package.
+    new (&iSetUpEventListData) RSat::TSetUpEventListV1();
+
+    iUtils->USatAPI().NotifySetUpEventList( aStatus, iSetUpEventListPckg );
+
+    LOG( SIMPLE,
+        "SETUPEVENTLIST: CSetUpEventListHandler::IssueUSATRequest exiting" )
+    }
+
+// -----------------------------------------------------------------------------
+// CSetUpEventListHandler::CommandAllowed
+// -----------------------------------------------------------------------------
+//
+TBool CSetUpEventListHandler::CommandAllowed()
+    {
+    LOG( SIMPLE, "SETUPEVENTLIST: \
+        CSetUpEventListHandler::CommandAllowed calling - exiting" )
+    return ETrue;
+    }
+
+// -----------------------------------------------------------------------------
+// CSetUpEventListHandler::NeedUiSession
+// -----------------------------------------------------------------------------
+//
+TBool CSetUpEventListHandler::NeedUiSession()
+    {
+    LOG( SIMPLE, "SETUPEVENTLIST: \
+        CSetUpEventListHandler::NeedUiSession calling - exiting" )
+    return EFalse;
+    }
+
+// -----------------------------------------------------------------------------
+// CSetUpEventListHandler::HandleCommand
+// -----------------------------------------------------------------------------
+//
+void CSetUpEventListHandler::HandleCommand()
+    {
+    LOG( SIMPLE,
+        "SETUPEVENTLIST: CSetUpEventListHandler::HandleCommand calling" )
+
+    iUtils->NotifyEvent( MSatUtils::ESetUpEventListExecuting );
+
+    // Response
+    RSat::TSetUpEventListRspV1 setUpEventListRsp;
+    RSat::TSetUpEventListRspV1Pckg setUpEventListRspPckg( setUpEventListRsp );
+
+    // Update / cancel event monitors
+    TInt errorCode( KErrNone );
+
+    // Check the event list request type
+    if ( RSat::EUpdateEventList == iSetUpEventListData.iType )
+        {
+        LOG( NORMAL,
+        "SETUPEVENTLIST: CSetUpEventListHandler::HandleCommand UpdEvList" )
+        // Update event monitor list
+        errorCode = iUtils->EventMonitors()->
+            SetUpEventMonitors( iSetUpEventListData.iEvents );
+
+        if ( KErrNone != errorCode )
+            {
+            LOG2( NORMAL,
+            "SETUPEVENTLIST: CSetUpEventListHandler::HandleCommand errCode %d",
+            errorCode )
+            // If any error, cancel all monitors
+            iUtils->EventMonitors()->CancelAllMonitors();
+            }
+        }
+    else if ( RSat::ERemoveExistingEventList == iSetUpEventListData.iType )
+        {
+        LOG( NORMAL,
+        "SETUPEVENTLIST: CSetUpEventListHandler::HandleCommand RemExistEvList" )
+        // Cancel all monitors
+        errorCode = iUtils->EventMonitors()->CancelAllMonitors();
+        }
+    else
+        {
+        errorCode = KErrNotSupported;
+        }
+
+    // Resolve general result
+    if ( KErrNone == errorCode )
+        {
+        LOG( NORMAL,
+        "SETUPEVENTLIST: CSetUpEventListHandler::HandleCommand KSuccess" )
+        setUpEventListRsp.iGeneralResult = RSat::KSuccess;
+        }
+    else
+        {
+        setUpEventListRsp.iGeneralResult = RSat::KCmdBeyondMeCapabilities;
+        }
+
+    // Build the rest of the response
+    setUpEventListRsp.iInfoType = RSat::KNoAdditionalInfo;
+    setUpEventListRsp.iAdditionalInfo.Zero();
+    setUpEventListRsp.SetPCmdNumber( iSetUpEventListData.PCmdNumber() );
+
+    // Send terminal response
+    TerminalRsp( RSat::ESetUpEventList, setUpEventListRspPckg );
+
+    LOG( SIMPLE,
+        "SETUPEVENTLIST: CSetUpEventListHandler::HandleCommand exiting" )
+    }
+
+// -----------------------------------------------------------------------------
+// CSetUpEventListHandler::UiLaunchFailed
+// -----------------------------------------------------------------------------
+//
+void CSetUpEventListHandler::UiLaunchFailed()
+    {
+    LOG( SIMPLE,
+        "SETUPEVENTLIST: CSetUpEventListHandler::UiLaunchFailed calling" )
+    // This command does not launch ui client.
+    LOG( SIMPLE,
+        "SETUPEVENTLIST: CSetUpEventListHandler::UiLaunchFailed exiting" )
+    }