taskswitcher/contextengine/hgfswserver/client/inc/hgfswclient.h
changeset 2 08c6ee43b396
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/taskswitcher/contextengine/hgfswserver/client/inc/hgfswclient.h	Mon Jan 18 20:10:36 2010 +0200
@@ -0,0 +1,132 @@
+/*
+ * ===========================================================================
+ *  Name        : hgfswclient.h
+ *  Part of     : Huriganes / Fast Swap Server
+ *  Description : Client API
+ *  Version     : %version: 6 %
+ *
+ *  Copyright © 2008 Nokia Corporation.
+ *  This material, including documentation and any related 
+ *  computer programs, is protected by copyright controlled by 
+ *  Nokia Corporation. All rights are reserved. Copying, 
+ *  including reproducing, storing, adapting or translating, any 
+ *  or all of this material requires the prior written consent of 
+ *  Nokia Corporation. This material also contains confidential 
+ *  information which may not be disclosed to others without the 
+ *  prior written consent of Nokia Corporation.
+ * ===========================================================================
+ */
+
+#ifndef __HGFSWCLIENT_H
+#define __HGFSWCLIENT_H
+
+#include <e32std.h>
+#include "hgfswentry.h"
+
+class MHgFswObserver;
+class CHgFswClientImpl;
+
+/**
+ * Client API for the Huriganes Fast Swap Server.
+ */    
+NONSHARABLE_CLASS( CHgFswClient ) : public CBase
+    {
+public:
+    /**
+     * Possible values for aType argument of ForegroundAppUid().
+     */
+    enum THgFswFgAppType
+        {
+        /**
+         * Means that even when the foreground app has another app embedded
+         * into it the uid of the container application will be returned.
+         */
+        EUseStandaloneUid,
+        /**
+         * Means that if the foreground app has another app embedded
+         * into it then the returned uid will be the uid of the embedded
+         * app.
+         */
+        EUseEmbeddedUid
+        };
+
+    /**
+     * Creates a new instance.
+     * @capability LocalServices
+     */
+    IMPORT_C static CHgFswClient* NewL();
+    
+    /**
+     * Creates a new instance.
+     * @capability LocalServices
+     */
+    IMPORT_C static CHgFswClient* NewLC();
+    
+    /**
+     * Destructor.
+     */
+    ~CHgFswClient();
+    
+    /**
+     * Queries the fast swap content from the server and
+     * copies it into the given array.
+     * Previous content of the array is removed (by using ResetAndDestroy).
+     * @param   aDst    array to which data is stored
+     * @capability LocalServices
+     */
+    IMPORT_C void GetContentL( RHgFswArray& aDst );
+    
+    /**
+     * Subscribes for continuous notifications about changes in the
+     * fast swap content.
+     * The notifications are generated until CancelSubscribe is called
+     * or the instance is destroyed.
+     * @capability LocalServices
+     */
+    IMPORT_C void Subscribe( MHgFswObserver& aObserver );
+    
+    /**
+     * Cancels the subscription for change notifications.
+     * @capability LocalServices
+     */
+    IMPORT_C void CancelSubscribe();
+    
+    /**
+     * Tries to close the application with the given id.
+     * @capability LocalServices
+     */
+    IMPORT_C void CloseApp( TInt aWgId );
+    
+    /**
+     * Brings the application with the given id into foreground.
+     * @capability LocalServices
+     */
+    IMPORT_C void SwitchToApp( TInt aWgId );
+
+    /**
+     * Returns the uid of the foreground app or KNullUid if something goes wrong.
+     *
+     * Will never return hidden apps, only those which can also be seen in the
+     * array returned by GetContentL.
+     *
+     * However the handling of embedded applications might be different:
+     * (as opposed to GetContentL)
+     * If aType == EUseEmbeddedUid:
+     *   This function will always return the embedded application's uid, unlike
+     *   GetContentL which will always refer to the container app (except for the
+     *   screenshot of course). This means that the returned uid is simply the
+     *   uid belonging to the first (non-hidden, etc.) window group from the window group list.
+     * If aType == EUseStandaloneUid:
+     *   Embedded applications are ignored and the returned uid is the app uid belonging
+     *   to the first parentless window group.
+     */
+    IMPORT_C TUid ForegroundAppUid( THgFswFgAppType aType );
+
+private:
+    CHgFswClient();
+    void ConstructL();
+
+    CHgFswClientImpl* iImpl;
+    };
+
+#endif