/// <summary> /// Process a KCD connection notice. /// </summary> private static void ProcessKcdConnectionNotice(KcdConnectionNotice notice) { Debug.Assert(Wm.KcdTree.ContainsKey(notice.KcdID)); WmKcd kcd = Wm.KcdTree[notice.KcdID]; Debug.Assert(kcd.ConnStatus == KcdConnStatus.Connecting || kcd.ConnStatus == KcdConnStatus.Disconnecting); // We do not want the KCD to be connected anymore. Ignore the // message. if (kcd.ConnStatus == KcdConnStatus.Disconnecting) { return; } // The KCD is now connected. kcd.ConnStatus = KcdConnStatus.Connected; kcd.MinorVersion = notice.MinorVersion; kcd.ClearError(true); // Notify every workspace that the KCD is connected. Stop if the KCD // state changes while notifications are being sent. foreach (Workspace kws in kcd.KwsTree.Values) { if (kcd.ConnStatus != KcdConnStatus.Connected) { break; } kws.Sm.HandleKcdConnStatusChange(KcdConnStatus.Connected, null); } }
/// <summary> /// Process a KCD connection notice. /// </summary> private static void ProcessKcdConnectionNotice(KcdConnectionNotice notice) { Debug.Assert(Wm.KcdTree.ContainsKey(notice.KcdID)); WmKcd kcd = Wm.KcdTree[notice.KcdID]; Debug.Assert(kcd.ConnStatus == KcdConnStatus.Connecting || kcd.ConnStatus == KcdConnStatus.Disconnecting); // We do not want the KCD to be connected anymore. Ignore the // message. if (kcd.ConnStatus == KcdConnStatus.Disconnecting) return; // The KCD is now connected. kcd.ConnStatus = KcdConnStatus.Connected; kcd.MinorVersion = notice.MinorVersion; kcd.ClearError(true); // Notify every workspace that the KCD is connected. Stop if the KCD // state changes while notifications are being sent. foreach (Workspace kws in kcd.KwsTree.Values) { if (kcd.ConnStatus != KcdConnStatus.Connected) break; kws.Sm.HandleKcdConnStatusChange(KcdConnStatus.Connected, null); } }