diff -r 000000000000 -r dd21522fd290 browserutilities/feedsengine/FeedsServer/Server/inc/UpdateManager.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/browserutilities/feedsengine/FeedsServer/Server/inc/UpdateManager.h Mon Mar 30 12:54:55 2009 +0300 @@ -0,0 +1,282 @@ +/* +* 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 the License "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: UpdateManager it controls the auto updation of feed. +* +*/ + + +#ifndef _UPDATEMANAGER_H_ +#define _UPDATEMANAGER_H_ + +// INCLUDES +#include +#include +#include "UpdateAllFeedsTask.h" +#include "etel3rdparty.h" +// CONSTANTS + +// MACROS + +// DATA TYPES + +// FUNCTION PROTOTYPES + +// FORWARD DECLARATIONS +class CFeedsServer; +class CUpdateQueue; +class CUpdateAllFeedsTask; +class CFeedsDatabase; +class CServerHttpConnection; +class CUpdateTimer; +class CRoamingInfo; +// CLASS DECLARATION + +/** +* The feed UpdateManager. +* +* \b Library: FeedsEngine.lib +* +* @since 7.1 +*/ +class CUpdateManager: public CTimer, public MUpdateAllFeedsTaskObserver + { + +public: // From CActive + /** + * Handles an active object's request completion event. + * + * @since 7.1 + * @return void. + */ + void RunL(); + +public: // From MUpdateAllFeedsTaskObserver + /** + * Called to notify the obsever how many feeds remain to be updated. + * + * @since 7.1 + * @param aStatusCode The completion status of the request. + * @return Void + */ + virtual void UpdateAllFeedsProgress(TInt aMaxCount, TInt aRemaining); + + /** + * Called upon completion of the task. + * + * @since 7.1 + * @param aStatusCode The completion status of the request. + * @return Void + */ + virtual void UpdateAllFeedsCompleted(TInt aStatusCode); + + /** + * Returns the http-connection instance; + * + * @since 7.1 + * @return The http-connection instance. + */ + virtual CHttpConnection& HttpConnection(); + +public: + + /** + * Two-phased constructor. + * @since 7.1 + * @param aFolderListId The folder list associate with this background update. + * @param aAutoUpdateFreq The frequency of this background update. + * @param aAutoUpdateAP The access point to use for this background update. + * @param aAutoUpdateWhileRoaming The flag. + */ + static CUpdateManager* NewL( TInt aFolderListId, TUint32 aAutoUpdateAP, TInt aAutoUpdateFreq, + TBool aAutoUpdateWhileRoaming, CFeedsServer& aFeedsServer); + + /** + * + * @since 7.1 + * Destructor + */ + ~CUpdateManager(); + + /** + * This Method calls update Feed + * + * @since 7.1 + * @ return Integer + */ + TInt UpdateL(); + + /** + * This method handles the updation of feeds + * + * @since 7.1 + * @return Integer. + */ + TInt StartL(); + + /** + * This method Stop the updation; + * + * @since 7.1 + * Stop the Update timer + */ + void Stop(); + + /** + * This method Returns the FolderListId; + * + * @since 7.1 + * @return The folder list ID. + */ + TInt FolderListId(); + + /** + * This method Updates the update queue; + * + * @since 7.1 + * @return The folder list ID. + */ + void UpdateFeedL(TInt aFeedId, TBool aDeleteFeed); + + /** + * This method is a call back; + * + * @since 7.1 + * @return The folder list ID. + */ + static TBool LazyCallBack(TAny* aPtr); + + /** + * This method Sets the next timer event; + * + * @since 7.1 + * @return The folder list ID. + */ + void StartTimer(); + + /** + * This method Adds feeds in queue; + * + * @since 7.1 + * @return The folder list ID. + */ + void AddFeedL(TInt aFeedId); + +private: + /** + * + * @since 7.1 + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL( TUint32 aAutoUpdateAP); + + /** + * + * @since 7.1 + * C++ default constructor. + */ + CUpdateManager( TInt aFolderListId, TInt aAutoUpdateFreq, TBool aAutoUpdateWhileRoaming, CFeedsServer& aFeedsServer); + +private: + TInt iAutoUpdateFreq; + TBool iAutoUpdateWhileRoaming; + TInt iFolderListId; + TUint32 iAutoUpdateAp; + RPointerArray iQueueArray; + CFeedsServer& iFeedsServer; + CUpdateAllFeedsTask* iUpdateAllFeedTask; + CServerHttpConnection* iHttpConnection; + + CIdle* iLazyCaller; + TInt iCurrentFeedCount; + RArray iFeedIds; + TInt iMins; + + CRoamingInfo* iRoamingInfo; + //friend class + friend class CRoamingInfo; + friend class CFeedsServer; + }; + +/** +* The feed RoamingInfo. +* +* \b Library: FeedsEngine.lib +* +* @since 7.1 +*/ +class CRoamingInfo: public CActive + { +public: // Constructors and destructor + /** + * Two-phased constructor. + * + * @since 7.1 + * @param aFolderListId The folder list associate with this background update. + * @param aAutoUpdateFreq The frequency of this background update. + * @param aAutoUpdateAP The access point to use for this background update. + * @param aAutoUpdateWhileRoaming The flag. + */ + static CRoamingInfo* NewL(CUpdateManager *aUpdateManager); + + /** + * @since 7.1 + * Destructor. + */ + virtual ~CRoamingInfo(); + +public: // From CActive + /** + * Handles an active object's request completion event. + * + * @since 7.1 + * @return void. + */ + void RunL(); + void DoCancel(); + +public: + + /** + * Check for roaming. + * + * @since 7.1 + * @return void. + */ + void CheckForRoaming(); + +private: + /** + * @since 7.1 + * C++ default constructor. + * + */ + CRoamingInfo(CUpdateManager *aUpdateManager); + + /** + * @since 7.1 + * By default Symbian 2nd phase constructor is private. + * + */ + void ConstructL(); + +private: + + CTelephony *iTelephony; + CTelephony::TNetworkRegistrationV1 iRegStatus; + CUpdateManager *iUpdateManager; + + }; + + +#endif //_UPDATEMANAGER_H_ \ No newline at end of file