iaupdate/IAD/api/client/inc/iaupdatemanager.h
changeset 0 ba25891c3a9e
child 18 f9033e605ee2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/iaupdate/IAD/api/client/inc/iaupdatemanager.h	Thu Dec 17 08:51:10 2009 +0200
@@ -0,0 +1,273 @@
+/*
+* 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:   This file contains the header file of the CIAUpdateManager class 
+*
+*/
+
+
+
+#ifndef IA_UPDATE_MANAGER_H
+#define IA_UPDATE_MANAGER_H
+
+
+//INCLUDES
+#include <e32base.h>
+#include <e32std.h>
+#include <coemain.h>
+
+#include "iaupdateclient.h"
+
+//FORWARD DECLARATIONS
+class CIAUpdateParameters;
+class MIAUpdateObserver;
+class CEikonEnv;
+
+
+
+
+/**
+ * CIAUpdateManager object provides methods for update actions.
+ * Updating will be targeted to the update items that qualify the requirements
+ * of CIAUpdateParameters objects. In asynchronous actions, the callback 
+ * functions of MIAUpdateObserver objects will be informed about the progress 
+ * of update actions.
+ *
+ * @see MIAUpdateObserver
+ * @see CIAUpdateParameters
+ * @see CIAUpdate
+ *
+ * @since S60 v3.2
+ */
+NONSHARABLE_CLASS( CIAUpdateManager ) : public CActive, public MCoeForegroundObserver
+    {
+
+public:
+
+    /**
+     * These values inform what operation has been requested.
+     *
+     * @since S60 v3.2
+     */
+    enum TIAUpdateType
+        {
+        /**
+         * No operation is going on.
+         */ 
+        EIAUpdateIdle,       
+        
+        /**
+         * Update check has been requested.
+         */
+        EIAUpdateCheck,
+
+        /**
+         * Update operation has been requested.
+         */
+        EIAUpdateUpdate,     
+        
+        /**
+         * Update query has been requested.
+         */
+        EIAUpdateQuery   
+        };
+
+
+    /**
+     * @param aObserver Callback functions of the observer are called
+     * when operations progress.    
+     * @return CIAUpdateManager* Pointer to the created CIAUpdateManager 
+     * object that can be used for update actions.
+     *
+     * @since S60 v3.2
+     */
+    static CIAUpdateManager* NewL( MIAUpdateObserver& aObserver );
+    
+    /**
+     * @see NewL
+     *
+     * @since S60 v3.2
+     */
+    static CIAUpdateManager* NewLC( MIAUpdateObserver& aObserver );
+    
+
+    /**
+     * Destructor
+     *
+     * @since S60 v3.2
+     */
+    virtual ~CIAUpdateManager();
+    
+
+    /** 
+     * @see CIAUpdate::CheckUpdates
+     *
+     * @since S60 v3.2
+     */
+    void CheckUpdates( const CIAUpdateParameters& aUpdateParameters );
+    
+        
+    /** 
+     * @see CIAUpdate::ShowUpdates
+     *
+     * @since S60 v3.2
+     */
+    void ShowUpdates( const CIAUpdateParameters& aUpdateParameters );
+    
+
+    /** 
+     * @see CIAUpdate::Update
+     *
+     * @since S60 v3.2
+     */
+    void Update( const CIAUpdateParameters& aUpdateParameters );
+    
+     /** 
+     * @see CIAUpdate::UpdateQuery
+     *
+     * @since S60 v3.2
+     */   
+    void UpdateQuery();
+
+
+protected: // CActive
+
+    /**
+     * @see CActive::DoCancel
+     *
+     * @since S60 v3.2
+     */
+    virtual void DoCancel();
+
+    /**
+     * When the server side has finished operation, the CActive object will
+     * be informed about it, and as a result RunL will be called. This function
+     * well inform the observer that the operation has been completed.
+     * @see CActive::RunL
+     *
+     * @since S60 v3.2
+     */
+    virtual void RunL();
+
+
+protected:
+
+    /**
+     * @see NewL
+     *
+     * @since S60 v3.2
+     */
+    CIAUpdateManager( MIAUpdateObserver& aObserver );
+    
+    /**
+     * @see NewL
+     *
+     * @since S60 v3.2
+     */
+    virtual void ConstructL();
+
+
+    /**
+     * Resets all the result variables to their default values.
+     *
+     * @since S60 v3.2
+     */
+    virtual void ResetResults();
+
+
+    /**
+     * @return ETrue if an operation is going on. Else EFalse.
+     *
+     * @since S60 v3.2
+     */
+    TBool BusyCheck() const;
+
+
+    /**
+     * @return RIAUpdateClient& Handles the client server communication.
+     *
+     * @since S60 v3.2
+     */
+    RIAUpdateClient& UpdateClient();
+
+
+    /**
+     * @return MUpdateObserver& Observer who will be informed about the
+     * completion of the operations.
+     *
+     * @since S60 v3.2
+     */
+    MIAUpdateObserver& Observer() const;
+
+
+    /**
+     * @return TIAUpdateType Informs what kind of operation is going on.
+     *
+     * @since S60 v3.2
+     */
+    TIAUpdateType UpdateType() const;
+    
+    /**
+     * @param aUpdateType Informs what kind of operation is going on.
+     *
+     * @since S60 v3.2
+     */
+    void SetUpdateType( TIAUpdateType aUpdateType );
+
+
+private:
+
+    // Prevent these if not implemented
+    CIAUpdateManager( const CIAUpdateManager& aObject );
+    CIAUpdateManager& operator =( const CIAUpdateManager& aObject );
+    
+private: // Functions from MCoeForegroundObserver
+
+	/**
+	* Handles the application coming to the foreground.
+	*/
+	void HandleGainingForeground();
+
+	/**
+	* Handles the application going into the background.
+	*/
+	void HandleLosingForeground();
+
+
+private: // data
+
+    // Observer who will be informed about the completion of the operations. 
+    MIAUpdateObserver& iObserver;    
+    
+    // Handles the client server communication.
+    RIAUpdateClient iUpdateClient;
+
+    // Informs what kind of operation is going on.
+    TIAUpdateType iUpdateType;
+
+    // This is used to storage the success count values for update operations.
+    TInt iSuccessCount;
+    
+    // This is used to storage the fail count values for update operations.
+    TInt iFailCount;
+    
+    // This is used to storage the cancel count values for update operations.
+    TInt iCancelCount;
+
+    TBool iUpdateNow;
+    
+    CEikonEnv* iEikEnv; //not owned
+
+    };
+
+#endif // IA_UPDATE_IMPL_H