wlanutilities/wlansniffer/model/inc/wsfapplauncher.h
branchRCL_3
changeset 55 f28ada11abbf
--- /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 <e32std.h> 
+#include <w32std.h> 
+
+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
+