convergedconnectionhandler/cchserver/src/cchsubserviceinfo.cpp
changeset 2 7b872347d83b
parent 0 a4daefaec16c
child 9 bddb6d4447db
--- a/convergedconnectionhandler/cchserver/src/cchsubserviceinfo.cpp	Tue Jan 26 11:50:49 2010 +0200
+++ b/convergedconnectionhandler/cchserver/src/cchsubserviceinfo.cpp	Tue Feb 02 00:05:57 2010 +0200
@@ -161,6 +161,13 @@
 //
 void CCCHSubserviceInfo::SetState( const TCCHSubserviceState aState )
     {
+    CCHLOGSTRING2( "CCCHSubserviceInfo::SetState: iPreviousState = %d", 
+        iState );
+    CCHLOGSTRING2( "CCCHSubserviceInfo::SetState: new state = %d", 
+        aState );
+    CCHLOGSTRING2( "CCCHSubserviceInfo::SetState: new state = %d", 
+        Type() );
+    iPreviousState = iState;
     iState = aState;
     }
 
@@ -235,20 +242,34 @@
         iType );
     CCHLOGSTRING2( "CCCHSubserviceInfo::StatusChangedL: iState %d", 
         iState );
+    CCHLOGSTRING2( "CCCHSubserviceInfo::StatusChangedL: iPreviousState %d", 
+        iPreviousState );
     CCHLOGSTRING2( "CCCHSubserviceInfo::StatusChangedL: iError %d", 
         iError );
+    
+    if( iPreviousState == ECCHUninitialized && iState == ECCHDisabled )
+        {
+        CCHLOGSTRING( "CCCHSubserviceInfo::StatusChangedL: Status not notified" );
+        }
+    else 
+        {
+        if ( iPreviousState == ECCHDisconnecting && iState == ECCHDisabled )
+            {
+            iPreviousState = ECCHUninitialized;
+            }
+        CCHLOGSTRING( "CCCHSubserviceInfo::StatusChangedL: Notify new status" );
+        TServiceStatus serviceStatus;
+        serviceStatus.iConnectionInfo.iServiceSelection.iServiceId = iServiceId;
+        serviceStatus.iConnectionInfo.iServiceSelection.iType      = iType;
+        serviceStatus.iConnectionInfo.iIapId                       = iIapId;
+        serviceStatus.iConnectionInfo.iSNAPId                      = iSNAPId; 
+        serviceStatus.iConnectionInfo.iSNAPLocked                  = iSNAPLocked; 
+        serviceStatus.iState                                       = iState;
+        serviceStatus.iError                                       = iError;
         
-    TServiceStatus serviceStatus;
-    serviceStatus.iConnectionInfo.iServiceSelection.iServiceId = iServiceId;
-    serviceStatus.iConnectionInfo.iServiceSelection.iType      = iType;
-    serviceStatus.iConnectionInfo.iIapId                       = iIapId;
-    serviceStatus.iConnectionInfo.iSNAPId                      = iSNAPId; 
-    serviceStatus.iConnectionInfo.iSNAPLocked                  = iSNAPLocked; 
-    serviceStatus.iState                                       = iState;
-    serviceStatus.iError                                       = iError;
-    
-    // Send notify to clients
-    iServer.RequestStorage().NotifyServiceStatesChange( serviceStatus );
+        // Send notify to clients
+        iServer.RequestStorage().NotifyServiceStatesChange( serviceStatus );
+        }
     CCHLOGSTRING( "CCCHSubserviceInfo::StatusChangedL: OUT" );
     }