diff -r 1b207dd38b72 -r ace62b58f4b2 menucontentsrv/srvinc/mcssuitehandler.h --- a/menucontentsrv/srvinc/mcssuitehandler.h Tue May 25 13:01:39 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,229 +0,0 @@ -/* -* Copyright (c) 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: -* -*/ - -#ifndef MCSSUITEHANDLER_H_ -#define MCSSUITEHANDLER_H_ - -#include -#include - - -#include "menusvrsuite.h" -#include "mcsinstallnotifier.h" -#include "menuengoperation.h" -#include "mcsmmcobserver.h" -#include "mcsfreespaceobserver.h" - -class CMenuEng; -class TMenuItem; - -/** - * Suite Handler. - * @lib mcsdrmhandler.lib - * @since S60 v5.0 - */ -NONSHARABLE_CLASS( CMcsSuiteHandler ): - public CBase, MMcsInstallListener, MMenuEngOperation, MMcsMmcObserver, - MMcsFreeSpaceObserver - { -public: - - /** - * Two-phased constructor. Leaves on failure. - * @return The constructed object. - */ - static CMcsSuiteHandler* NewL( - CMenuEng& aEng, const TDesC& aDirName ); - - /** - * Destructor. - * @since S60 v5.0 - * @capability None. - * @throws None. - * @panic None. - */ - virtual ~CMcsSuiteHandler(); - - /** - * Check if suite of given name is present - * in handler. - */ - TBool HaveSuite(const TDesC& aSuiteName); - - /** - * Get attribute from suite handler. - */ - void GetAttribute( const TDesC& aSuiteName, const TDesC& aAttrName, - TBool& aAttrExists, TDes& aAttrVal ); - -private: - - /** - * Execute engine operation: - * Do the application scan and update menu accordingly. - */ - void RunMenuEngOperationL(); - void CompletedMenuEngOperation( TInt aErr ); - /** - * Constructor. - */ - CMcsSuiteHandler( CMenuEng& aEng ); - - /** - * 2nd phase constructor. - */ - void ConstructL(const TDesC& aDirName); - - /** - * Handle Install Event - */ - void HandleInstallNotifyL(TInt aEvent); - - /** - * Handle Mmc Event - */ - void HandleMmcEventL(TInt aEvent); - - /** - * Handle Free Space Event. - */ - void HandleFreeSpaceEventL(); - /** - * Lists new suits - */ - void CheckSuiteDirL(); - - /** - * Add new suits - */ - void AddNew(); - - /** - * Remove old suits - */ - void RemoveOld(); - - /** - * Removes not installed suites from content xml file(basically during restore) - * @since S60 v5.0. - */ - void ScanSuitesL(); - - - /** - * Check if file is installed - */ - TBool FileInstalled(const TDesC& aFileName); - - /** - * Check if file was removed from installed file list - */ - TBool FileUninstalled(const TDesC& aFileName); - - /** - * Check if file need Update - * @param aTimestamp - actual timestamp of file - */ - TBool FileNeedUpdate(const TDesC& aFileName, const TTime& aTimestamp); - - /** - * Validates file extansion - */ - TBool ValidExtansion(const TDesC& aFileName); - - /** - * Install file with suites - */ - void InstallFileL(const TDesC& aFileName, const TTime& aTimestam); - - /** - * Removes file with suites - */ - void UninstallFileL(const TDesC& aFileName); - - /** - * Update file with suites - */ - void UpdateFileL(const TDesC& aFileName, const TTime& aTimestam); - - /** - * Get suites from a file - */ - void GetSuitesL(const TDesC& aFileName, RPointerArray& aSuiteArray); - - /* - * Reopen older suite. Used when deleteing suite that was replaced by newer one. - */ - void ReopenSuiteL(TInt aSuiteArrayPos); - - /** - * Append suite items to array - * @since S60 v5.0. - * @param aItemArray array to append suite items - * @param aAttrName attribute name - * @param aAttrValue attribute value - */ - void GetMenuSuitesL( - RArray& aItemArray, - const TDesC& aAttrName, - const TDesC& aAttrValue ); - - - /** - * Addes or updates suite - */ - void AddSuiteL( const TPtrC& aSuiteName ); - - /** - * Removes suite - */ - void RemoveSuiteFromXmlL( const TPtrC& aSuiteName ); - - /** - * Updates suites in content xml file - * @since S60 v5.0. - * @param aMcsItems suite items - * @param aIndex index of suite item to update - */ - void UpdateSuiteInXmlL( - RArray & aMcsItems, - TInt aIndex ); - - /** - * Addes suite to main xml file - */ - void AddSuiteToXmlL( const TPtrC& aSuiteName ); - - - void UpdateItemsL( const RArray& aItemArray ); - -private: // data - CMenuEng& iEng ; ///< Engine. Not Own. - RFs iFs; ///< File Server. Own. - RBuf iDirPath; ///< Path to observerd dir. Own. - CDesCArrayFlat* iFileNewList; ///< List of new files in dir. Own. - CDesCArrayFlat* iInstalledFileList; ///< List of installed suites. Own. - RArray iNewTimestamps; ///< List of current files' timestamps. Own. - RArray iTimestamps; ///< List of files' timestamps when isntalled. Own. - CMcsInstallNotifier* iInstallNotifier; ///< Own - CMcsMmcObserver* iMmcObserver; - CMcsFreeSpaceObserver* iFreeSpaceObserver; /// Free space observer. Own. - RMenuSrvSuiteArray iSuites; ///< Suite array. Own. - TInt iEvent;/// < last event. Own - }; - -#endif /* MCSSUITEHANDLER_H_ */