alwayson_net_plugin/pdpcontextmanager2/src/caoserver.cpp
changeset 3 f7816ffc66ed
parent 0 5a93021fdf25
child 4 77415202bfc8
--- a/alwayson_net_plugin/pdpcontextmanager2/src/caoserver.cpp	Mon Jan 18 20:33:49 2010 +0200
+++ b/alwayson_net_plugin/pdpcontextmanager2/src/caoserver.cpp	Tue Jan 26 12:12:48 2010 +0200
@@ -18,6 +18,7 @@
 
 // INCLUDE FILES
 #include <mmtsy_names.h>
+#include <cmgenconnsettings.h>
 
 #include "caoserver.h"
 #include "caoconnectionmanager.h"
@@ -179,6 +180,7 @@
         delete iPointerStatePool;    
         }
     
+    delete iCenRepObserver;
     delete iGpds;
     delete iRAUManager;
     delete iTimer;
@@ -227,6 +229,8 @@
 #endif // __ALWAYS_ON_CUSTOM_API
     
     iGpds = CAOGpds::NewL( iCustomAPI );
+    	
+    iCenRepObserver = CAOCenRepObserver::NewL( *this );	
     
     InitStatePoolL();
         
@@ -935,6 +939,37 @@
         }
     }
 
+// ---------------------------------------------------------------------------
+// CAOServer::CurrentCellularDataUsageChanged
+// ---------------------------------------------------------------------------
+//
+void CAOServer::CurrentCellularDataUsageChangedL( const TInt aValue )
+	  {
+    LOG_1( _L("CAOServer::CurrentCellularDataUsageChanged") );
+    LOG_2( _L("> Current state: %S"),
+        &StateToDesC( CurrentState()->StateName() ) );
+    
+    if ( aValue != ECmCellularDataUsageDisabled )
+        {
+        TAOState* newState = NULL;
+        	
+        if ( CurrentState()->StateName() == TAOState::EStateDisabled )
+            {
+            newState = iCurrentState->HandleEnableAlwaysOnL();
+            }
+        else
+            {
+            // Behaviour is the same as if unconnect timer had expired
+            iTimer->StopUnconnectTimer();
+            newState = iCurrentState->HandleUnconnectTimerExpiredL();
+
+            if( newState )
+                {
+                iCurrentState = newState;
+                }
+            }
+        }  	
+    }
 
 // ---------------------------------------------------------------------------
 // CAOServer::InitStatePoolL