--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/omadm/omadmappui/inc/NSmlDMFotaModel.h Wed Sep 01 12:31:32 2010 +0100
@@ -0,0 +1,242 @@
+/*
+* Copyright (c) 2005 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: Implementation of DM UI component
+* This is part of omadmappui.
+*
+*/
+
+
+
+#ifndef CNSMLDMFOTAMODEL_H
+#define CNSMLDMFOTAMODEL_H
+
+// INCLUDES
+#include <fotaengine.h>
+
+#include "NSmlDMFotaView.h"
+// FORWARD DECLARATIONS
+class CNSmlDMSyncDocument;
+class RFotaEngineSession;
+// CLASS DECLARATION
+
+/**
+* Functionality required by the fota user interface.
+*
+* @lib NSmlDMSyncApp
+* @since Series 60 3.1
+*/
+class CNSmlDMFotaModel : public CBase
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ */
+ static CNSmlDMFotaModel* NewL( CNSmlDMSyncDocument* aDocument );
+
+ /**
+ * Destructor.
+ */
+ virtual ~CNSmlDMFotaModel();
+
+ public: // New functions
+
+ /**
+ * Retrieves the human readable name of the profile.
+ * @since Series 60 3.1
+ * @param aProfileId Profile identifier
+ * @param aProfileId Human readable name of the profile, or KNullDesC if not found.
+ * @return None
+ */
+ void GetProfileNameL( const TInt aProfileId,
+ HBufC* aProfileName ) const;
+
+ /**
+ * Retrieves the default fota profile identifier from
+ * the central repository.
+ * @since Series 60 3.1
+ * @param None
+ * @return Profile identifier
+ */
+ TInt DefaultFotaProfileIdL() const;
+
+ /**
+ * Saves the default fota profile identifier to the
+ * central repository.
+ * @since Series 60 3.1
+ * @param aProfileId Profile identifier.
+ * @return None
+ */
+ void SetDefaultFotaProfileIdL( const TInt aProfileId );
+
+ /**
+ * Sets the central repository key to indicate that the
+ * defined profile should be used to request firmware
+ * update.
+ * @since Series 60 3.1
+ * @param aProfileId Profile identifier.
+ * @return None
+ */
+ void EnableFwUpdRequestL( const TInt aProfileId );
+
+ /**
+ * Retrieves the device management profile names into a list.
+ * @since Series 60 3.1
+ * @param aItems Array into which the profile names are appended.
+ * @return None
+ */
+ void ReadProfileListL( CDesCArray* aItems,
+ CArrayFixFlat<TInt>* aProfileIdList );
+
+ /**
+ * Returns the index of the default fota profile in the
+ * given list of identifiers.
+ * @since Series 60 3.1
+ * @param aProfileIdList List of profile identifiers.
+ * @return Index of the default fota profile in the list.
+ */
+ TInt SelectDefaultProfileFromList(
+ const CArrayFixFlat<TInt>* aProfileIdList ) const;
+
+ /**
+ * Checks that the profile identifier is included in the
+ * devie management profiles list.
+ * @since Series 60 3.1
+ * @param aProfileIdList List of profile identifiers.
+ * @return Index of the default fota profile in the list.
+ */
+ TBool VerifyProfileL( const TInt aProfileId ) const;
+
+ /**
+ * Retrieves the list of firmware update packages known to
+ * the FOTA server component.
+ * @since Series 60 3.1
+ * @param None.
+ * @return Array that includes the package identifiers.
+ */
+ TInt RetrieveFwUpdPkgIdListL(TFotaState aState);
+
+ /**
+ * Checks if the FOTA server component has knowledge of firmware update
+ * packages that are in the given state.
+ * @since Series 60 3.1
+ * @param aState Package state to be searched for.
+ * @return Identifier of the package that has the given state, or
+ * KErrNotFound if none are found.
+ */
+ TInt FindFwUpdPkgWithStateL( TFotaState aState );
+
+ /**
+ * Initiates the instalklation of a firmware update package.
+ * @since Series 60 3.1
+ * @param aPkgId Identifier of the update package.
+ * @return error code.
+ */
+ TInt InitiateFwUpdInstall( TInt aPkgId, TInt aProfileId );
+
+ /**
+ * Continues the installation of a firmware update package.
+ * @since Series 60 3.2
+ * @param None.
+ * @return None.
+ */
+ void ContinueFwUpdInstall( );
+
+ /**
+ * Returns the version string of the current firmware.
+ * @since Series 60 3.1
+ * @param aVersionString The version string of the current firmware.
+ * @return Error code.
+ */
+ TInt CurrentFwVersionString( TDes& aVersionString );
+
+ /**
+ * Returns the time of the last successful firmware update.
+ * @since Series 60 3.1
+ * @param aVersionString The time of the last firmware update.
+ * @return Error code.
+ */
+ TInt LastUpdateTime( TTime& aTime );
+
+ /**
+ * Saves the current state of update packages.
+ * @param None.
+ * @return None.
+ */
+ void MarkFwUpdChangesStartL();
+
+ /**
+ * Checks if the state of update packages has changed since the saved
+ * situation.
+ * @param None.
+ * @return True if there are differences in pcakage identifiers or states.
+ */
+ TBool FwUpdStatesChangedL();
+
+ TFotaState GetCurrentFwUpdState();
+
+
+ public: // Functions from base classes
+
+ /**
+ * From ?base_class ?member_description.
+ * @since Series ?XX ?SeriesXX_version
+ * @param ?arg1 ?description
+ * @return ?description
+ */
+ //?type ?member_function( ?type ?arg1 );
+
+ protected: // New functions
+
+ /**
+ * ?member_description.
+ * @since Series ?XX ?SeriesXX_version
+ * @param ?arg1 ?description
+ * @return ?description
+ */
+ //?type ?member_function( ?type ?arg1 );
+
+ protected: // Functions from base classes
+
+ /**
+ * From ?base_class ?member_description
+ */
+ //?type ?member_function();
+
+ private:
+
+ /**
+ * C++ default constructor.
+ */
+ CNSmlDMFotaModel( CNSmlDMSyncDocument* aDocument );
+
+ /**
+ * By default Symbian 2nd phase constructor is private.
+ */
+ void ConstructL();
+
+ private: // Data
+
+ // Pointer to the application document instance.
+ CNSmlDMSyncDocument* iDocument;
+
+ // Is the data package download in progress.
+ TBool iDpDlInProgress;
+
+ RFotaEngineSession iFotaEngine;
+ };
+
+#endif // CNSMLDMFOTAMODEL_H
+
+// End of File