diff -r 000000000000 -r 3ce708148e4d omadm/omadmappui/inc/NSmlDMFotaModel.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/omadm/omadmappui/inc/NSmlDMFotaModel.h Thu Dec 17 08:40:12 2009 +0200 @@ -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 + +#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* 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* 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