diff -r 63be7eb3fc78 -r f28ada11abbf wlanutilities/wlansniffer/model/inc/wsfapplauncher.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wlanutilities/wlansniffer/model/inc/wsfapplauncher.h Wed Sep 01 12:20:32 2010 +0100 @@ -0,0 +1,277 @@ +/* +* Copyright (c) 2007-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: Class header for CWsfAppLauncher +* +*/ + + + + +#ifndef C_WSFAPPLAUNCHER_H +#define C_WSFAPPLAUNCHER_H + +#include +#include + +class MWsfBrowserLaunchObserver; +class CRepository; + + +/** +* Browser launching states +*/ +enum TWsfLaunchState + { + EIdle, + EShuttingDown, + EStartingUp, + ECompleted, + EFinished + }; + + + +// CLASS DEFINITION +/** + * Class to manage browser launching and closure. + * + * @lib wsfmodel.lib + * @since S60 5.0 + */ +NONSHARABLE_CLASS( CWsfAppLauncher ): public CActive + { + public: // Constuctors and destructors + + /** + * Factory function. + * @since S60 5.0 + * @return Class instance + */ + IMPORT_C static CWsfAppLauncher* NewL(); + + /** + * Factory function. + * @since S60 5.0 + * @return Class instance + */ + IMPORT_C static CWsfAppLauncher* NewLC(); + + /** + * Destructor + * @since S60 5.0 + */ + virtual ~CWsfAppLauncher(); + + + private: //Constuctors + + /** + * Constructor + * @since S60 5.0 + */ + CWsfAppLauncher(); + + /** + * Second-phase constructor + * @since S60 5.0 + */ + void ConstructL(); + + + public: //New public functions + + /** + * Launches Browser application asynchronously using selected iap + * @since S60 5.0 + * @param aObserver Observer to be notified about launch completion + * @param aIapId IAP id passed as a parameter + */ + void LaunchBrowserL( MWsfBrowserLaunchObserver& aObserver, + TUint aIapId ); + + /** + * Launches Browser application asynchronously using selected iap and + * user defined URL + * @since S60 5.0 + * @param aObserver Observer to be notified about launch completion + * @param aIapId IAP id passed as a parameter + * @param aURL User defined WWW address to be used as start-up page + */ + void LaunchBrowserL( MWsfBrowserLaunchObserver& aObserver, + TUint aIapId, + const TDesC& aURL ); + + /** + * Switches Browser application to foreground + * @since S60 5.0 + */ + void ContinueBrowsingL(); + + /** + * Switches Browser application to foreground + * @since S60 5.0 + * @param aObserver Observer to be notified about launch completion + * @param aIapId IAP id passed as a parameter + */ + void ContinueBrowsingL( MWsfBrowserLaunchObserver& aObserver, + TUint aIapId ); + + /** + * Query launching state + * @since S60 5.0 + * @return Lauching state + */ + TWsfLaunchState Launching(); + + + /** + * Returns the IAP which was last passed to the browser + * @since S60 5.0 + * @return The IAP id passed to the browser. + */ + TUint32 BrowserIap() const; + + + private: // New private functions + + /** + * Kills browser application if the one is already lauched + * @since S60 5.0 + * @return ETrue if browser was killed, EFalse otherwise + */ + TBool KillBrowserIfAlreadyExists(); + + /** + * Launches the browser asynchronously. + * @since S60 5.0 + */ + void DoLaunchBrowserL(); + + /** + * Checks if Browser exists + * @since S60 5.0 + * @return ETrue if the browser exists + */ + TBool BrowserExists(); + + /** + * Checks what the default homepage is (URL) + * @since S60 5.0 + * @param aHomePageURL URL of the default homepage + * @return KErrNone if successful, KErrNotFound if HomePage is + * not defined + */ + TInt BrowserHomepage( TDes& aHomePageURL ); + + + private: // From CActive + + /** + * Implements cancellation of an outstanding request. + * @since S60 5.0 + */ + void DoCancel(); + + /** + * Handles an active object's request completion event. + * @since S60 5.0 + */ + void RunL(); + + /** + * Handles a leave occurring in RunL(). + * @since S60 5.0 + * @param aError Leave code + * @return aError + */ + TInt RunError( TInt aError ); + + + private: // data + + /** + * Observer to be notified about launch completion. Not owned. + */ + MWsfBrowserLaunchObserver* iObserver; + + /** + * Window session + */ + RWsSession iWsSession; + + /** + * IAP id to use + */ + TUint iIapId; + + /** + * State of browser launching + */ + TWsfLaunchState iLaunchState; + + /** + * Indicates whether to launch bookmarks page + * (if homepage is not set) + */ + TBool iLaunchBookMarks; + + /** + * Browser app's UID + */ + TUid iBrowserUid; + + /** + * Key number for browser's default homepage + */ + TUint iHomepageKey; + + /** + * Handle to a repository. Owned. + */ + CRepository* iRepository; + + /** + * URL of the homepage. Owned. + */ + HBufC* iURL; + + /** + * Timer to wait for browser startup etc. + */ + RTimer iTimer; + + /** + * Browser's cenrep key number for the homepage + */ + TUint iBrowserHomePageKey; + + /** + * Browser's cenrep key number for the starting page + */ + TUint iBrowserStartingPageKey; + + /** + * The id of the broser thread + */ + TThreadId iThreadId; + + /** + * The browser thread + */ + RThread iThread; + }; + + +#endif // C_WSFAPPLAUNCHER_H +