datacommsserver/esockserver/core_states/ss_coreprstates.cpp
changeset 4 928ed51ddc43
parent 0 dfb7c4ff071f
child 5 68ef71f0cd72
equal deleted inserted replaced
3:b6139031a239 4:928ed51ddc43
  1202 void TSendGoneUp::DoL()
  1202 void TSendGoneUp::DoL()
  1203 	{
  1203 	{
  1204 	TClientIter<TDefaultClientMatchPolicy> iter = iContext.Node().GetClientIter<TDefaultClientMatchPolicy>(TClientType(TCFClientType::ECtrl));
  1204 	TClientIter<TDefaultClientMatchPolicy> iter = iContext.Node().GetClientIter<TDefaultClientMatchPolicy>(TClientType(TCFClientType::ECtrl));
  1205 	for (TInt i = 0; iter[i]; i++)
  1205 	for (TInt i = 0; iter[i]; i++)
  1206 		{
  1206 		{
  1207 		//Send TGoneUp to every Ctrl client except the originator (who would be recieving TStarted)
  1207 		// Send TGoneUp to every Ctrl client except the originator (who would be recieving TStarted)
  1208 		if ((iContext.iNodeActivity && iContext.iNodeActivity->FindOriginator(*iter[i]) != KErrNone)
  1208 		// (activity might be the GoneUp Activity rather than the Start Activity, but then the originator
  1209 			&& iter[i] != iContext.iPeer)
  1209 		// would be a ServiceProvider, and so the ControlClient will not be found)
       
  1210 		if (iContext.iNodeActivity && iContext.iNodeActivity->FindOriginator(*iter[i]) == KErrNotFound)
  1210 			{
  1211 			{
  1211 			iter[i]->PostMessage(TNodeCtxId(iContext.ActivityId(), iContext.NodeId()), TCFControlClient::TGoneUp());
  1212 			iter[i]->PostMessage(TNodeCtxId(iContext.ActivityId(), iContext.NodeId()), TCFControlClient::TGoneUp());
  1212 			}
  1213 			}
  1213 		}
  1214 		}
  1214 	}
  1215 	}
  1289     const TProviderInfo& providerInfo = static_cast<const TProviderInfoExt&>(iContext.Node().AccessPointConfig().FindExtensionL(
  1290     const TProviderInfo& providerInfo = static_cast<const TProviderInfoExt&>(iContext.Node().AccessPointConfig().FindExtensionL(
  1290             STypeId::CreateSTypeId(TProviderInfoExt::EUid, TProviderInfoExt::ETypeId))).iProviderInfo;
  1291             STypeId::CreateSTypeId(TProviderInfoExt::EUid, TProviderInfoExt::ETypeId))).iProviderInfo;
  1291 
  1292 
  1292 	TCFControlClient::TGoneDown goneDown(stopCode, providerInfo.APId());
  1293 	TCFControlClient::TGoneDown goneDown(stopCode, providerInfo.APId());
  1293 	TClientIter<TDefaultClientMatchPolicy> iter = iContext.Node().GetClientIter<TDefaultClientMatchPolicy>(TClientType(TCFClientType::ECtrl));
  1294 	TClientIter<TDefaultClientMatchPolicy> iter = iContext.Node().GetClientIter<TDefaultClientMatchPolicy>(TClientType(TCFClientType::ECtrl));
  1294 	for (TInt i = 0; iter[i]; i++)
  1295     CNodeActivityBase* startActivity = iContext.Node().FindActivityById(ECFActivityStart);
  1295 		{
  1296 
  1296 		CNodeActivityBase* startActivity = iContext.Node().FindActivityById(ECFActivityStart);
  1297     for (TInt i = 0; iter[i]; i++)
  1297 
  1298 		{
  1298 		//Send TGoneDown to every Ctrl client except
  1299 		//Send TGoneDown to every Ctrl client except
  1299 		// * the originator (who would be recieving TStopped)
  1300 		// * the originator (who would be recieving TStopped)
  1300 		// * originators of the start activity (these will be errored separately)
  1301 		// * originators of the start activity (these will be errored separately)
  1301 		if (((iContext.iNodeActivity && iContext.iNodeActivity->FindOriginator(*iter[i]) != KErrNone) ||
  1302         if (iContext.iNodeActivity && iContext.iNodeActivity->FindOriginator(*iter[i]) >= 0)
  1302 				(iContext.iNodeActivity == NULL && iter[i] != iContext.iPeer))
  1303             {
  1303 			&& (startActivity == NULL || startActivity->FindOriginator(*iter[i]) != KErrNone))
  1304             continue; // ControlClient is a Stop originator
       
  1305             }
       
  1306 		
       
  1307         // So far the control client is not a Stop originator
       
  1308         if (startActivity == NULL || startActivity->FindOriginator(*iter[i]) == KErrNotFound)
  1304 			{
  1309 			{
       
  1310             // ControlClient is not a Start originator
  1305 			iter[i]->PostMessage(TNodeCtxId(iContext.ActivityId(), iContext.NodeId()), goneDown);
  1311 			iter[i]->PostMessage(TNodeCtxId(iContext.ActivityId(), iContext.NodeId()), goneDown);
  1306 			}
  1312 			}
  1307 		}
  1313 		}
  1308 
  1314 
  1309 	if (iContext.iNodeActivity)
  1315 	if (iContext.iNodeActivity)