--- 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