satengine/SatServer/Engine/src/CSatSRefreshSubSession.cpp
changeset 46 2fa1fa551b0b
parent 42 35488577e233
child 48 78df25012fda
--- a/satengine/SatServer/Engine/src/CSatSRefreshSubSession.cpp	Mon Aug 23 15:50:31 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,771 +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 the refresh sub-session IPC.
-*
-*/
-
-
-#include    <e32base.h>
-#include    "MSatUtils.h"
-#include    "CSatSRefreshSubSession.h"
-#include    "SatSOpcodes.h"
-#include    "CSatSSession.h"
-#include    "EnginePanic.h"
-#include    "CSatSServer.h"
-#include    "SatLog.h"
-
-const TInt KClientQueryDelay = 1000000; // 1 second.
-const TInt KClientNotifyDelay = 60000000; // 1 minute.
-
-// ======== MEMBER FUNCTIONS ========
-
-// -----------------------------------------------------------------------------
-// CSatSRefreshSubSession::CSatSRefreshSubSession
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CSatSRefreshSubSession::CSatSRefreshSubSession(
-    CSatSSession& aSession,
-    TSatEventMediator& aEventMediator ) :
-    CSatSSubSession( aSession ),
-    iEventMediator( aEventMediator ),
-    iClientQueryPending( EFalse ),
-    iClientNotifyPending( EFalse ),
-    iClientWaitingRefresh( EFalse )
-    {
-    LOG( SIMPLE,
-        "SATENGINE: CSatSRefreshSubSession::CSatSRefreshSubSession \
-        calling - exiting" )
-    }
-
-// -----------------------------------------------------------------------------
-// CSatSRefreshSubSession::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CSatSRefreshSubSession::ConstructL()
-    {
-    LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::ConstructL calling" )
-
-    CSatSServer* server =
-        const_cast<CSatSServer*>(
-            static_cast<const CSatSServer*>( iSession.Server() ) );
-    server->AddL( this );
-
-    LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::ConstructL exiting" )
-    }
-
-// -----------------------------------------------------------------------------
-// CSatSRefreshSubSession::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CSatSRefreshSubSession* CSatSRefreshSubSession::NewL(
-    CSatSSession& aSession,
-    TSatEventMediator& aEventMediator )
-    {
-    LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::NewL calling" )
-
-    CSatSRefreshSubSession* self =
-        new( ELeave ) CSatSRefreshSubSession( aSession, aEventMediator );
-
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-
-    LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::NewL exiting" )
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CSatSRefreshSubSession::~CSatSRefreshSubSession()
-// Destructor.
-// -----------------------------------------------------------------------------
-//
-CSatSRefreshSubSession::~CSatSRefreshSubSession()
-    {
-    LOG( SIMPLE,
-        "SATENGINE: CSatSRefreshSubSession::~CSatSRefreshSubSession calling" )
-
-    CSatSServer* server =
-        const_cast<CSatSServer*>(
-            static_cast<const CSatSServer*>( iSession.Server() ) );
-    server->Remove( this );
-
-    // Remove Client Query timer.
-    if ( iQueryTimer )
-        {
-        iQueryTimer->Cancel();
-        delete iQueryTimer;
-        iQueryTimer = NULL;
-        }
-
-    // Remove Client Notify timer.
-    if ( iNotifyTimer )
-        {
-        iNotifyTimer->Cancel();
-        delete iNotifyTimer;
-        iNotifyTimer = NULL;
-        }
-
-    LOG( SIMPLE,
-        "SATENGINE: CSatSRefreshSubSession::~CSatSRefreshSubSession exiting" )
-    }
-
-// -----------------------------------------------------------------------------
-// CSatSRefreshSubSession::HandleCommandL
-// Handles the refresh sub-session requests.
-// -----------------------------------------------------------------------------
-//
-void CSatSRefreshSubSession::HandleCommandL( const RMessage2& aMessage )
-    {
-    LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::HandleCommandL calling" )
-
-    switch ( aMessage.Function() )
-        {
-        case ESatSRefreshAllowed:
-            {
-            LOG( NORMAL, "SATENGINE:   Command: ESatSRefreshAllowed" )
-            // Client's response to refresh query.
-            RefreshAllowed( aMessage );
-            break;
-            }
-
-        case ESatSNotifyAllowRefresh:
-            {
-            LOG( NORMAL, "SATENGINE:   Command: ESatSNotifyAllowRefresh" )
-            // Client is ready for refresh query.
-            NotifyRefreshAllowed( aMessage );
-            break;
-            }
-
-        case ESatSNotityAllowRefreshCancel:
-            {
-            LOG( NORMAL, "SATENGINE:   Command: ESatSNotityAllowRefreshCancel" )
-            // Client cancels the refresh query.
-            CancelNotifyAllowRefresh( aMessage );
-            break;
-            }
-
-        case ESatSNotifyRefresh:
-            {
-            LOG( NORMAL, "SATENGINE:   Command: ESatSNotifyRefresh" )
-            // Client is ready for refresh.
-            NotifyRefresh( aMessage );
-            break;
-            }
-
-        case ESatSCancelNotifyRefresh:
-            {
-            LOG( NORMAL, "SATENGINE:   Command: ESatSCancelNotifyRefresh" )
-            // Client cancels the refresh.
-            CancelNotifyRefresh( aMessage );
-            break;
-            }
-
-        case ESatSRefreshEFRead:
-            {
-            LOG( NORMAL, "SATENGINE:   Command: ESatSRefreshEFRead" )
-            // Client has completed refresh.
-            CompleteRefresh( aMessage );
-            break;
-            }
-
-        default:
-            {
-            LOG( NORMAL, "SATENGINE:   Unexpected command: ggg" )
-            // A wrong message was sent.
-            iSession.PanicClient( aMessage, ESatSBadDescriptor );
-            }
-        }
-
-    LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::HandleCommandL exiting" )
-    }
-
-// -----------------------------------------------------------------------------
-// CSatSRefreshSubSession::RefreshAllowed
-// Sends the client's response of refresh query to SatServer.
-// -----------------------------------------------------------------------------
-//
-void CSatSRefreshSubSession::RefreshAllowed( const RMessage2& aMessage )
-    {
-    LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::RefreshAllowed calling" )
-
-    // Handle reply only when we are waiting for it.
-    // It is possible, that query has timed out and we got a late response.
-    if ( iClientQueryPending )
-        {
-        LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::RefreshAllowed \
-        iClientQueryPending true" )
-        iClientQueryPending = EFalse;
-
-        // Stop timer, client replied.
-        if ( iQueryTimer )
-            {
-            LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::RefreshAllowed \
-            iQueryTimer true" )
-            iQueryTimer->Cancel();
-            }
-
-        TBool allow( EFalse );
-        TPckg<TBool> allowPckg( allow );
-        TRAPD( err, aMessage.ReadL( 0, allowPckg ) );
-        LOG2( SIMPLE, "SATENGINE: CSatSRefreshSubSession::RefreshAllowed \
-              err: %i", err )
-        if ( KErrNone == err )
-            {
-            //lint -e{774} Allow updated through allowPckg in ReadL.
-            if ( allow )
-                {
-                LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::\
-                     RefreshAllowed allow refresh" )
-                iEventMediator.Notify( MSatUtils::ERefreshAllowed );
-                iClientWaitingRefresh = ETrue;
-                }
-            else
-                {
-                LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::\
-                     RefreshAllowed don't allow refresh" )
-                iEventMediator.Notify( MSatUtils::ERefreshNotAllowed );
-                }
-            }
-        else
-            {
-            iSession.PanicClient( aMessage, ESatSBadDescriptor );
-            }
-        }
-
-    aMessage.Complete( KErrNone );
-
-    LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::RefreshAllowed exiting" )
-    }
-
-// -----------------------------------------------------------------------------
-// CSatSRefreshSubSession::NotifyRefresh
-// Stores the NotifyRefresh request information for later completion.
-// -----------------------------------------------------------------------------
-//
-void CSatSRefreshSubSession::NotifyRefresh( const RMessage2& aMessage )
-    {
-    LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::NotifyRefresh calling" )
-
-    if ( !iNotifyRefreshPending )
-        {
-        iNotifyRefreshPending = ETrue;
-        iNotifyRefreshMessage = aMessage;
-        }
-    else
-        {
-        LOG( SIMPLE, "SATENGINE:   Request already received" )
-        aMessage.Complete( KErrInUse );
-        }
-
-    LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::NotifyRefresh exiting" )
-    }
-
-// -----------------------------------------------------------------------------
-// CSatSRefreshSubSession::CancelNotifyRefresh
-// Cancels the refresh notification
-// -----------------------------------------------------------------------------
-//
-void CSatSRefreshSubSession::CancelNotifyRefresh( const RMessage2& aMessage )
-    {
-    LOG( SIMPLE,
-        "SATENGINE: CSatSRefreshSubSession::CancelNotifyRefresh calling" )
-
-    if ( iNotifyRefreshPending )
-        {
-        LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::CancelNotifyRefresh\
-        iNotifyRefreshPending true" )
-        iNotifyRefreshPending = EFalse;
-        iNotifyRefreshMessage.Complete( KErrCancel );
-        }
-
-    aMessage.Complete( KErrNone );
-
-    LOG( SIMPLE,
-        "SATENGINE: CSatSRefreshSubSession::CancelNotifyRefresh exiting" )
-    }
-
-// -----------------------------------------------------------------------------
-// CSatSRefreshSubSession::NotifyRefreshAllowed
-// Storest the refresh notification for later completion
-// -----------------------------------------------------------------------------
-//
-void CSatSRefreshSubSession::NotifyRefreshAllowed( const RMessage2& aMessage )
-    {
-    LOG( SIMPLE,
-        "SATENGINE: CSatSRefreshSubSession::NotifyRefreshAllowed calling" )
-
-    if ( !iRefreshAllowPending )
-        {
-        iRefreshAllowPending = ETrue;
-        iRefreshAllowMessage = aMessage;
-        }
-    else
-        {
-        LOG( SIMPLE, "SATENGINE:   Request already received" )
-        aMessage.Complete( KErrInUse );
-        }
-
-    LOG( SIMPLE,
-        "SATENGINE: CSatSRefreshSubSession::NotifyRefreshAllowed exiting" )
-    }
-
-// -----------------------------------------------------------------------------
-// CSatSRefreshSubSession::CancelNotifyAllowRefresh
-// Cancels the refresh notification.
-// -----------------------------------------------------------------------------
-//
-void CSatSRefreshSubSession::CancelNotifyAllowRefresh(
-    const RMessage2& aMessage )
-    {
-    LOG( SIMPLE,
-        "SATENGINE: CSatSRefreshSubSession::CancelNotifyAllowRefresh calling" )
-
-    if ( iRefreshAllowPending )
-        {
-        LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::\
-        CancelNotifyAllowRefresh iRefreshAllowPending true" )
-        iRefreshAllowPending = EFalse;
-        iRefreshAllowMessage.Complete( KErrCancel );
-        }
-
-    aMessage.Complete( KErrNone );
-
-    LOG( SIMPLE,
-        "SATENGINE: CSatSRefreshSubSession::CancelNotifyAllowRefresh exiting" )
-    }
-
-// -----------------------------------------------------------------------------
-// CSatSRefreshSubSession::CompleteRefresh
-// Sends the client's completion to SatServer.
-// -----------------------------------------------------------------------------
-//
-void CSatSRefreshSubSession::CompleteRefresh( const RMessage2& aMessage )
-    {
-    LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::CompleteRefresh calling" )
-
-    // Handle completion only when we are waiting for it.
-    // It is possible, that it has timed out and we got a late response.
-    if ( iClientNotifyPending )
-        {
-        LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::CompleteRefresh \
-        iClientNotifyPending true" )
-        iClientNotifyPending = EFalse;
-
-        // Stop timer, client replied.
-        if ( iNotifyTimer )
-            {
-            LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::CompleteRefresh \
-            iNotifyTimer true" )
-            iNotifyTimer->Cancel();
-            }
-
-        TBool additionEFRead( EFalse );
-        TPckg<TBool> additionEFReadPckg( additionEFRead );
-        TRAPD( err, aMessage.ReadL( 0, additionEFReadPckg ) );
-        if ( KErrNone == err )
-            {
-            //lint -e{774} additionEFRead updated through additionEFReadPckg.
-            if ( additionEFRead )
-                {
-                LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::\
-                     CompleteRefresh additionEFRead true" )
-                iEventMediator.Notify( MSatUtils::ERefreshAdditionalEFRead );
-                }
-            else
-                {
-                LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::\
-                     CompleteRefresh additionEFRead false" )
-                iEventMediator.Notify( MSatUtils::ERefreshEFRead );
-                }
-            }
-        else
-            {
-            LOG( SIMPLE, "SATENGINE:   Bad descriptor" )
-            iEventMediator.Notify( MSatUtils::ERefreshEFRead );
-            }
-        }
-
-    aMessage.Complete( KErrNone );
-
-    LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::CompleteRefresh exiting" )
-    }
-
-// -----------------------------------------------------------------------------
-// CSatSRefreshSubSession::QueryClient
-// Notifies the client that response for refresh query has to be made.
-// -----------------------------------------------------------------------------
-//
-void CSatSRefreshSubSession::QueryClient(
-    const RSat::TRefreshV2& aRefresh )
-    {
-    LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::QueryClient calling" )
-    TBool allowRefreshNow( ETrue );
-
-    if ( iRefreshAllowPending )
-        {
-        if ( VerifyObservedFiles( aRefresh ) )
-            {
-            // Write the refresh information to client.
-            TPckg<RSat::TRefreshFileList> fileListPckg( aRefresh.iFileList );
-            TPckg<RSat::TRefreshType> typePckg( aRefresh.iType );
-
-            TRAPD(
-                err,
-                iRefreshAllowMessage.WriteL( 0, fileListPckg );
-                iRefreshAllowMessage.WriteL( 1, typePckg ); )
-
-            if ( KErrNone == err )
-                {
-                LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::QueryClient \
-                KErrNone == err" )
-                iRefreshAllowPending = EFalse;
-                iRefreshAllowMessage.Complete( err );
-                iClientQueryPending = ETrue;
-                allowRefreshNow = EFalse;
-
-                // Start timer to prevent jam, when client will not reply.
-                if ( iQueryTimer )
-                    {
-                    LOG( SIMPLE, "CSatSRefreshSubSession::QueryClient \
-                         iQueryTimer true" )
-                    iQueryTimer->Cancel();
-                    }
-                else
-                    {
-                    // Create Client Query timer when first time used.
-                    TRAP(
-                        err,
-                        iQueryTimer =
-                            CPeriodic::NewL( CActive::EPriorityStandard ); )
-                    }
-
-                if ( ( KErrNone == err ) && iQueryTimer )
-                    {
-                    LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::\
-                    QueryClient start iQueryTimer" )
-                    TCallBack callback( TimerQueryCallback, this );
-                    iQueryTimer->Start(
-                        KClientQueryDelay,
-                        KClientQueryDelay,
-                        callback );
-                    }
-                }
-            else
-                {
-                LOG2( SIMPLE, "SATENGINE:   QueryClient error: %i", err )
-                }
-            }
-        }
-
-    if ( allowRefreshNow )
-        {
-        LOG( SIMPLE, "CSatSRefreshSubSession::QueryClient \
-        allowRefreshNow true" )
-        iEventMediator.Notify( MSatUtils::ERefreshAllowed );
-        }
-
-    LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::QueryClient exiting" )
-    }
-
-// -----------------------------------------------------------------------------
-// CSatSRefreshSubSession::NotifyClient
-// Notifies the client that refresh has happened.
-// -----------------------------------------------------------------------------
-//
-void CSatSRefreshSubSession::NotifyClient(
-    const RSat::TRefreshV2& aRefresh )
-    {
-    LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::NotifyClient calling" )
-    TBool completeRefreshNow( ETrue );
-
-    if ( iNotifyRefreshPending && iClientWaitingRefresh )
-        {
-        TPckg<RSat::TRefreshFileList> fileListPckg( aRefresh.iFileList );
-
-        #ifdef ENABLE_SAT_LOGGING
-        TInt fileCount ( aRefresh.iFileList.Length() );
-        LOG2( NORMAL, "SATENGINE:   Refresh file count: %d", fileCount )
-        for ( TInt fileIndex = 0; fileIndex < fileCount; fileIndex++ )
-            {
-            LOG2( NORMAL, "SATENGINE:     Refresh file : %x",
-                aRefresh.iFileList[ fileIndex ] )
-            }
-        #endif
-
-        TPckg<RSat::TRefreshType> typePckg( aRefresh.iType );
-
-        TRAPD(
-            err,
-            iNotifyRefreshMessage.WriteL( 0, fileListPckg );
-            iNotifyRefreshMessage.WriteL( 1, typePckg ); )
-
-        LOG2( SIMPLE, "SATENGINE:   NotifyClient error: %i", err )
-        if ( KErrNone == err )
-            {
-            // ESimReset confirmation will not be waited.
-            if ( RSat::ESimReset != aRefresh.iType )
-                {
-                LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::NotifyClient\
-                RSat::ESimReset != aRefresh.iType" )
-                iClientNotifyPending = ETrue; // Waiting client
-                completeRefreshNow = EFalse; // Client must complete this
-
-                // Start timer to prevent jam, when client will not restart.
-                if ( iNotifyTimer )
-                    {
-                    LOG( SIMPLE, "CSatSRefreshSubSession::NotifyClient \
-                         iNotifyTimer true" )
-                    iNotifyTimer->Cancel();
-                    }
-                else
-                    {
-                    // Create Client Notify timer when first time used.
-                    TRAP(
-                        err,
-                        iNotifyTimer =
-                            CPeriodic::NewL( CActive::EPriorityStandard ); )
-                    }
-
-                if ( ( KErrNone == err ) && iNotifyTimer )
-                    {
-                    LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::\
-                    NotifyClient start iNotifyTimer" )
-                    TCallBack callback( TimerNotifyCallback, this );
-                    iNotifyTimer->Start(
-                        KClientNotifyDelay,
-                        KClientNotifyDelay,
-                        callback );
-                    }
-                }
-            }
-
-        iNotifyRefreshPending = EFalse;
-        iClientWaitingRefresh = EFalse;
-        iNotifyRefreshMessage.Complete( err );
-        }
-
-    if ( completeRefreshNow )
-        {
-        LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::NotifyClient \
-        completeRefreshNow true" )
-        iEventMediator.Notify( MSatUtils::ERefreshEFRead );
-        }
-
-    LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::NotifyClient exiting" )
-    }
-
-// -----------------------------------------------------------------------------
-// CSatSRefreshSubSession::NotifyClientCancel
-// Notifies the client that refresh has been cancelled.
-// -----------------------------------------------------------------------------
-//
-void CSatSRefreshSubSession::NotifyClientCancel()
-    {
-    LOG( SIMPLE,
-        "SATENGINE: CSatSRefreshSubSession::NotifyClientCancel calling" )
-
-    // Notify only clients having accepted Refresh and waiting it.
-    if ( iNotifyRefreshPending && iClientWaitingRefresh )
-        {
-        LOG( SIMPLE,
-        "SATENGINE: CSatSRefreshSubSession::NotifyClientCancel wait refresh" )
-        RSat::TRefreshFileList fileList;
-        fileList.Zero();
-        TPckg<RSat::TRefreshFileList> fileListPckg( fileList );
-        TPckg<RSat::TRefreshType> typePckg( RSat::ERefreshTypeNotSet );
-        iNotifyRefreshPending = EFalse;
-        iClientWaitingRefresh = EFalse;
-
-        TRAPD(
-            err,
-            iNotifyRefreshMessage.WriteL( 0, fileListPckg );
-            iNotifyRefreshMessage.WriteL( 1, typePckg ) );
-        
-        LOG2( SIMPLE, "SATENGINE: CSatSRefreshSubSession::NotifyClientCancel error: %i", err )
-
-        iNotifyRefreshMessage.Complete( err );
-        }
-
-    LOG( SIMPLE,
-        "SATENGINE: CSatSRefreshSubSession::NotifyClientCancel exiting" )
-    }
-
-// -----------------------------------------------------------------------------
-// CSatSRefreshSubSession::VerifyObservedFiles
-// Checks whether current client is interested about this refresh.
-// -----------------------------------------------------------------------------
-//
-TBool CSatSRefreshSubSession::VerifyObservedFiles(
-    const RSat::TRefreshV2& aRefresh ) const
-    {
-    LOG( SIMPLE,
-        "SATENGINE: CSatSRefreshSubSession::VerifyObservedFiles calling" )
-    TBool isObserved( ETrue );
-
-    // Only pure file refresh is checked.
-    if ( RSat::EFileChangeNotification == aRefresh.iType )
-        {
-        // Fetch observed files from clients message.
-        RSat::TRefreshFileList observedFiles;
-        observedFiles.Zero();
-        TPckg<RSat::TRefreshFileList> observedPckg( observedFiles );
-        TRAPD( err, iRefreshAllowMessage.ReadL( 0, observedPckg ) );
-        LOG2( SIMPLE, "SATENGINE:   ReadL failed: %i", err )
-        if ( KErrNone == err )
-            {
-            TInt observeFileCount( observedFiles.Length() );
-            LOG2( SIMPLE, "SATENGINE: CSatSRefreshSubSession::\
-                  VerifyObservedFiles observeFileCount: %i", observeFileCount )
-            if ( observeFileCount > 0 )
-                {
-                LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::\
-                VerifyObservedFiles observeFileCount > 0" )
-                // Observed files found, check whether any of them has been
-                // updated.
-                isObserved = EFalse;
-                for ( TInt fileIndex = 0;
-                      ( fileIndex < observeFileCount ) && !isObserved;
-                      fileIndex++ )
-                    {
-                    if ( KErrNotFound !=
-                         aRefresh.iFileList.Locate(
-                            observedFiles[ fileIndex ] ) )
-                        {
-                        isObserved = ETrue;
-                        LOG( SIMPLE, "SATENGINE:   Observed file found" )
-                        }
-                    }
-                }
-            }
-        }
-
-    LOG( SIMPLE,
-        "SATENGINE: CSatSRefreshSubSession::VerifyObservedFiles exiting" )
-    return isObserved;
-    }
-
-// -----------------------------------------------------------------------------
-// CSatSRefreshSubSession::TimerQueryCallback
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CSatSRefreshSubSession::TimerQueryCallback(
-    TAny* aRefreshSubSession )
-    {
-    LOG( SIMPLE,
-        "SATENGINE: CSatSRefreshSubSession::TimerQueryCallback calling" )
-
-    CSatSRefreshSubSession* handler =
-        static_cast<CSatSRefreshSubSession*>( aRefreshSubSession );
-
-    if ( handler )
-        {
-        LOG( SIMPLE,
-        "SATENGINE: CSatSRefreshSubSession::TimerQueryCallback handler true" )
-        handler->QueryTimeout();
-        }
-
-    LOG( SIMPLE,
-        "SATENGINE: CSatSRefreshSubSession::TimerQueryCallback exiting" )
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// CSatSRefreshSubSession::QueryTimeout
-// Timeout handler for the client's response of refresh query.
-// -----------------------------------------------------------------------------
-//
-void CSatSRefreshSubSession::QueryTimeout()
-    {
-    LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::QueryTimeout calling" )
-
-    if ( iQueryTimer )
-        {
-        LOG( SIMPLE,
-        "SATENGINE: CSatSRefreshSubSession::QueryTimeout iQueryTimer true" )
-        iQueryTimer->Cancel();
-        }
-
-    // Handle reply timeout only when we are waiting for it.
-    if ( iClientQueryPending )
-        {
-        LOG( SIMPLE,
-        "SATENGINE: CSatSRefreshSubSession::QueryTimeout \
-        iClientQueryPending true" )
-        iClientQueryPending = EFalse;
-        iEventMediator.Notify( MSatUtils::ERefreshAllowed );
-        }
-
-    LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::QueryTimeout exiting" )
-    }
-
-// -----------------------------------------------------------------------------
-// CSatSRefreshSubSession::TimerNotifyCallback
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CSatSRefreshSubSession::TimerNotifyCallback(
-    TAny* aRefreshSubSession )
-    {
-    LOG( SIMPLE,
-        "SATENGINE: CSatSRefreshSubSession::TimerNotifyCallback calling" )
-
-    CSatSRefreshSubSession* handler =
-        static_cast<CSatSRefreshSubSession*>( aRefreshSubSession );
-
-    if ( handler )
-        {
-        LOG( SIMPLE,
-        "SATENGINE: CSatSRefreshSubSession::TimerNotifyCallback handler" )
-        handler->NotifyTimeout();
-        }
-
-    LOG( SIMPLE,
-        "SATENGINE: CSatSRefreshSubSession::TimerNotifyCallback exiting" )
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// CSatSRefreshSubSession::NotifyTimeout
-// Timeout handler for the client's response of refresh query.
-// -----------------------------------------------------------------------------
-//
-void CSatSRefreshSubSession::NotifyTimeout()
-    {
-    LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::NotifyTimeout calling" )
-
-    if ( iNotifyTimer )
-        {
-        LOG( SIMPLE, 
-        "SATENGINE: CSatSRefreshSubSession::NotifyTimeout iNotifyTimer true" )
-        iNotifyTimer->Cancel();
-        }
-
-    // Handle reply timeout only when we are waiting for it.
-    if ( iClientNotifyPending )
-        {
-        LOG( SIMPLE, 
-        "SATENGINE: CSatSRefreshSubSession::NotifyTimeout \
-        iClientNotifyPending" )
-        iClientNotifyPending = EFalse;
-        // On timeout we should assume no EFs read, as most typical for S60.
-        iEventMediator.Notify( MSatUtils::ERefreshEFRead );
-        }
-
-    LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::NotifyTimeout exiting" )
-    }