iaupdate/IAD/api/client/inc/iaupdateclient.h
changeset 0 ba25891c3a9e
child 18 f9033e605ee2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/iaupdate/IAD/api/client/inc/iaupdateclient.h	Thu Dec 17 08:51:10 2009 +0200
@@ -0,0 +1,206 @@
+/*
+* 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 RIAUpdateClient class 
+*
+*/
+
+
+
+#ifndef IA_UPDATE_CLIENT_H
+#define IA_UPDATE_CLIENT_H
+
+#include <AknServerApp.h> 
+#include <e32std.h>
+#include <e32cmn.h>
+
+class CIAUpdateParameters;
+
+/**
+ * RIAUpdateClient object provides methods to delegate update actions
+ * to the server side. Updating will be targeted to the update items that 
+ * qualify the requirements of CIAUpdateParameters objects. In asynchronous 
+ * actions, observers will be informed about the completion of update action.
+ * 
+ * Because this object is R-class, it does not provide constructor or destructor.
+ * Usage:
+ * - First, call Open-function.
+ * - Second, use update functions to start update.
+ * - Finally, user has to call Close-function to terminate object. 
+ *   Otherwise, memory leaks may occur.
+ *
+ * @see CIAUpdateParameters
+ * @see CIAUpdate
+ *
+ * @since S60 v3.2
+ */
+NONSHARABLE_CLASS( RIAUpdateClient ) : public RAknAppServiceBase 
+    {
+
+public:
+
+    /**
+     * Constructor.
+     */
+     
+     RIAUpdateClient();
+
+    /** 
+     * This function will open the update action.
+     *
+     * @note This has to be called before calling operation functions.
+     *
+     * @return System wide error code.
+     *
+     * @since S60 v3.2
+     */
+    TInt Open( TBool aToBackground );
+    
+    /** 
+     * Close releases the resources allocated by this class object.
+     * After Close is called, this R-class object may go out of scope.
+     *
+     * @note If Close is called before asynchronous operation has finished, 
+     * the operation will continue but callback functions of the observer
+     * will not be called when operation progresses. 
+     * 
+     * @since S60 v3.2
+     */
+    void Close();
+
+
+    /** 
+     * @see CIAUpdate::CheckUpdates
+     *
+     * @note The client server connection has to be opened by calling
+     * Open function before this function can be called.
+     *
+     * @param aAvailableUpdates Number of the updates that were found available.
+     * @param aStatus The status will be updated when the operation
+     * has been completed.
+     * @return Informs if the initialization of server request failed.
+     *         System wide error code. 
+     *
+     * @since S60 v3.2
+     */
+    TInt CheckUpdates( const CIAUpdateParameters& aUpdateParameters,
+                       TInt& aAvailableUpdates,
+                       TRequestStatus& aStatus );
+    
+        
+    /** 
+     * @see CIAUpdate::ShowUpdates
+     *
+     * @note The client server connection has to be opened by calling
+     * Open function before this function can be called.
+     *
+     * @param aNumberOfSuccessfullUpdates Number of the successfull updates 
+     *                                    that were done during the update.
+     * @param aNumberOfFailedUpdates Number of the failed updates 
+     *                               that were done during the update.
+     * @param aNumberOfCancelledUpdates Number of the cancelled updates 
+     *                                  during the update.     
+     * @param aStatus The status will be updated when the operation
+     * has been completed.
+     * @return Informs if the initialization of server request failed.
+     *         System wide error code. 
+     *
+     * @since S60 v3.2
+     */
+    TInt ShowUpdates( const CIAUpdateParameters& aUpdateParameters,
+                      TInt& aNumberOfSuccessfullUpdates,
+                      TInt& aNumberOfFailedUpdates,
+                      TInt& aNumberOfCancelledUpdates,
+                      TRequestStatus& aStatus );
+    
+
+        
+                 
+    /** 
+     * @see CIAUpdate::Update
+     *
+     * @note The client server connection has to be opened by calling
+     * Open function before this function can be called.
+     *
+     * @param aUpdateNow  Value depending on a user's choice
+     * @param aStatus The status will be updated when the operation
+     * has been completed.
+     * @return Informs if the initialization of server request failed.
+     *         System wide error code. 
+     *
+     * @since S60 v3.2
+     */
+    TInt UpdateQuery( TBool& aUpdateNow, TRequestStatus& aStatus );
+                      
+    
+    void BroughtToForeground();
+    
+    
+    /**
+     * Cancels the ongoing asynchronous operation.
+     * The active object that has started the update operation
+     * will be informed when the requested update operation 
+     * has been cancelled.
+     *
+     * @since S60 v3.2
+     */             
+    void CancelAsyncRequest();
+
+
+public: // RAknAppServiceBase
+
+    /**
+     * @see RAknAppServiceBase::ServiceUid
+     *
+     * @since S60 v3.2
+     */
+    TUid ServiceUid() const;
+
+
+private:
+
+    // These functions send the operation requests to the server.
+    
+    TInt SendCheckUpdatesRequest( TInt aUpdateFunction,
+                                  const CIAUpdateParameters& aUpdateParameters,
+                                  TInt& aCount,
+                                  TRequestStatus& aStatus );
+
+    TInt SendUpdateRequest( TInt aUpdateFunction,
+                            const CIAUpdateParameters& aUpdateParameters,
+                            TInt& aNumberOfSuccessfullUpdates,
+                            TInt& aNumberOfFailedUdpdates,
+                            TInt& aNumberOfCancelledUpdates,
+                            TRequestStatus& aStatus );
+    
+    void ConnectNewAppToBackgroundL( TUid aAppUid );
+    
+    void ServerName(TName& aServerName, TUid aAppServerUid, TUint aServerDifferentiator);
+    
+    TUint GenerateServerDifferentiatorAndName(TName& aServerName, TUid aAppServerUid);
+    
+                               
+private: //data
+
+    HBufC8* iData;
+    
+    TBool iConnected;
+    
+    TInt iOwnWgId;
+    
+    TPtr8 iPtr1;
+    TPtr8 iPtr2;
+    TPtr8 iPtr3;  
+    };
+
+#endif // IA_UPDATE_CLIENT_H