--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/iaupdate/IAD/engine/controller/inc/iaupdatecontrollerimpl.h Thu Dec 17 08:51:10 2009 +0200
@@ -0,0 +1,341 @@
+/*
+* Copyright (c) 2009 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: ?Description
+*
+*/
+
+
+
+#ifndef IAUPDATECONTROLLERIMPL_H
+#define IAUPDATECONTROLLERIMPL_H
+
+
+#include <e32base.h>
+#include <e32cmn.h>
+#include <ncdproviderobserver.h>
+#include <ncdclientlocalizer.h>
+#include <ncdserverreportoperationobserver.h>
+#include <catalogsengineobserver.h>
+
+
+#include "iaupdatecontroller.h"
+#include "iaupdateloaderobserver.h"
+#include "iaupdateselfupdaterobserver.h"
+#include "iaupdatetimerobserver.h"
+
+
+class MCatalogsBase;
+class MNcdProvider;
+class MNcdNode;
+class MNcdNodeContainer;
+class MNcdServerReportManager;
+class MNcdServerReportOperation;
+class CCatalogsEngine;
+class MIAUpdateNode;
+class MIAUpdateAnyNode;
+class CIAUpdateNodeContainer;
+class CIAUpdateHistory;
+class CIAUpdateLoader;
+class CIAUpdateSelfUpdaterCtrl;
+class CIAUpdateContentOperationManager;
+class CIAUpdateCacheCleaner;
+class CIAUpdateControllerFile;
+class CIAUpdateTimer;
+
+
+/**
+ *
+ */
+class CIAUpdateController : public CActive,
+ public MIAUpdateController,
+ public MIAUpdateLoaderObserver,
+ public MIAUpdateSelfUpdaterObserver,
+ public MCatalogsEngineObserver,
+ public MNcdProviderObserver,
+ public MNcdClientLocalizer,
+ public MNcdServerReportOperationObserver,
+ public MIAUpdateTimerObserver
+ {
+
+public:
+
+ static CIAUpdateController* NewLC( const TUid& aFamilyUid,
+ MIAUpdateControllerObserver& aObserver );
+
+ static CIAUpdateController* NewL( const TUid& aFamilyUid,
+ MIAUpdateControllerObserver& aObserver );
+
+
+ virtual ~CIAUpdateController();
+
+
+ const TUid& FamilyUid() const;
+
+ MNcdProvider& ProviderL();
+
+ CIAUpdateSelfUpdaterCtrl& SelfUpdaterCtrl();
+
+ CIAUpdateContentOperationManager& ContentOperationManager();
+
+
+public: // MIAUpdateController
+
+ /**
+ * @see MIAUpdateController::Startup
+ **/
+ virtual TInt Startup();
+
+ /**
+ * @see MIAUpdateController::StartRefreshL
+ **/
+ virtual void StartRefreshL( TBool aAllowNetConnection );
+
+ /**
+ * @see MIAUpdateController::CancelRefresh
+ **/
+ virtual void CancelRefresh();
+
+ /**
+ * @see MIAUpdateController::CancelReporting
+ **/
+ virtual void CancelReporting();
+
+ /**
+ * @see MIAUpdateController::HistoryL
+ */
+ virtual MIAUpdateHistory& HistoryL();
+
+ /**
+ * @see MIAUpdateController::SetDefaultConnectionMethodL
+ */
+ virtual void SetDefaultConnectionMethodL( const TIAUpdateConnectionMethod& aMethod );
+
+ /**
+ * @see MIAUpdateController::SelfUpdateDataExists
+ */
+ virtual TBool SelfUpdateDataExists() const;
+
+ /**
+ * @see MIAUpdateController::StartPossibleSelfUpdateL
+ */
+ virtual TBool StartPossibleSelfUpdateL( TInt aIndex,
+ TInt aTotalCount,
+ const RPointerArray< MIAUpdateNode >& aPendingNodes,
+ TBool aSilent );
+
+ /**
+ * @see MIAUpdateController::ResetSelfUpdate
+ */
+ virtual void ResetSelfUpdate();
+
+
+ /**
+ * @see MIAUpdateController::SelfUpdateRestartInfoL
+ */
+ virtual CIAUpdateRestartInfo* SelfUpdateRestartInfo();
+
+
+ /**
+ * @see MIAUpdateController::NodeL
+ */
+ virtual MIAUpdateNode& NodeL( const CIAUpdaterIdentifier& aIdentifier );
+
+
+ /**
+ * @see MIAUpdateController::StartingUpdatesL
+ */
+ virtual void StartingUpdatesL();
+
+
+ /**
+ * @see MIAUpdateController::FinishedUpdatesL
+ */
+ virtual void FinishedUpdatesL( TBool aOperationsAllowed, TInt aMaxWaitTime );
+
+
+public: // MIAUpdateLoaderObserver
+
+ /**
+ * @see MIAUpdateLoaderObserver::LoadComplete
+ **/
+ virtual void LoadComplete( TInt aError );
+
+
+public: // MIAupdateSelfUpdaterObserver
+
+ /**
+ * @see MIAupdateSelfUpdaterObserver::SelfUpdaterComplete
+ */
+ virtual void SelfUpdaterComplete( TInt aErrorCode );
+
+
+public: // MCatalogsEngineObserver
+
+ /**
+ * @see MCatalogsEngineObserver::CatalogsEngineShutdown
+ */
+ virtual void CatalogsEngineShutdown();
+
+ /**
+ * @see MCatalogsEngineObserver::CatalogsUpdateNotification
+ */
+ virtual void CatalogsUpdateNotification( const TDesC& aTarget,
+ const TDesC& aId,
+ const TDesC& aVersion,
+ const TDesC& aUri,
+ TBool aForce );
+
+ /**
+ * @see MCatalogsEngineObserver::CatalogsConnectionEvent
+ */
+ virtual void CatalogsConnectionEvent( TBool aConnectionActive );
+
+
+public: // MNcdProviderObserver
+
+ /**
+ * @see MNcdProvider::ForceExpirationInformationReceived
+ */
+ virtual void ForceExpirationInformationReceived( RCatalogsArray< MNcdNode >& aExpiredNodes );
+
+
+public: // MNcdClientLocalizer
+
+ /**
+ * @see MNcdClientLocalizer::LocalizeString
+ *
+ * At the moment, this implementation always returns NULL.
+ */
+ virtual HBufC* LocalizeString( const TDesC& aLocalizationKey );
+
+
+public: // MNcdServerReportOperationObserver
+
+ /**
+ * @see MNcdServerReportOperationObserver::ReportProgress
+ */
+ virtual void ReportProgress( MNcdServerReportOperation& aOperation,
+ TNcdProgress aProgress );
+
+ /**
+ * @see MNcdServerReportOperationObserver::QueryReceived
+ */
+ virtual void QueryReceived( MNcdServerReportOperation& aOperation,
+ MNcdQuery* aQuery );
+
+ /**
+ * @see MNcdServerReportOperationObserver::OperationComplete
+ */
+ virtual void OperationComplete( MNcdServerReportOperation& aOperation,
+ TInt aError );
+
+
+public: // MIAUpdateTimerObserver
+
+ /**
+ * @see MIAUpdateTimeObserver::TimerComplete
+ */
+ virtual void TimerComplete( TInt aError );
+
+
+protected: // CActive
+
+ /**
+ * @see CActive::DoCancel
+ */
+ virtual void DoCancel();
+
+ /**
+ * @see CActive::RunL
+ */
+ virtual void RunL();
+
+ /**
+ * @see CActive::RunError
+ */
+ virtual TInt RunError( TInt aError );
+
+
+private:
+
+ // Prevent these if not implemented
+ CIAUpdateController( const CIAUpdateController& aObject );
+ CIAUpdateController& operator =( const CIAUpdateController& aObject );
+
+ CIAUpdateController( const TUid& aFamilyUid, MIAUpdateControllerObserver &aObserver );
+
+ void ConstructL();
+
+ void LocalLoadL();
+
+ void LocalContainerLoadL( MNcdNodeContainer& aContainer );
+
+ void SetupConfigurationL();
+
+ MNcdNode* NodeFromPurchaseHistoryL( const CIAUpdaterIdentifier& aIdentifier );
+
+ void CancelPausedOperationsL();
+
+
+private: // data
+
+ enum TControllerState
+ {
+ ENotRunning,
+ EStarting,
+ EIdle,
+ EInClearCache,
+ EInLoadOperation,
+ EInLocalLoadOperation
+ };
+
+ TUid iFamilyUid;
+
+ MIAUpdateControllerObserver& iObserver;
+
+ TControllerState iControllerState;
+
+ CCatalogsEngine* iEngine;
+
+ MCatalogsBase* iBaseProvider;
+ MNcdProvider* iProvider;
+ MNcdServerReportManager* iServerReportManager;
+
+ CIAUpdateSelfUpdaterCtrl* iSelfUpdaterCtrl;
+
+ CIAUpdateLoader* iLoader;
+
+ CIAUpdateNodeContainer* iNodeContainer;
+
+ CIAUpdateHistory* iHistory;
+
+ CIAUpdateContentOperationManager* iContentOperationManager;
+
+ CIAUpdateCacheCleaner* iCacheCleaner;
+
+ CIAUpdateControllerFile* iCacheClearFile;
+
+ // This class does not own the contents of this array.
+ RPointerArray< MIAUpdateAnyNode > iNodes;
+
+ MNcdServerReportOperation* iReportOperation;
+ TBool iCancellingReportOperation;
+
+ CIAUpdateTimer* iReportTimer;
+ TBool iReportTimerCompleted;
+
+ };
+
+
+#endif // IAUPDATECONTROLLERIMPL_H