fotaapplication/fotaserver/FotaServer/inc/FotaNetworkRegStatus.h
changeset 0 b497e44ab2fc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fotaapplication/fotaserver/FotaServer/inc/FotaNetworkRegStatus.h	Thu Dec 17 09:07:52 2009 +0200
@@ -0,0 +1,168 @@
+/*
+* 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 "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:   GPRS and Wlan status getter for sending Generic Alerts
+*
+*/
+
+
+
+#ifndef __FOTANETWORKREGSTATUS_H__
+#define __FOTANETWORKREGSTATUS_H__
+
+// SYSTEM INCLUDES
+#include <e32base.h>
+#include <rconnmon.h>
+
+//Forward declarations
+class CFotaServer;
+
+//Constants used in this class
+
+const TTimeIntervalMicroSeconds32 KTimeInterval = 1000000; //1 second, duration between each retry.
+const TInt KRetries = 10; //Maximum number of retries.
+
+/**
+* Actice object class that runs a timer for probing network status (GPRS & WLAN)
+*  @lib    fotaserver
+*  @since  S60 v3.2
+*/
+NONSHARABLE_CLASS (CFotaNetworkRegStatus) : public CActive
+	{
+	public:
+		//Symbian 2-Phase construction
+		
+		static CFotaNetworkRegStatus* NewL(CFotaServer* aObserver);
+		static CFotaNetworkRegStatus* NewLC(CFotaServer* aObserver);
+
+       /**
+        * Destructor.
+        */      
+		virtual ~CFotaNetworkRegStatus();
+
+	public: 
+		/**
+	     * Starts monitoring for Network status before sending Generic Alert
+		 *
+     	 * @since   S60   v3.2
+     	 * @param   None
+     	 * @return  None
+     	 */
+
+		void StartMonitoringL();
+		
+		/** 
+	     * Checks whether the network connection possible with the IAP Id provided
+		 *
+     	 * @since   S60   v3.2
+     	 * @param   None
+     	 * @return  ETrue if yes, EFalse when not possible
+     	 */
+		TBool IsConnectionPossibleL(TInt aIapid);
+		
+    public: // Functions from base classes
+		/**
+        * From CActive,DoCancel.
+        */
+		void DoCancel();
+
+		/**
+        * From CActive,RunL.
+        */
+	    void RunL();
+
+		/**
+        * From CActive,RunError.
+        */
+		TInt RunError(TInt aError);
+		
+	private: //functions
+		
+		//Constructors
+		
+		CFotaNetworkRegStatus();
+		CFotaNetworkRegStatus(CFotaServer* aObserver);
+
+		//Symbian 2-Phase construction 
+		void ConstructL();
+		
+		/**
+	     * Checks GlobalRFs status
+		 *
+     	 * @since   S60   v3.2
+     	 * @param   None
+     	 * @return  ETrue if success, EFalse if failure
+     	 */
+		TBool CheckGlobalRFState();
+
+		/**
+	     * Checks Network status, basically Network Registration
+		 *
+     	 * @since   S60   v3.2
+     	 * @param   None
+     	 * @return  ETrue if success, EFalse if failure
+     	 */
+		TBool CheckNetworkRegStateL();
+		
+		
+		/**
+	     * Checks Wlan status
+		 *
+     	 * @since   S60   v3.2
+     	 * @param   None
+     	 * @return  ETrue if success, EFalse if failure
+     	 */
+		TBool IsWlanSupportedL();
+		
+	    /**
+	     * To find the bearer of the IapId
+	     *
+	     * @since   S60   v3.2
+	     * @param   aIapId
+	     * @return  ETrue/EFalse
+	     */
+	    TUint32 FindBearerL(TInt aIapId);
+
+	
+	private: // data
+	
+	    /**
+	     * timer used for monitoring
+	     */
+		RTimer iTimer;
+		
+	    /**
+	     * S60 monitory class used for monitoring network status
+	     */
+		RConnectionMonitor iMonitor;
+	
+	    /**
+	     * FotaServer
+    	 */
+		CFotaServer* iObserver;
+	
+	    /**
+	     * Number of retries
+    	 */
+		TInt iRetriesLeft;
+	
+		
+	    /**
+    	 * GlobalRFs state
+     	 */
+		TBool iGlobalRFState;
+	};
+
+#endif // __FOTANETWORKREGSTATUS_H__
+
+// End of File
\ No newline at end of file