coreapplicationuis/SysAp/Src/CenRepObservers/sysapcenrepofflinemodeobserver.h
changeset 46 eea20ed08f4b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/coreapplicationuis/SysAp/Src/CenRepObservers/sysapcenrepofflinemodeobserver.h	Tue Jun 29 10:40:11 2010 +0300
@@ -0,0 +1,102 @@
+/*
+ * Copyright (c) 2010 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:
+ * CSysApCenRepOfflineModeObserver is a an observer for the Offline Mode central Repository key.
+ * This class handles the changes to the offline mode changes done from Power Menu or Control Panel 
+ *
+ */
+
+
+#ifndef SYSAPCENREPOFFLINEMODEOBSERVER_H
+#define SYSAPCENREPOFFLINEMODEOBSERVER_H
+
+// INCLUDES
+#include <e32base.h>
+#include <centralrepository.h>
+#include <cenrepnotifyhandler.h>
+
+#include "MSysApOfflineModeController.h"
+
+NONSHARABLE_CLASS(CSysApCenRepOfflineModeObserver) : public CBase, 
+                                                     public MCenRepNotifyHandlerCallback
+    {
+public: // Constructors and destructor
+    /**
+    * Default constructor
+    */
+    static CSysApCenRepOfflineModeObserver* NewL( 
+            MSysApOfflineModeController& aSysApOfflineModeController );
+    
+    /**
+    * Destructor.
+    */
+    ~CSysApCenRepOfflineModeObserver();
+    
+private:    
+    /**
+    * Two phase ConstructL
+    */
+    void ConstructL( );
+    
+    /**
+    * Constructor 
+    * @param aSysApOfflineModeController is the instance of Offline mode controller
+    */
+    CSysApCenRepOfflineModeObserver( MSysApOfflineModeController& aSysApOfflineModeController );
+    
+    /**
+    * default constructor.
+    */
+    CSysApCenRepOfflineModeObserver();
+    
+public: // From MCenRepNotifyHandlerCallback
+    /**
+    * Handles the changes to offline mode state
+    * @param aId is the cen rep key which was changed
+    * @param aNewValue is the new value		
+    */
+    void HandleNotifyInt( TUint32 aId, TInt aNewValue );
+    
+    /**
+    * Handles the error in changing offline mode state
+    * @param aId is the cen rep key which was changed
+    * @param aError is the error id		
+    * @param aHandler is Offline cep rep handler same as iOfflineModeHandler		
+    */
+    void HandleNotifyError( TUint32 aId, TInt aError, CCenRepNotifyHandler* aHandler );
+    
+    /**
+    * Returns whether Offline mode is currently active or not
+    * @return ETrue if Offline mode is active, else EFalse
+    */		
+    TBool IsOffline() const;
+    
+private:
+    /**
+    * Instance of Offline mode controller. Used for enabling or disabling offline mode
+    */	
+    MSysApOfflineModeController& iSysApOfflineModeController;
+    
+    /**
+    * Central Repository for gettting the Offline Mode
+    */	
+    CRepository*          iOfflineCenRep;
+    
+    /**
+    * Handler to the cen rep for listening to the offline changes
+    */
+    CCenRepNotifyHandler* iOfflineModeHandler;
+    };
+
+#endif      // SYSAPCENREPBTOBSERVER_H