satengine/SatServer/Engine/src/CSatCommandContainer.cpp
changeset 46 2fa1fa551b0b
parent 42 35488577e233
child 48 78df25012fda
--- a/satengine/SatServer/Engine/src/CSatCommandContainer.cpp	Mon Aug 23 15:50:31 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1177 +0,0 @@
-/*
-* Copyright (c) 2002-2010 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:  Contains SAT commands.
-*
-*/
-
-
-
-#include    <f32file.h>
-#include    <barsc.h>
-#include    <bautils.h>
-#include    <SatServer.rsg>
-#include    <ecom.h>
-#include    <e32property.h>
-#include    <data_caging_path_literals.hrh>
-#include    <startupdomainpskeys.h>
-#include    <satdomainpskeys.h>
-
-#include    "MSatSystemState.h"
-#include    "TSatSystemStateFactory.h"
-#include    "MSatSystemStateChangeNotifier.h"
-#include    "CSatCommandContainer.h"
-//lint -e766 Used inside TRAP macro, lint misfunction.
-#include    "EnginePanic.h"
-#include    "TUSatAPI.h"
-#include    "MSatSSessions.h"
-#include    "MSatShellController.h"
-#include    "SatServer.hrh"
-#include    "SatLog.h"
-#include    "MSatSUiClientHandler.h"
-#include    "CSatClientServiceReq.h"
-#include    "CSatEventMonitorContainer.h"
-#include    "CSatSAPChangeObserver.h"
-#include    "CSatSSimSubscriberId.h"
-#include    "CSatBIPUtils.h"
-#include    "TSatExtErrorUtils.h"
-#include    "MSatUiSession.h"
-#include    "csatmediatoreventprovider.h"
-#include    "csatprofilechangeobserver.h"
-#include    "SATInternalPSKeys.h"
-#include    "csatmultimodeapi.h"
-#include    "csatsactivewrapper.h"
-
-// Drive letter for resource file
-_LIT( KResourceDrive, "Z:" );
-// SatServer's resource file
-_LIT( KSatServerRsc, "SatServer.rsc" );
-
-
-const TUid KSatInterfaceDefinitionUid = { 0x1000f001 };
-const TInt KSizeOfBuf = 50;
-
-const TInt8 KCreateSatAppNamePop( 2 );
-
-// Important plugins UIDs. These are started on startup
-// Implementation UID is from the <plugin>.rss
-const TUid KSetUpEventListUid = { 0x10202993 };
-
-// ======== LOCAL FUNCTIONS ========
-
-// -----------------------------------------------------------------------------
-// CleanupPointerArray
-// Cleanup RPointerArray objects by using the cleanup stack. Function will be 
-// called when application leaves while a RPointerArray object still alive, 
-// or when CleanupStack::PopAndDestroy is explicitly called to release a 
-// RPointerArray. See CleanupStack::PushL( TCleanupItem ) for more details.
-// -----------------------------------------------------------------------------
-//
-static void CleanupPointerArray( TAny* aArray )
-    {
-    LOG2( NORMAL, "SATENGINE: CSatCommandContainer::CleanupPointerArray \
-        calling array = 0x%08x", aArray )
-    
-    RImplInfoPtrArray* array = reinterpret_cast<RImplInfoPtrArray*>( aArray );
-    if ( array )
-        {
-        array->ResetAndDestroy();
-        }
-    
-    LOG( NORMAL, "SATENGINE: CSatCommandContainer::CleanupPointerArray \
-        exiting" )
-    }
-
-// ======== MEMBER FUNCTIONS ========
-
-// -----------------------------------------------------------------------------
-// CSatCommandContainer::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CSatCommandContainer* CSatCommandContainer::NewL(
-    MSatSSessions& aSessions,
-    TSatEventMediator& aEventMediator,
-    MSatSUiClientHandler& aSatUiHandler )
-    {
-    LOG( NORMAL, "SATENGINE: CSatCommandContainer::NewL calling" )
-
-    CSatCommandContainer* self =
-        new ( ELeave ) CSatCommandContainer(
-            aSessions,
-            aEventMediator,
-            aSatUiHandler );
-
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-
-    LOG( NORMAL, "SATENGINE: CSatCommandContainer::NewL exiting" )
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CSatCommandContainer::~CSatCommandContainer
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CSatCommandContainer::~CSatCommandContainer()
-    {
-    LOG( NORMAL,
-        "SATENGINE: CSatCommandContainer::~CSatCommandContainer calling" )
-
-    // Stop and Delete all command handlers
-    StopCommandHandlers();
-
-    if ( iUSatAPI )
-        {
-        iUSatAPI->Close();
-        delete iUSatAPI;
-        iUSatAPI = NULL;
-        }
-
-    if ( iServiceReqs )
-        {
-        iServiceReqs->Reset();
-        delete iServiceReqs;
-        iServiceReqs = NULL;
-        }
-
-    delete iSatAppName;
-    delete iSystemState;
-    delete iBipUtils;
-    delete iSatMediatorEvent;    
-    delete iMultiModeApi;
-    
-    delete iSapObserver;
-    delete iProfileObserver;
-
-    delete iSimSubscriberId;
-    delete iEventMonitors;
-
-    delete iCmdHandlers;
-    delete iStartupChangeObserver;
-
-    LOG( NORMAL,
-        "SATENGINE: CSatCommandContainer::~CSatCommandContainer exiting" )
-    }
-
-// -----------------------------------------------------------------------------
-// CSatCommandContainer::StartCommandHandlersL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CSatCommandContainer::StartCommandHandlersL()
-    {
-    LOG( NORMAL,
-        "SATENGINE: CSatCommandContainer::StartCommandHandlersL calling" )
-
-    // If in startup phase, start the rest of the commands
-    if ( iStartupPhase )
-        {
-        LOG( NORMAL, "SATENGINE: CSatCommandContainer::StartCommandHandlersL \
-             in startup phase" )
-        // Create command handlers.
-        RImplInfoPtrArray satCommandImplementations;
-        CleanupStack::PushL( 
-            TCleanupItem( CleanupPointerArray, &satCommandImplementations ) );
-        REComSession::ListImplementationsL( KSatInterfaceDefinitionUid,
-            satCommandImplementations );
-
-        // Container for commands
-        const TInt cmdCount( satCommandImplementations.Count() );
-        LOG2( NORMAL, "SATENGINE: CSatCommandContainer::StartCommandHandlersL \
-            Command handler count: %d", cmdCount )
-
-        // Check are there any command implementations
-        if ( cmdCount > 0 )
-            {
-            // Check array. Should not be NULL as it is started earlier
-            if ( !iCmdHandlers )
-                {
-                LOG( NORMAL, "SATENGINE: CSatCommandContainer::\
-                StartCommandHandlersL iCmdHandlers false" )
-                iCmdHandlers = new ( ELeave )
-                    CArrayPtrFlat<CSatCommandHandler>( cmdCount );
-                }
-
-            // Add all found command handlers to list
-            for ( TInt i = 0; i < cmdCount; i++ )
-                {
-                const TUid KImplementationUid(
-                    satCommandImplementations[i]->ImplementationUid() );
-
-                // Check important command handlers. They are already started
-                if ( KImplementationUid != KSetUpEventListUid )
-                    {
-                    CSatCommandHandler* cmd =
-                        CSatCommandHandler::NewL( KImplementationUid, this );
-                    cmd->Start();
-                    CleanupStack::PushL( cmd );
-                    iCmdHandlers->AppendL( cmd );
-                    CleanupStack::Pop( cmd );
-                    }
-                }
-            }
-        CleanupStack::PopAndDestroy( &satCommandImplementations );
-        
-        // Notify TSY about readiness i.e. all nofies are sent
-        // Done only once in startup phase
-        TInt ret = iUSatAPI->UsatClientReadyIndication();
-        LOG2( NORMAL, "SATENGINE: UsatClientReadyIndication() gives %d", ret )
-        }
-
-    // Else check that there are no command handlers created and
-    // BT SAP is not active
-    else if ( !iCmdHandlers && !( SystemState().IsBtSapActive() ) )
-        {
-        LOG( NORMAL, "SATENGINE: CSatCommandContainer::StartCommandHandlersL \
-             no command handlers created and BT SAP is not active" )
-        // This is the case when
-        // SAP is first enabled and then disabled
-        if ( !iUSatAPI->IsRSatConnected() )
-            {
-            User::LeaveIfError( iUSatAPI->Connect( *iMultiModeApi ) );
-            }
-
-        // Create command handlers.
-        RImplInfoPtrArray satCommandImplementations;
-        CleanupStack::PushL( 
-            TCleanupItem( CleanupPointerArray, &satCommandImplementations ) );
-        REComSession::ListImplementationsL( KSatInterfaceDefinitionUid,
-            satCommandImplementations );
-
-        // Container for commands
-        const TInt cmdCount( satCommandImplementations.Count() );
-        LOG2( NORMAL, "SATENGINE: CSatCommandContainer::StartCommandHandlersL \
-            Command handler count: %d", cmdCount )
-
-        // Check are there any command implementations
-        if ( cmdCount > 0 )
-            {
-            iCmdHandlers =
-                new ( ELeave ) CArrayPtrFlat<CSatCommandHandler>( cmdCount );
-
-            // Add all found command handlers to list
-            for ( TInt i = 0; i < cmdCount; i++ )
-                {
-                const TUid KImplementationUid(
-                    satCommandImplementations[i]->ImplementationUid() );
-                CSatCommandHandler* cmd =
-                    CSatCommandHandler::NewL( KImplementationUid, this );
-                cmd->Start();
-                CleanupStack::PushL( cmd );
-                iCmdHandlers->AppendL( cmd );
-                CleanupStack::Pop( cmd );
-                }
-            }
-        else
-            {
-            LOG( NORMAL, "SATENGINE: CSatCommandContainer::\
-            StartCommandHandlersL No commands found" )
-            // No commands, remove SAT Icon from shell
-            iSatUiHandler.ShellController().RemoveSatUiL();
-            }
-        CleanupStack::PopAndDestroy( &satCommandImplementations );
-        }
-    else
-        {
-        LOG( NORMAL, " Not starting any command handlers" )
-        }
-
-    // Create SAP State observer.
-    if ( !iSapObserver )
-        {
-        LOG( NORMAL, "SATENGINE: CSatCommandContainer::StartCommandHandlersL \
-        iSapObserver false" )
-        // Create SAP change observer only if there are command handlers.
-        iSapObserver = CSatSAPChangeObserver::NewL( *this );
-        }
-
-    // Create Profile change observer.
-    if ( !iProfileObserver )
-        {
-        LOG( NORMAL, "SATENGINE: CSatCommandContainer::StartCommandHandlersL \
-        iProfileObserver false" )
-        iProfileObserver = CSatProfileChangeObserver::NewL( *this );
-        }
-
-    LOG( NORMAL,
-        "SATENGINE: CSatCommandContainer::StartCommandHandlersL exiting" )
-    }
-
-// -----------------------------------------------------------------------------
-// CSatCommandContainer::StopCommandHandlersL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CSatCommandContainer::StopCommandHandlers()
-    {
-    LOG( NORMAL,
-        "SATENGINE: CSatCommandContainer::StopCommandHandlers calling" )
-
-    if ( iCmdHandlers )
-        {
-         // Remove every command handler from event observers
-        const TInt count( iCmdHandlers->Count() );
-        LOG2( NORMAL, "SATENGINE: CSatCommandContainer::StopCommandHandlers \
-              Command handler count: %d", count )
-        for ( TInt j = 0; j < count; j++ )
-            {
-            CSatCommandHandler* cmd = iCmdHandlers->At( j );
-            UnregisterEventObserver( cmd );
-            }
-
-        // Delete command handlers
-        iCmdHandlers->ResetAndDestroy();
-
-        delete iCmdHandlers;
-        iCmdHandlers = NULL;
-        }
-
-    // This must be called when all ECom Plug-Ins has been deleted. Otherwise
-    // there might be memory leaks.
-    REComSession::FinalClose();
-
-    // Reset ClientService request handlers since there are no command handlers
-    // to handle client responses. If SAT UI / Proactive command is executing
-    // while Bluetooth SAP is enabled, SAT UI sends ClientResponse and that must
-    // be preveted
-    if ( iServiceReqs )
-        {
-        iServiceReqs->Reset();
-        }
-
-    // Close all reserved BIP Data channels
-    if ( iBipUtils )
-        {
-        LOG( NORMAL, "SATENGINE: CSatCommandContainer::StopCommandHandlers \
-        iBipUtils true" )
-        iBipUtils->CloseAllChannels();
-        }
-
-    // Cancel all event monitors
-    if ( iEventMonitors )
-        {
-        LOG( NORMAL, "SATENGINE: CSatCommandContainer::StopCommandHandlers \
-        iEventMonitors true" )
-        iEventMonitors->CancelAllMonitors();
-        }
-
-#ifdef SAT_USE_DUMMY_TSY
-    // Close ATSY. This is needed when testin BT SAP in emulator
-    if ( iUSatAPI )
-        {
-        iUSatAPI->Close();
-        }
-#endif
-
-    LOG( NORMAL,
-        "SATENGINE: CSatCommandContainer::StopCommandHandlers exiting" )
-    }
-
-// -----------------------------------------------------------------------------
-// CSatCommandContainer::Event
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CSatCommandContainer::Event( TInt aEvent )
-    {
-    LOG( NORMAL, "SATENGINE: CSatCommandContainer::Event calling" )
-
-    if ( MSatUtils::ECmccSimDetected == aEvent )
-        {
-        LOG( NORMAL, "SATENGINE:   Event: ECmccSimDetected" )
-        iIsCmccSim = ETrue;
-
-        // Update default name read in ConstructL.
-        TRAPD( err, CreateSatAppNameL( R_QTN_SAT_CMCC_TITLE ) );
-        LOG2( NORMAL, "SATENGINE:   Error: %i", err )
-        if ( KErrNone == err )
-            {
-            // Notify application name update.
-            NotifyEvent( EApplNameUpdated );
-            }
-        }
-    else if ( MSatUtils::ESatUiClosed == aEvent )
-        {
-        LOG( NORMAL, "SATENGINE:   Event: ESatUiClosed" )
-        // Reset service requests. If this is not done,
-        // Some command may try to send data to UiClient,
-        // even if there is no request.
-        const TInt reqs( iServiceReqs->Count() );
-        LOG2( NORMAL, "SATENGINE: CSatCommandContainer::Event reqs: %i", 
-              reqs )
-        for ( TInt i = 0; i < reqs; i++ )
-            {
-            iServiceReqs->At( i )->Reset();
-            }
-        }
-    else
-        {
-        LOG( NORMAL, "SATENGINE:   Unexpected event" )
-        }
-
-    LOG( NORMAL, "SATENGINE: CSatCommandContainer::Event exiting" )
-    }
-
-// -----------------------------------------------------------------------------
-// CSatCommandContainer::NotifyUiEvent
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CSatCommandContainer::NotifyUiEvent(
-    TInt aEventId, TInt aEventStatus, TInt aEventError )
-    {
-    LOG( NORMAL, "SATENGINE: CSatCommandContainer::NotifyUiEvent calling" )
-
-    MSatUiSession* session = iSatUiHandler.UiSession();
-    if ( session )
-        {
-        LOG( NORMAL, "SATENGINE: CSatCommandContainer::NotifyUiEvent \
-        session" )
-        session->UiEventNotification( aEventId, aEventStatus, aEventError );
-        session = NULL;
-        }
-
-    LOG( NORMAL, "SATENGINE: CSatCommandContainer::NotifyUiEvent exiting" )
-    }
-
-// -----------------------------------------------------------------------------
-// CSatCommandContainer::USatAPI
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-MSatApi& CSatCommandContainer::USatAPI()
-    {
-    LOG( DETAILED, "SATENGINE: CSatCommandContainer::USatAPI calling" )
-
-    __ASSERT_ALWAYS( iUSatAPI, PanicSatEngine( ESatEngineNullPointer ) );
-
-    LOG( DETAILED, "SATENGINE: CSatCommandContainer::USatAPI exiting" )
-    return *iUSatAPI;
-    }
-
-// -----------------------------------------------------------------------------
-// CSatCommandContainer::SystemState
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-MSatSystemState& CSatCommandContainer::SystemState()
-    {
-    LOG( NORMAL,
-        "SATENGINE: CSatCommandContainer::SystemState calling-exiting" )
-    return *iSystemState;
-    }
-
-// -----------------------------------------------------------------------------
-// CSatCommandContainer::SatUiHandler
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-MSatSUiClientHandler& CSatCommandContainer::SatUiHandler()
-    {
-    LOG( NORMAL,
-        "SATENGINE: CSatCommandContainer::SatUiHandler calling-exiting" )
-    return iSatUiHandler;
-    }
-
-// -----------------------------------------------------------------------------
-// CSatCommandContainer::RegisterL
-// Forwards the registeration to TSatEventMediator
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CSatCommandContainer::RegisterL(
-    MSatEventObserver* aObserver, // Event observer
-    TSatEvent aEvent ) // Event which is observerd
-    {
-    LOG( NORMAL, "SATENGINE: CSatCommandContainer::RegisterL calling" )
-
-    iEventMediator.RegisterL( aObserver, aEvent );
-
-    LOG( NORMAL, "SATENGINE: CSatCommandContainer::RegisterL exiting" )
-    }
-
-// -----------------------------------------------------------------------------
-// CSatCommandContainer::NotifyEvent
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CSatCommandContainer::NotifyEvent( TSatEvent aEvent )
-    {
-    LOG( NORMAL, "SATENGINE: CSatCommandContainer::NotifyEvent calling" )
-
-    iEventMediator.Notify( aEvent );
-
-    LOG( NORMAL, "SATENGINE: CSatCommandContainer::NotifyEvent exiting" )
-    }
-
-// -----------------------------------------------------------------------------
-// CSatCommandContainer::UnregisterEvent
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CSatCommandContainer::UnregisterEvent(
-    MSatEventObserver* aObserver, // Observer of the event
-    TSatEvent aEvent ) // Event
-    {
-    LOG( NORMAL, "SATENGINE: CSatCommandContainer::UnregisterEvent calling" )
-
-    iEventMediator.Unregister( aObserver, aEvent );
-
-    LOG( NORMAL, "SATENGINE: CSatCommandContainer::UnregisterEvent exiting" )
-    }
-
-// -----------------------------------------------------------------------------
-// CSatCommandContainer::UnregisterEvent
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CSatCommandContainer::UnregisterEventObserver(
-    MSatEventObserver* aObserver )
-    {
-    LOG( NORMAL,
-        "SATENGINE: CSatCommandContainer::UnregisterEventObserver calling" )
-
-    iEventMediator.Unregister( aObserver );
-
-    LOG( NORMAL,
-        "SATENGINE: CSatCommandContainer::UnregisterEventObserver exiting" )
-    }
-
-// -----------------------------------------------------------------------------
-// CSatCommandContainer::NumberOfExecutingCommandHandlers
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CSatCommandContainer::NumberOfExecutingCommandHandlers()
-    {
-    LOG( NORMAL,
-        "SATENGINE: CSatCommandContainer::NumberOfExecutingCommandHandlers \
-        calling" )
-
-    TInt result( 0 );
-    TInt count( 0 );
-    if ( iCmdHandlers )
-        {
-        LOG( NORMAL,
-        "SATENGINE: CSatCommandContainer::NumberOfExecutingCommandHandlers \
-        iCmdHandlers true" )
-        // Gets the count of command handlers
-        // if the list is already available.
-        count = iCmdHandlers->Count();
-        }
-    LOG2( NORMAL, "CSatCommandContainer::NumberOfExecutingCommandHandlers \
-          count: %i", count )
-    for ( TInt i = 0; i < count; i++ )
-        {
-        CSatCommandHandler* handler = iCmdHandlers->At( i );
-        __ASSERT_ALWAYS( handler, PanicSatEngine( ESatEngineNullPointer ) );
-
-        // If command handler is not active then it has received command
-        // from sim.
-        if ( handler->IsCommandExecuting() )
-            {
-            result++;
-            }
-        }
-
-    LOG2( NORMAL,
-        "SATENGINE: CSatCommandContainer::NumberOfExecutingCommandHandlers \
-        exiting: %i", result )
-    return result;
-    }
-
-// -----------------------------------------------------------------------------
-// CSatCommandContainer::SatAppName
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-const TDesC& CSatCommandContainer::SatAppName() const
-    {
-    LOG( NORMAL, "SATENGINE: CSatCommandContainer::SatAppName calling-exiting" )
-    return *iSatAppName;
-    }
-
-// -----------------------------------------------------------------------------
-// CSatCommandContainer::BipApnName
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-const TDesC& CSatCommandContainer::BipApnName() const
-    {
-    LOG( NORMAL, "SATENGINE: CSatCommandContainer::BipApnName calling-exiting" )
-    return iSatBipName;
-    }
-
-// -----------------------------------------------------------------------------
-// CSatCommandContainer::RestoreSatAppNameL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CSatCommandContainer::RestoreSatAppNameL()
-    {
-    LOG( NORMAL, "SATENGINE: CSatCommandContainer::RestoreSatAppNameL calling" )
-    if ( !iIsCmccSim )
-        {
-        LOG( NORMAL,
-            "SATENGINE: CSatCommandContainer::RestoreSatAppNameL name reset" )
-        CreateSatAppNameL( R_QTN_SAT_LOG_TITLE );
-        }
-    LOG( NORMAL, "SATENGINE: CSatCommandContainer::RestoreSatAppNameL exiting" )
-    }
-
-// -----------------------------------------------------------------------------
-// CSatCommandContainer::SetSatAppNameL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CSatCommandContainer::SetSatAppNameL(
-    const TDesC& aName ) // New sat app name
-    {
-    LOG( NORMAL, "SATENGINE: CSatCommandContainer::SetSatAppNameL calling" )
-
-    if ( !iIsCmccSim )
-        {
-        LOG( NORMAL, "SATENGINE: CSatCommandContainer::SetSatAppNameL \
-        iIsCmccSim false" )
-        HBufC* temp = aName.AllocL();
-        delete iSatAppName;
-        iSatAppName = temp;
-        }
-
-    LOG( NORMAL, "SATENGINE: CSatCommandContainer::SetSatAppNameL exiting" )
-    }
-
-// -----------------------------------------------------------------------------
-// CSatCommandContainer::RefreshSubSessions
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-const RPointerArray<MSatRefreshSubSession>&
-    CSatCommandContainer::RefreshSubSessions()
-    {
-    LOG( NORMAL,
-        "SATENGINE: CSatCommandContainer::RefreshSubSessions calling-exiting" )
-    return iSessions.RefreshSubSessions();
-    }
-
-// -----------------------------------------------------------------------------
-// CSatCommandContainer::RegisterServiceRequestL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CSatCommandContainer::RegisterServiceRequestL(
-    TSatServerRequest aRequest,
-    TSatServerRequest aResponse,
-    MSatCommand* aCommand )
-    {
-    LOG( NORMAL,
-        "SATENGINE: CSatCommandContainer::RegisterServiceRequestL calling" )
-
-    // First, check is there service request handler already with the same
-    // request.If it exists, change command handler
-    const TInt reqs( iServiceReqs->Count() );
-    TBool requestHandled( EFalse );
-    LOG2( NORMAL, "CSatCommandContainer::RegisterServiceRequestL \
-          reqs: %i", reqs )
-    for ( TInt i = 0; i < reqs; i++ )
-        {
-        CSatClientServiceReq* req = iServiceReqs->At( i );
-        __ASSERT_ALWAYS( req, PanicSatEngine( ESatEngineNullPointer ) );
-
-        if ( req->IsMyRequest( aRequest ) )
-            {
-            req->SetCommandHandler( aCommand );
-            requestHandled = ETrue;
-            i = reqs; // to end for-loop
-            }
-        }
-
-    // Check was service request found
-    if ( !requestHandled )
-        {
-        LOG( NORMAL, "SATENGINE: CSatCommandContainer::\
-        RegisterServiceRequestL requestHandled false" )
-        // Not found, add new
-        CSatClientServiceReq* servReq = CSatClientServiceReq::NewL( 
-            aRequest, aResponse, aCommand, *this );
-        CleanupStack::PushL( servReq );
-        iServiceReqs->AppendL( servReq );
-        CleanupStack::Pop( servReq );
-        }
-
-    LOG( NORMAL,
-        "SATENGINE: CSatCommandContainer::RegisterServiceRequestL exiting" )
-    }
-
-// -----------------------------------------------------------------------------
-// CSatCommandContainer::ServiceRequests
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CArrayPtrFlat<CSatClientServiceReq>*
-    CSatCommandContainer::ServiceRequests()
-    {
-    LOG( NORMAL,
-        "SATENGINE: CSatCommandContainer::ServiceRequests calling-exiting" )
-    return iServiceReqs;
-    }
-
-// -----------------------------------------------------------------------------
-// CSatCommandContainer::EventMonitors
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-MSatEventMonitorContainer* CSatCommandContainer::EventMonitors()
-    {
-    LOG( NORMAL,
-        "SATENGINE: CSatCommandContainer::EventMonitors calling-exiting" )
-    return iEventMonitors;
-    }
-
-// -----------------------------------------------------------------------------
-// CSatCommandContainer::SimSubscriberId
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-MSatSSimSubscriberId& CSatCommandContainer::SimSubscriberId()
-    {
-    LOG( NORMAL,
-        "SATENGINE: CSatCommandContainer::SimSubscriberId calling-exiting" )
-    return *iSimSubscriberId;
-    }
-
-// -----------------------------------------------------------------------------
-// CSatCommandContainer::BipUtils
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-MSatBIPUtils& CSatCommandContainer::BipUtils()
-    {
-    LOG( NORMAL,
-        "SATENGINE: CSatCommandContainer::BipUtils calling-exiting" )
-    return *CreateAndGetBIPUtils();
-    }
-
-// -----------------------------------------------------------------------------
-// CSatCommandContainer::BipEventNotifier
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-MSatBIPEventNotifier& CSatCommandContainer::BipEventNotifier()
-    {
-    LOG( NORMAL,
-        "SATENGINE: CSatCommandContainer::BipEventNotifier calling-exiting" )
-    return *CreateAndGetBIPUtils();
-    }
-
-// -----------------------------------------------------------------------------
-// CSatCommandContainer::MultiModeApi
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-MSatMultiModeApi& CSatCommandContainer::MultiModeApi()
-    {
-    LOG( NORMAL,
-        "SATENGINE: CSatCommandContainer::MultiModeApi calling-exiting" )
-    return *iMultiModeApi;
-    }
-
-// -----------------------------------------------------------------------------
-// CSatCommandContainer::CustomApi
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-RMmCustomAPI* CSatCommandContainer::CustomApi()
-    {
-    LOG( NORMAL,
-        "SATENGINE: CSatCommandContainer::CustomApi calling-exiting" )
-    return iMultiModeApi->CustomApi();
-    }
-
-// -----------------------------------------------------------------------------
-// CSatCommandContainer::RaiseSatEvent
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CSatCommandContainer::RaiseSatEvent( const TDesC8& aData )
-    {
-    LOG( NORMAL, "SATENGINE: CSatCommandContainer::RaiseSatEvent calling" )
-
-    CSatMediatorEventProvider* medEvent =
-        CreateAndGetSatMediatorEventProvider();
-    TInt retVal( KErrNone );
-    if ( medEvent )
-        {
-        LOG( NORMAL, "SATENGINE: CSatCommandContainer::RaiseSatEvent \
-        medEvent true" )
-        retVal = medEvent->RaiseSatEvent( aData );
-        }
-
-    LOG2( NORMAL,"SATENGINE: CSatCommandContainer::RaiseSatEvent exiting, \
-          retVal: %d", retVal )
-    return retVal;
-    }
-
-// -----------------------------------------------------------------------------
-// CSatCommandContainer::CoverUiSupported()
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CSatCommandContainer::CoverUiSupported()
-    {
-    LOG( NORMAL, "SATENGINE: CSatCommandContainer::CoverUiSupported calling" )
-
-    CSatMediatorEventProvider* medEvent = CreateAndGetSatMediatorEventProvider();
-    TBool supported( EFalse );
-    if ( medEvent )
-        {
-        LOG( NORMAL, "SATENGINE: CSatCommandContainer::CoverUiSupported \
-        medEvent true" )
-        supported = medEvent->CoverUiSupported();
-        }
-
-    LOG2( NORMAL, "SATENGINE: CSatCommandContainer::CoverUiSupported exiting,\
-          supported: %d", supported )
-    return supported;
-    }
-
-// -----------------------------------------------------------------------------
-// CSatCommandContainer::CreateAsyncToSyncHelperL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-MSatAsyncToSync* CSatCommandContainer::CreateAsyncToSyncHelper()
-    {
-    MSatAsyncToSync* wrapper = new CSatSActiveWrapper();
-    LOG( NORMAL, "SATENGINE: CSatCommandContainer::\
-            CreateAsyncToSyncHelperL calling - exiting" )
-    return wrapper;
-    }
-
-// -----------------------------------------------------------------------------
-// CSatCommandContainer::StateChanged
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CSatCommandContainer::StateChanged( const TInt aValue )
-    {
-    LOG( NORMAL, "SATENGINE: CSatCommandContainer::StateChanged calling" )
-    CheckStartupState( aValue );
-    LOG( NORMAL, "SATENGINE: CSatCommandContainer::StateChanged exiting" )
-    }
-
-// -----------------------------------------------------------------------------
-// CSatCommandContainer::CSatCommandContainer
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CSatCommandContainer::CSatCommandContainer(
-    MSatSSessions& aSessions,
-    TSatEventMediator& aEventMediator,
-    MSatSUiClientHandler& aSatUiHandler ) :
-    iSessions( aSessions ),
-    iEventMediator( aEventMediator ),
-    iSatUiHandler( aSatUiHandler ),
-    iSatMediatorEvent( NULL )
-    {
-    LOG( NORMAL,
-       "SATENGINE: CSatCommandContainer::CSatCommandContainer calling-exiting" )
-    }
-
-// -----------------------------------------------------------------------------
-// CSatCommandContainer::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CSatCommandContainer::ConstructL()
-    {
-    LOG( NORMAL, "SATENGINE: CSatCommandContainer::ConstructL calling" )
-
-    iIsCmccSim = EFalse;
-    CreateSatAppNameL( R_QTN_SAT_LOG_TITLE );
-
-    // Register for ui events in order to keep track if user or command
-    // has launched the ui.
-    iEventMediator.RegisterL( this, MSatUtils::ESatUiClosed );
-    iEventMediator.RegisterL( this, MSatUtils::ECmccSimDetected );
-
-    // Set these pointers to NULL because their value is checked
-    // before initialization...
-    iSapObserver = NULL;
-    iCmdHandlers = NULL;
-    iProfileObserver = NULL;
-
-    // Create pointer array for service request handlers
-    iServiceReqs = new( ELeave )CArrayPtrFlat<CSatClientServiceReq>( 1 );
-
-    iMultiModeApi = CSatMultiModeApi::NewL();
-    
-    // By default, we use extended errors
-    iMultiModeApi->RaiseErrorGranularity();
-
-    iUSatAPI = new( ELeave )TUSatAPI();
-    TInt error = iUSatAPI->Connect( *iMultiModeApi );
-
-    // Create SystemState.
-    iSystemState = 
-            TSatSystemStateFactory::CreateSystemStateL( *iMultiModeApi );
-
-    // Create event monitor container.
-    iEventMonitors = CSatEventMonitorContainer::NewL( *iUSatAPI, *this );
-
-    // Check did the conneciton to phone passed.
-    if ( KErrNone == error )
-        {
-        LOG( NORMAL, "SATENGINE: CSatCommandContainer::ConstructL connection \
-             to phone" )
-        iStartupPhase = ETrue;
-        // Start important plugins
-        StartImportantCommandHandlersL();
-
-        // Start listening system's state
-        iStartupChangeObserver =
-            TSatSystemStateFactory::CreateStartupChangeNotifierL( *this );
-        CheckStartupState( iStartupChangeObserver->GetValueInt() );
-
-        if ( iStartupPhase )
-            {
-            LOG( NORMAL, "SATENGINE: CSatCommandContainer::ConstructL \
-            iStartupPhase true" )
-            iStartupChangeObserver->NotifyChangeL();
-            }
-
-        }
-
-    // Create Subscriber id handler.
-    iSimSubscriberId = 
-              CSatSSimSubscriberId::NewL( *iMultiModeApi, iEventMediator );
-    iSimSubscriberId->Start();
-
-    // Create SatMediatorEventProvider. Will register SAT Cover UI events
-    // if cover UI is supported.
-    CreateAndGetSatMediatorEventProvider();
-
-    TSecurityPolicy readPolicy( ECapabilityReadUserData );
-    TSecurityPolicy writePolicy( ECapabilityWriteUserData );
-
-    // Define properties in P&S key for icon support
-    error = RProperty::Define( KPSUidSatServerInternal,
-        KSatAppClosedUsingEndKey, RProperty::EInt, readPolicy, writePolicy );
-        
-    LOG2( NORMAL, "CSatUiActionPerformer::ConstructL \
-        define KSatAppClosedUsingEndKey and return: %d", error )
-    
-    // Publish P&S key for icon support
-    error = RProperty::Set( KPSUidSatServerInternal, KSatAppClosedUsingEndKey,
-        KSatAppTerminatedNormal );
-    
-    LOG2( SIMPLE, "SATENGINE: CSatCommandContainer::ConstructL \
-          P&S key: %i", KSatAppTerminatedNormal )
-        
-    LOG2( NORMAL, "CSatUiActionPerformer::ConstructL \
-        publish KSatAppClosedUsingEndKey and return: %d", error )
-    LOG( NORMAL, "SATENGINE: CSatCommandContainer::ConstructL exiting" )
-    }
-// -----------------------------------------------------------------------------
-// CSatCommandContainer::CreateSatAppNameL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CSatCommandContainer::CreateSatAppNameL( const TInt aResourceId )
-    {
-    LOG( NORMAL, "SATENGINE: CSatCommandContainer::CreateSatAppNameL calling" )
-
-    // Open the RFs session.
-    RFs fs;
-
-    User::LeaveIfError( fs.Connect() );
-
-    // Push close operation in tbe cleanup stack
-    CleanupClosePushL( fs );
-
-    RResourceFile resFile;
-    // Backslashes are already defined in resource file, not needed here.
-    TBuf<KSizeOfBuf> buf( KResourceDrive );
-    buf.Append( KDC_RESOURCE_FILES_DIR );
-    buf.Append( KSatServerRsc );
-
-    TFileName fileName( buf );
-
-    BaflUtils::NearestLanguageFile( fs, fileName );
-
-    // Open the resource file
-    resFile.OpenL( fs, fileName );
-
-    // Push close operation in the cleanup stack
-    CleanupClosePushL( resFile );
-
-    resFile.ConfirmSignatureL( ESatSResourceSignature );
-
-    // Reads a resource structure with memory allocation.
-    HBufC8* dataBuffer = resFile.AllocReadLC( aResourceId );
-
-    TResourceReader resReader;
-    resReader.SetBuffer( dataBuffer );
-
-    // Reads a string with memory allocation
-    iSatAppName = resReader.ReadHBufCL();
-    iSatBipName.Copy( SatAppName() );
-
-    // dataBuffer
-    CleanupStack::PopAndDestroy( dataBuffer );
-    // resFile, Calls resFile.Close()
-    // fs, Calls fs.Close
-    CleanupStack::PopAndDestroy( KCreateSatAppNamePop );
-
-    LOG( NORMAL, "SATENGINE: CSatCommandContainer::CreateSatAppNameL exiting" )
-    }
-
-// -----------------------------------------------------------------------------
-// CSatCommandContainer::CreateAndGetBIPUtilsL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CSatBIPUtils* CSatCommandContainer::CreateAndGetBIPUtils()
-    {
-    LOG( NORMAL,
-        "SATENGINE: CSatCommandContainer::CreateAndGetBIPUtils calling" )
-    // If pointer is null, create new
-    if ( !iBipUtils )
-        {
-        LOG( NORMAL, "SATENGINE: CSatCommandContainer::CreateAndGetBIPUtilsL \
-            Creating BIP Utils" )
-        // TRAP this, We will panic, if this is NULL
-        TInt err( KErrNone );
-        TRAP( err, iBipUtils = CSatBIPUtils::NewL( *this ) );
-        LOG2( NORMAL, "SATENGINE: CSatCommandContainer::\
-                CreateAndGetBIPUtilsL BIP Utils creation status: %i", err )
-        }
-
-    __ASSERT_ALWAYS( iBipUtils, PanicSatEngine( ESatEngineNullPointer ) );
-
-    LOG( NORMAL,
-        "SATENGINE: CSatCommandContainer::CreateAndGetBIPUtils exiting" )
-    return iBipUtils;
-    }
-
-// -----------------------------------------------------------------------------
-// CSatCommandContainer::CreateAndGetMediatorEventProvider
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CSatMediatorEventProvider* CSatCommandContainer::
-                                        CreateAndGetSatMediatorEventProvider()
-    {
-    LOG( NORMAL,
-        "SATENGINE: CSatCommandContainer::CreateAndGetSatMediatorEventProvider \
-        calling" )
-
-    // If pointer is null, create new
-    if ( !iSatMediatorEvent )
-        {
-        LOG( NORMAL, "SATENGINE: CSatCommandContainer::\
-                        CreateAndGetSatMediatorEventProvider \
-                            Creating CreateAndGetSatMediatorEventProvider" )
-        // TRAP this, We will panic, if this is NULL
-        TInt err( KErrNone );
-        TRAP( err, iSatMediatorEvent = CSatMediatorEventProvider::NewL() );
-        LOG2( NORMAL, "SATENGINE: CSatCommandContainer::\
-            CreateAndGetCSatMediatorEventProvider status: %i", err )
-        }
-
-    __ASSERT_ALWAYS(
-        iSatMediatorEvent, PanicSatEngine( ESatEngineNullPointer ) );
-
-    LOG( NORMAL,
-        "SATENGINE: CSatCommandContainer::CreateAndGetSatMediatorEventProvider \
-        exiting" )
-    return iSatMediatorEvent;
-    }
-
-// -----------------------------------------------------------------------------
-// CSatCommandContainer::StartImportantCommandHandlersL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CSatCommandContainer::StartImportantCommandHandlersL()
-    {
-    LOG( NORMAL, "SATENGINE: CSatCommandContainer::\
-        StartImportantCommandHandlersL calling" )
-
-    // Create command handlers.
-    RImplInfoPtrArray satCommandImplementations;
-    CleanupStack::PushL( 
-        TCleanupItem( CleanupPointerArray, &satCommandImplementations ) );
-    REComSession::ListImplementationsL( KSatInterfaceDefinitionUid,
-        satCommandImplementations );
-    
-    // Container for commands
-    const TInt cmdCount( satCommandImplementations.Count() );
-    LOG2( NORMAL, "SATENGINE: CSatCommandContainer::\
-        StartImportantCommandHandlersL Command handler count: %d", cmdCount )
-
-    // Check are there any command implementations
-    if ( cmdCount > 0 )
-        {
-        iCmdHandlers
-            = new ( ELeave ) CArrayPtrFlat<CSatCommandHandler>( cmdCount );
-
-        CSatCommandHandler* setUpEventListCmd = NULL;
-        // Add all important command handlers to list.
-
-        // This will return KErrNotFound if the implementation is not included
-        // in configurations
-        TRAPD( err, setUpEventListCmd =
-            CSatCommandHandler::NewL( KSetUpEventListUid, this ) );
-
-        // Check does the command exist.
-        if ( setUpEventListCmd && KErrNone == err )
-            {
-            LOG( NORMAL, "SATENGINE: CSatCommandContainer::\
-            StartImportantCommandHandlersL KErrNone == err" )
-            setUpEventListCmd->Start();
-            CleanupStack::PushL( setUpEventListCmd );
-            iCmdHandlers->AppendL( setUpEventListCmd );
-            CleanupStack::Pop( setUpEventListCmd );
-            }
-        }
-    
-    CleanupStack::PopAndDestroy( &satCommandImplementations );
-    LOG( NORMAL, "SATENGINE: CSatCommandContainer::\
-        StartImportantCommandHandlersL exiting" )
-    }
-
-// -----------------------------------------------------------------------------
-// CSatCommandContainer::CheckStartupState
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CSatCommandContainer::CheckStartupState( const TInt aValue )
-    {
-    LOG2( NORMAL, "SATENGINE: CSatCommandContainer::CheckStartupState calling\
-        with value %d", aValue )
-    if ( ESwStateNormalRfOn == aValue )
-        {
-        TRAP_IGNORE( StartCommandHandlersL() )
-        iStartupChangeObserver->CancelNotify();
-        // Startup phase is over
-        iStartupPhase = EFalse;
-        }
-    LOG( NORMAL, "SATENGINE: CSatCommandContainer::CheckStartupState exiting" )
-    }
-
-// End Of File