locationtriggering/ltserver/ltserverlogic/inc/lbtsimchangehandler.h
changeset 0 667063e416a2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationtriggering/ltserver/ltserverlogic/inc/lbtsimchangehandler.h	Tue Feb 02 01:06:48 2010 +0200
@@ -0,0 +1,193 @@
+/*
+* Copyright (c) 2008 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:  Sim change handler class definition
+*
+*/
+
+
+#ifndef C_LBTSIMCHANGEHANDLER_H
+#define C_LBTSIMCHANGEHANDLER_H
+
+#include <e32base.h>
+#include <etelmm.h>
+#include "lbttriggerchangeobserver.h"
+
+class RProperty;
+class CLbtContainer;
+class CLbtCleanupHandler;
+class CLbtTriggerFilterByArea;
+class MLbtServerLogicTriggerChangeObserver;
+
+/**
+ * Class definition for sim change handler.
+ *
+ * @since S60 v4.0
+ * This class listens to sim change event and takes action based on sim change
+ */
+class CLbtSimChangeHandler : public CActive,
+                             public MLbtContainerChangeEventObserver
+    {
+    enum TState
+        {
+        EStateSimChangeEvent,
+        
+        EStateGetNetworkInfo,
+        
+        EStateListTriggers,
+        
+        EStateEvaluateTriggers,
+        
+        EStateInvalidateTriggers,
+        
+        EStateValidateTriggers,
+        
+        EStateIdle
+        };
+public:
+	/**
+     * Instantiates a new object of 
+     * CLbtSimChangeHandler
+     */
+	static CLbtSimChangeHandler* NewL( CLbtContainer& aContainer,CLbtCleanupHandler& aCleanupHandler,
+	                                   MLbtServerLogicTriggerChangeObserver& aTriggerChangeObserver );
+
+   /**
+    * Destructor.
+    */
+    virtual ~CLbtSimChangeHandler();
+    
+    /**
+     * Starts listening to sim change event events
+     *
+     */
+    void StartToListenL();
+    
+public: // from MLbtContainerChangeEventObserver
+    void TriggerStoreChanged( RArray<TLbtTriggerId>& aTriggerIds,
+                              TLbtTriggerEventMask aEventMask,
+                              TLbtContainerChangedAreaType aAreaType,
+                              RArray<TUid>& aManagerUids );   
+
+protected:// From CActive
+    void RunL();
+    void DoCancel();
+    TInt RunError( TInt aError );
+    
+private:
+    /**
+     * Default constructor
+     */
+    CLbtSimChangeHandler( CLbtContainer& aContainer,CLbtCleanupHandler& aCleanupHandler,
+                          MLbtServerLogicTriggerChangeObserver& aTriggerChangeObserver );
+    
+    void ConstructL();
+    
+    /** 
+     * Get the current network information
+     */
+    void GetCurrentNetworkInfo(); 
+    
+    /**
+     * Lists all the cell based trigger in the system
+     */
+    void ListCellTriggersL();
+    
+    /**
+     * Invalidates all the cell trigger that doesnt fall in the 
+     * current network 
+     */
+    void EvaluateTriggers();
+    
+    void InvalidateDifferentNwTriggersL();
+    
+    void ValidateCurrentNwTriggersL();
+    
+    /**
+     * Subscribe for sim change
+     */
+    void SubscribeForSimChange(); 
+      
+    /**
+     * Initialises Etel.
+     */
+    void InitialiseEtelL();
+
+private:// data
+    
+    /**
+     * Reference to container
+     */
+    CLbtContainer&                              iContainer; 
+    
+    /**
+     * Reference to 
+     */
+    CLbtCleanupHandler&                         iCleanupHandler;
+ 
+    /*
+      * Reference to MLbtServerLogicTriggerChangeObserver
+      */
+    MLbtServerLogicTriggerChangeObserver&        iTriggerChangeObserver;
+  
+    /**
+     * Handle to telephony server
+     */
+    RTelServer 			                        iTelServer; 
+    
+    /**
+     * Handle to RMobilePhone
+     */
+    RMobilePhone 		                        iMPhone;
+     
+    /**
+     * Handle to the sim property object
+     *
+     */	
+    RProperty                                   iSimProperty;
+    
+    /**
+     * Network mode
+     */
+    RMobilePhone::TMobilePhoneNetworkMode       iNetworkMode;    
+    
+    /**
+     * Network info
+     */
+    RMobilePhone::TMobilePhoneNetworkInfoV1		iNwInfo;
+    
+    /**
+     * Network info package
+     */
+    RMobilePhone::TMobilePhoneNetworkInfoV1Pckg	iNwInfoPckg; 
+    
+    /**
+     * location info
+     */
+    RMobilePhone::TMobilePhoneLocationAreaV1	iLocArea; 
+    
+    RPointerArray<CLbtContainerTriggerEntry>    iTriggerList;
+    
+    RArray<TLbtTriggerId>                       iInvalidTriggers;
+    
+    RArray<TLbtTriggerId>                       iValidTriggers;
+    
+    TState                                      iState;
+    
+    
+    TInt                                        iAoOpcode;
+    
+    };
+
+
+#endif // C_LBTSIMCHANGEHANDLER_H