hotspotfw/hsserver/inc/hotspotserver.h
changeset 19 10810c91db26
parent 2 6e4b6261703d
child 39 7b3e49e4608a
child 52 b852595f5cbe
--- a/hotspotfw/hsserver/inc/hotspotserver.h	Tue Jan 26 13:04:04 2010 +0200
+++ b/hotspotfw/hsserver/inc/hotspotserver.h	Fri Apr 16 16:07:56 2010 +0300
@@ -86,20 +86,34 @@
 
 void PanicClient(const RMessagePtr2& aMessage,THotspotPanic aPanic);
 
+/**
+* Stores RMessage entries
+*/
 struct SRequestMapEntry
         {
         RMessagePtr2 iMessage;
         THotSpotCommands iFunction;
         TUint iIapId;
         };
-	
+/**
+* Stores timer values for each client
+*/	
 struct SLoginLogoutTimers
         {
-        TUid clientUid;
-        TUint loginTimeMicroSecs;
-        TUint logoutTimeMicroSecs;
+        TBuf<KUidLength> iClientUid;
+        TUint iLoginTimeMicroSecs;
+        TUint iLogoutTimeMicroSecs;
         };
-    
+
+/**
+* Stores all registered IAPs and their client UIDs
+*/
+struct SClientIaps
+        {
+        TUint iIapId;
+        TBuf<KUidLength> iClientUid;
+        };
+
 // CLASS DECLARATION
 
 /**
@@ -209,54 +223,79 @@
         * @return ETrue if can be sent. Otherwise EFalse.
         */
         TBool GetAssociationFlagValue();
-        
+   
         /**
-        * Set service id of IAP in use
-        * @since Series 60 3.0
-        * @param aServiceId service id
+        * Finds HotspotFW created client IAPs.
+        * @since Series 60 5.2
         * @return None
         */
-        void SetServiceId( TInt aServiceId );
+        void FindClientIapsL();
         
         /**
-        * Gets service id of IAP in use
-        * @since Series 60 3.0
-        * @return service ID
-        */
-        TInt GetServiceId();
-    
-        /**
         * Checks IAPs if there's any unused Hotspot IAPs.
-        * @since Series 60 3.0
+        * @since Series 60 3.2
         * @return None
         */
         void CheckIapsL();
         
         /**
         * Get login timer value for the specified client.
-        * @param aClientUid, client's user ID,
+        * @since Series 60 5.2
+        * @param aClientUid, clients user id
         * @return Login timer value.
         */        
-        TUint GetLoginTimeMicroSecs( TUid aClientUid );
+        TUint GetLoginTimeMicroSecs( TDes& aClientUid );
     
         /**
         * Get logout timer value for the specified client.
-        * @param aClientUid, client's user ID,
+        * @since Series 60 5.2
+        * @param aClientUid, clients user id
         * @return Logout timer value.
         */        
-        TUint GetLogoutTimeMicroSecs( TUid aClientUid );
+        TUint GetLogoutTimeMicroSecs( TDes& aClientUid );
 
         /**
         * Set both login and logout timer values for the specified client.
-        * @param aClientUid, client's user ID,
-        * @param aLoginTimerValue, set login timer value,
+        * @since Series 60 5.2
+        * @param aClientUid, clients user id
+        * @param aLoginTimerValue, set login timer value
         * @param aLogoutTimerValue, set logout timer value.
         */        
-        void CHotSpotServer::SetTimerValues(
-                TUid aClientUid,
+        void SetTimerValues(
+                TDes& aClientUid,
                 TUint aLoginTimerValue,
                 TUint aLogoutTimerValue );
         
+        /**
+        * Finds if given IAP id has an existing client.
+        * @since Series 60 5.2
+        * @param aClientUid, clients user id
+        * @return KErrNone if client is found, otherwise KErrNotFound
+        */        
+        TInt GetClientUid( TUint aIapId, TDes& aUid );
+
+        /**
+        * Adds client IAP to the array.
+        * @since Series 60 5.2
+        * @param aIapId, IAP id
+        * @param aUid, clients user id
+        */        
+        void SetClientIap( TUint aIapId, TDes& aUid );
+
+        /**
+        * Removes client IAP from the array.
+        * @since Series 60 5.2
+        * @param aIapId, IAP id
+        */        
+        void RemoveClientIap( TUint aIapId );
+
+        /**
+        * Returns Easy WLAN IAP id.
+        * @since Series 60 5.2
+        * @return Easy WLAN id
+        */        
+        TInt GetEasyWlanId();
+        
     private:
         
         /**
@@ -264,7 +303,7 @@
         * @param aClientUid, client UID to find.
         * @return matching index if UID was found, otherwise KErrNotFound.
         */        
-        TInt CHotSpotServer::FindClientUid( TUid aClientUid );
+        TInt FindClientUid( TDes& aClientUid );
         
     public: // Functions from base classes
 
@@ -331,24 +370,34 @@
         TBool iAssociationValue;
         
         /**
-        * Boolean flag whether the IAPs has been checked or not
+        * Flag for the IAP check
         */
         TBool iIapCheckValue;
+        
+        /**
+        * Flag for client IAP search
+        */
+        TInt iClientIapsChecked;
 
         /**
         * WLAN management API
         */
         CWlanMgmtClient* iMgtClient;
-        
-        /**
-        * Service id of IAP in use
-        */
-        TInt iCurrentServiceIdInUse;
-        
+       
         /**
         * Array for storing client dependent login and logout timer values.
         */
         RArray<SLoginLogoutTimers> iLoginLogoutTimerArray;
+        
+        /**
+        * Array for storing client IAPs and their UIDs.
+        */
+        RArray<SClientIaps> iClientIaps;
+        
+        /**
+        * Easy WLAN IAP Id
+        */
+        TInt iEasyWlanId;
 	};
 
 #endif