diff -r b183ec05bd8c -r 19bba8228ff0 fotaapplication/fotaserver/fmserver/inc/fmsinterruptaob.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fotaapplication/fotaserver/fmserver/inc/fmsinterruptaob.h Wed Sep 01 12:27:42 2010 +0100 @@ -0,0 +1,296 @@ +/* +* 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: Implementation of fotaserver component +* This is part of fotaapplication. +* +*/ + +#ifndef __FMS_AOB_H__ +#define __FMS_AOB_H__ + +#include +#include +#include +#include +#include +#include +#include "fmsserver.h" +#include "fmsdebug.h" + +class CFMSServer; + +// CLASS DECLARATION +class CFMSInterruptAob : public CActive,private MConnectionMonitorObserver + { + friend class CFMSServer; + + public: + /** + * Default constructor + */ + CFMSInterruptAob(); + + /** + * second phase constructor + */ + void ConstructL(); + + /** + * Logs the new request/interrupt to be monitored + * @param aType, interrupt reason + * @return None + */ + void StartL(TOmaDLInterruptReason aType); + + /** + * Starts Active object to monitor for the update interrupt in case of USB charger support + * @param aType, Interrupt reason + * @return None + */ + void StartBatteryMonitoringL(TOmaUpdInterruptReason aType, TUint aLevel); + + /** + * Sets the memory size member variable to be monitored + * for the current interrupt + * @param aSize, Memory space required + * @param aDrive, Drive used for download + * @return None + */ + void MemoryToMonitorL(TInt aSize, TDriveNumber aDrive); + + /** + * Sets the network type for the current interrupt + * @param aBearer + * @return None + */ + void NetworkTypeL(TInt aBearer); + /** + * Launches FOTA install notifier + * @param None + * @return None + */ + void LaunchFotaScheduleUpdate(); + + /* + * Destructor + */ + virtual ~CFMSInterruptAob(); + + /** + * Starts monitor for active call end + * @param aType, Reason to be monitored + * @return None + */ + void StartCallEndMonitoringL(TOmaUpdInterruptReason aType); + + private: + + /** + * From CActive + * Called by Active scheduler when the asynchronous + * request completed + * @param None + * @return None + */ + void RunL(); + + /** + * From CActive + * Called when a pending request has to be cancelled + * @param None + * @return None + */ + void DoCancel(); + + /** + * From CActive + * Handle a leave occurred in the RunL(). + * Note: If RunError function pointer is not given in construction, + * the leave error is to be propagated back to the active scheduler! + * + * @since S60 v3.2 + * @param aError the error code of leave + */ + TInt RunError( TInt aError ); + + /** + * Checks the package size is more than warning level of memory + * @param aCritical to set EFalse/ETrue + * @return TInt + */ + TInt IsPkgSizeMoreThanWL(TBool& aCritical); + + /** + * Starts network notification registry + * @param None + * @return None + */ + TBool CheckNetworkL(); + + /** + * Starts network notification registry + * @param None + * @return None + */ + void LaunchFotaEngineL(); + + /** + * Starts network notification registry + * @param None + * @return None + */ + TBool CheckGlobalRFStateL(); + + /** + * Stops the FMS Server + * @param None + * @return None + */ + void StopServer(); + + /** + * Checks the memory size to be monitored + * after adding the warning level + * @param None + * @return None + */ + void CheckMemSizeL(); + + public: + + /** + * Starts network notification registry + * @param None + * @return None + */ + void NotifyL() ; + + /** + * Stops network notifications. + * @param None + * @return None + */ + void StopNotify() ; + + /** + * sets n/w to 3G. + * @param None + * @return None + */ + void SetWcdma() ; + + /** + * Starts n/w registry check in Hard reeboot case + * uses CPeriodic variable to call static method + * @param None + * @return None + */ + void StartNetworkRegistryCheckL(); + + /** + * checks n/w registry in Hard reeboot case + * and destroys the CPeriodic if connection is there + * and triggers fota engine + * @param None + * @return None + */ + void NetworkRegistryCheckL(); + + /** + * Launches Fota update note + * @param aPkgId, package Id of FOTA Update + * @param aProfilleId, Profile ID of FOTA + * @return None + */ + void LaunchFotaUpdate(TInt& aPkgId, TInt& aProfilleId); + + private : + + /** + * From MConnectionMonitorObserver + * Method involed by connection monitor with current event. + * This method handles the events + * @param aConnMonEvent says about the event + * @return None + */ + void EventL( const CConnMonEventBase& aConnMonEvent ) ; + + /** + *CheckNetworkstatus and takes action based on that + * @param none + * @return None + */ + void CheckNetworkStatusL(); + /** + * HandleAboveCriticallevel handle memory interrupt when it is above critical level + * @param None + * @return None + */ + void HandleAboveCriticallevelL(); + + /** + * HandleChargingInterruptL handle charging interrupt when it is above critical level + * @param None + * @return None + */ + + void HandleChargingInterruptL(); + + private: + + RConnectionMonitor iConnMon; + RFs iFs; + RProperty iProperty; + TInt iConnStatus; + TInt iSize; + TDriveNumber iDrive; + TInt iBearer; + TBool iWlanAvailable; + TBool iGPRSAvail; + TOmaDLInterruptReason iInterruptType; + TOmaUpdInterruptReason iUpdInterruptType; + CFMSServer* iServer; + RFotaEngineSession iFotaEngine; + CPeriodic* iPeriodicNwCheck; + TBool iWcdma; + + /** + * RTelServer object used to keep an asynchronous request + * for phone call end monitoring + */ + RTelServer iTelServer; + + /** + * RPhone object used to keep an asynchronous request + * for phone call end monitoring + */ + RPhone iPhone; + + /** + * RLine object used to keep an asynchronous request + * for phone call end monitoring + */ + RLine iLine; + + /** + * To get hodl of current call status + */ + RCall::TStatus iCallStatus; + + TInt iChargeToMonitor; + + }; + + +#endif \ No newline at end of file