--- a/satengine/SatServer/EventMonitors/src/csatbrowserwsmonitor.cpp Mon Aug 23 15:50:31 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,324 +0,0 @@
-/*
-* Copyright (c) 2002-2008 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: Monitor for browser termination
-*
-*/
-
-
-// INCLUDE FILES
-#include <etelsat.h>
-#include <apgtask.h>
-#include <DocumentHandler.h> //KWmlcHandler
-#include "CSatBrowserThreadMonitor.h"
-#include "csatbrowserwsmonitor.h"
-#include "SatLog.h"
-
-// ======== MEMBER FUNCTIONS ========
-
-// -----------------------------------------------------------------------------
-// CSatBrowserWSMonitor::CSatBrowserWSMonitor
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CSatBrowserWSMonitor::CSatBrowserWSMonitor() :
- CActive( CActive::EPriorityStandard )
- {
- LOG( SIMPLE,
- "SATEVENTMONITORS: CSatBrowserWSMonitor::CSatBrowserWSMonitor calling" )
-
- CActiveScheduler::Add( this );
-
- LOG( SIMPLE,
- "SATEVENTMONITORS: CSatBrowserWSMonitor::CSatBrowserWSMonitor exiting" )
- }
-
-// Destructor
-CSatBrowserWSMonitor::~CSatBrowserWSMonitor()
- {
- LOG( SIMPLE,
- "SATEVENTMONITORS: CSatBrowserWSMonitor::~CSatBrowserWSMonitor calling" )
-
- // Cancel any outstanding requests.
- Cancel();
-
- if ( iThreadMonitor )
- {
- iThreadMonitor->DoCancelMonitor();
- delete iThreadMonitor;
- iThreadMonitor = NULL;
- }
-
- iObserver = NULL;
-
- iWg.Close();
- iWsSession.Close();
-
- LOG( SIMPLE,
- "SATEVENTMONITORS: CSatBrowserWSMonitor::~CSatBrowserWSMonitor exiting" )
- }
-
-// -----------------------------------------------------------------------------
-// CSatBrowserWSMonitor::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CSatBrowserWSMonitor* CSatBrowserWSMonitor::NewL()
- {
- LOG( SIMPLE,
- "SATEVENTMONITORS: CSatBrowserWSMonitor::NewL calling" )
-
- CSatBrowserWSMonitor* self =
- new ( ELeave ) CSatBrowserWSMonitor();
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( /*self*/ );
-
- LOG( SIMPLE,
- "SATEVENTMONITORS: CSatBrowserWSMonitor::NewL exiting" )
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CSatBrowserWSMonitor::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CSatBrowserWSMonitor::ConstructL()
- {
- LOG( SIMPLE,
- "SATEVENTMONITORS: CSatBrowserWSMonitor::ConstructL calling" )
- // Window session is created when event is requested
- LOG( SIMPLE,
- "SATEVENTMONITORS: CSatBrowserWSMonitor::ConstructL exiting" )
- }
-
-// -----------------------------------------------------------------------------
-// CSatBrowserWSMonitor::DoCancelMonitor
-// -----------------------------------------------------------------------------
-//
-void CSatBrowserWSMonitor::DoCancelMonitor()
- {
- LOG( SIMPLE, "SATEVENTMONITORS: CSatBrowserWSMonitor::\
- DoCancelMonitor calling" )
-
- Cancel();
-
- LOG( SIMPLE, "SATEVENTMONITORS: CSatBrowserWSMonitor::\
- DoCancelMonitor exiting" )
- }
-
-// -----------------------------------------------------------------------------
-// CSatBrowserWSMonitor::StartMonitor
-// -----------------------------------------------------------------------------
-//
-TInt CSatBrowserWSMonitor::StartMonitor(
- MSatBrowserWSObserver* aObserver )
- {
- LOG( SIMPLE,
- "SATEVENTMONITORS: CSatBrowserWSMonitor::StartMonitor calling" )
- TInt err( KErrNone );
-
- if ( !iWGCreated )
- {
- // First time called, create needed services
- LOG( SIMPLE,"SATEVENTMONITORS: CSatBrowserWSMonitor::StartMonitor \
- connect to WsSession " )
- err = iWsSession.Connect();
- if ( KErrNone == err )
- {
- // Creates a window group
- TRAP( err, CreateWGL() );
- }
- }
-
- iObserver = aObserver;
-
- if ( !err )
- {
- // All fine, start monitoring
- Start();
- }
-
- LOG2( SIMPLE,
- "SATEVENTMONITORS: CSatBrowserWSMonitor::StartMonitor exiting err=%d",\
- err )
-
- return err;
- }
-
-// -----------------------------------------------------------------------------
-// CSatBrowserWSMonitor::Start
-// -----------------------------------------------------------------------------
-//
-void CSatBrowserWSMonitor::Start()
- {
- LOG( SIMPLE, "SATEVENTMONITORS: CSatBrowserWSMonitor::Start calling" )
-
- Cancel();
-
- // It migth be null already
- if ( iThreadMonitor )
- {
- LOG( SIMPLE,
- "SATEVENTMONITORS: CSatBrowserWSMonitor::Start iThreadMonitor true" )
- delete iThreadMonitor;
- iThreadMonitor = NULL;
- }
-
- iWsSession.EventReady( &iStatus );
- SetActive();
-
- LOG( SIMPLE, "SATEVENTMONITORS: CSatBrowserWSMonitor::Start exiting" )
- }
-
-// -----------------------------------------------------------------------------
-// CSatBrowserWSMonitor::RunL
-// Checks is the WML Browser launched and creates browser thread monitor to
-// monitor browsers thread death.
-// -----------------------------------------------------------------------------
-//
-void CSatBrowserWSMonitor::RunL()
- {
- LOG( SIMPLE,
- "SATEVENTMONITORS: CSatBrowserWSMonitor::RunL calling" )
-
- // Get the status of this object.
- const TInt errCode( iStatus.Int() );
- LOG2( SIMPLE,
- "SATEVENTMONITORS: CSatBrowserWSMonitor::RunL errCode: %d",
- errCode )
- if ( KErrNone == errCode )
- {
- // UID Code for WML Browser in S60.
- const TUid uidWmlBrowser( TUid::Uid( KWmlcHandler ) );
- TWsEvent event;
- iWsSession.GetEvent( event );
- TApaTaskList taskList( iWsSession );
-
- if ( taskList.FindApp( uidWmlBrowser ).Exists() )
- {
- LOG( SIMPLE,
- "SATEVENTMONITORS: CSatBrowserWSMonitor::RunL task exists" )
- const TApaTask task = taskList.FindApp( uidWmlBrowser );
- const TThreadId threadID = task.ThreadId();
- RThread thread;
- User::LeaveIfError ( thread.Open( threadID, EOwnerProcess ) );
-
- // Create Browser thread monitor.
- iThreadMonitor = CSatBrowserThreadMonitor::NewL( thread );
-
- // Call the active object to monitor for this threads death.
- iThreadMonitor->StartMonitor( this );
- }
- else
- {
- LOG( SIMPLE,
- "SATEVENTMONITORS: CSatBrowserWSMonitor::RunL start" )
- // Renew the request.
- Start();
- }
- }
- else if ( KErrCancel != errCode )
- {
- // Renew the request.
- Start();
- }
- else
- {
- LOG( SIMPLE,
- "SATEVENTMONITORS: CSatBrowserWSMonitor::RunL cancelled" )
- }
-
- LOG( SIMPLE,
- "SATEVENTMONITORS: CSatBrowserWSMonitor::RunL exiting" )
- }
-
-// -----------------------------------------------------------------------------
-// CSatBrowserWSMonitor::DoCancel
-// -----------------------------------------------------------------------------
-//
-void CSatBrowserWSMonitor::DoCancel()
- {
- LOG( SIMPLE,
- "SATEVENTMONITORS: CSatBrowserWSMonitor::DoCancel calling" )
-
- if ( iThreadMonitor )
- {
- LOG( SIMPLE,
- "SATEVENTMONITORS: CSatBrowserWSMonitor::DoCancel iThreadMonitor true" )
- iThreadMonitor->DoCancelMonitor();
- }
-
- // Cancel the outstanding request.
- iWsSession.EventReadyCancel();
-
- LOG( SIMPLE,
- "SATEVENTMONITORS: CSatBrowserWSMonitor::DoCancel exiting" )
- }
-
-// -----------------------------------------------------------------------------
-// CSatBrowserWSMonitor::NotifyBrowserTerminated
-// Sends event download notification to SAT Engine.
-// -----------------------------------------------------------------------------
-//
-void CSatBrowserWSMonitor::NotifyBrowserTerminated(
- const RSat::TBrowserTerminationCause aCause )
- {
- LOG( SIMPLE, "SATEVENTMONITORS: CSatBrowserWSMonitor::\
- NotifyBrowserTerminated calling" )
-
- // Notify termination to observer.
- iObserver->NotifyBrowserTerminated( aCause );
-
- LOG( SIMPLE, "SATEVENTMONITORS: CSatBrowserWSMonitor::\
- NotifyBrowserTerminated exiting" )
- }
-
-// -----------------------------------------------------------------------------
-// CSatBrowserWSMonitor::CreateWGL
-// Creates a window group and hides it form the UI.
-// -----------------------------------------------------------------------------
-//
-void CSatBrowserWSMonitor::CreateWGL()
- {
- LOG( SIMPLE,
- "SATEVENTMONITORS: CSatBrowserWSMonitor::CreateWGL calling" )
-
- // -1 means the window will never be visible.
- const TInt KWindowGroupPriority( -1 );
-
- RWindowGroup wg( iWsSession );
- // Make a handle from the address of window group obj.
- User::LeaveIfError( wg.Construct( reinterpret_cast<TUint32>( &wg ) ) );
- // Enable group changed events.
- User::LeaveIfError( wg.EnableGroupChangeEvents() );
-
- // Get the ordinal pos of this window group.
- const TInt ordPos( wg.OrdinalPosition() );
- // Set SAT so its never shown in the UI.
- wg.SetOrdinalPosition( ordPos , KWindowGroupPriority );
-
- // Needs to be a member variable. Must be closed in destructor.
- // Otherwise can't monitor what has been opened.
- iWg = wg;
-
- // Set SAT Server hidden now.
- iWsSession.Flush();
- iWGCreated = ETrue;
- LOG( SIMPLE,
- "SATEVENTMONITORS: CSatBrowserWSMonitor::CreateWGL exiting" )
- }
-
-// End of file