diff -r 000000000000 -r 32704c33136d appinstaller/AppMngr2/inc/appmngr2model.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/appinstaller/AppMngr2/inc/appmngr2model.h Tue Jan 26 12:06:03 2010 +0200 @@ -0,0 +1,119 @@ +/* +* 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: Engine part of the Application Manager +* +*/ + + +#ifndef C_APPMNGR2MODEL_H +#define C_APPMNGR2MODEL_H + +#include // CActive +#include // MDesCArray +#include // MApaAppListServObserver +#include // FLOG macros +#include // MAppMngr2RuntimeObserver +#include "appmngr2scannerobserver.h" // MAppMngr2ScannerObserver +#include "appmngr2infomakerobserver.h" // MAppMngr2InfoMakerObserver +#include "appmngr2infoarrayobserver.h" // MAppMngr2InfoArrayObserver + +class CAppMngr2Runtime; +class CAppMngr2InfoBase; +class CAppMngr2AppInfo; +class CAppMngr2PackageInfo; +class CAppMngr2Scanner; +class MAppMngr2ModelObserver; +class CAppMngr2InfoMaker; +class CAppMngr2AppInfoArray; +class CAppMngr2PackageInfoArray; +class CAppMngr2PluginHolder; +class CAknIconArray; +class RFs; + + +class CAppMngr2Model : public CActive, public MAppMngr2RuntimeObserver, + public MAppMngr2ScannerObserver, public MApaAppListServObserver, + public MAppMngr2InfoMakerObserver, public MAppMngr2InfoArrayObserver + { +public: // constructor and destructor + static CAppMngr2Model* NewL( RFs& aFsSession, MAppMngr2ModelObserver& aObserver ); + ~CAppMngr2Model(); + +public: // new functions + TInt AppInfoCount() const; + CAppMngr2AppInfo& AppInfo( TInt aIndex ) const; + TInt PackageInfoCount() const; + CAppMngr2PackageInfo& PackageInfo( TInt aIndex ) const; + void LoadIconsL( CAknIconArray& aIconArray ); + void GetIconIndexesL( TUid aUid, TInt& aIconIndexBase, TInt& aIconIndexMax ) const; + void HandleCommandL( CAppMngr2InfoBase& aInfo, TInt aCommand ); + void StartFetchingInstallationFilesL(); + void StartFetchingInstalledAppsL(); + +protected: // from CActive + void DoCancel(); + void RunL(); + +public: // from MAppMngr2RuntimeObserver + void RefreshInstalledApps(); + void RefreshInstallationFiles(); + +public: // from MAppMngr2ScannerObserver + void ScanningResultL( RPointerArray& aResult ); + void ScanningComplete(); + void DirectoryChangedL( const TDesC& aChangedDir ); + +public: // from MApaAppListServObserver + void HandleAppListEvent( TInt aEvent ); + +public: // from MAppMngr2InfoMakerObserver + void NewAppsCreatedL( const CAppMngr2InfoMaker& aMaker, + RPointerArray& aAppInfos ); + void ErrorInCreatingAppsL( const CAppMngr2InfoMaker& aMaker, TInt aError ); + void NewPackagesCreatedL( const CAppMngr2InfoMaker& aMaker, + RPointerArray& aPackageInfos ); + void ErrorInCreatingPackagesL( const CAppMngr2InfoMaker& aMaker, TInt aError ); + +public: // from MAppMngr2InfoArrayObserver + void ArrayContentChanged( CAppMngr2InfoArray* aArray, TInt aMoreRefreshesExpected ); + +private: // new functions + CAppMngr2Model( RFs& aFsSession, MAppMngr2ModelObserver& aObserver ); + void ConstructL(); + void LoadDefaultIconsL( CAknIconArray& aIconArray ); + void LoadPluginsL(); + CAppMngr2PluginHolder* DoLoadPluginL( TUid aUid ); + void CreateScannerL(); + void FetchDataTypesL(); + void CloseInfoMaker( const CAppMngr2InfoMaker& aMaker ); + +private: // data + RFs& iFs; + MAppMngr2ModelObserver& iObs; + RPointerArray iPlugins; + CAppMngr2Scanner* iScanner; + CApaAppListNotifier* iApaAppListNotifier; + RPointerArray iInfoMakers; + CAppMngr2AppInfoArray* iInstalledApps; + CAppMngr2PackageInfoArray* iInstallationFiles; + CAppMngr2InfoBase* iActiveItem; // not owned + TInt iActiveCommand; + TBool iClosing; + + FLOG_PERF_DEFINE( FetchInstallationFiles ) + FLOG_PERF_DEFINE( FetchInstalledApps ) + }; + +#endif // C_APPMNGR2MODEL_H +