/// <summary> /// Handles a MSGReportCluster message /// </summary> /// <param name="message">The message to handle</param> private void handleMSGReportCluster(MSGReportCluster message) { if (message.RID == RID) { if (Previous != UNKNOWN_PREVIOUS) { transmit(new MSGReportCluster(Info.ID, Previous, message.OriginalNode, message.RID)); } } }
/// <summary> /// Handles a MSGReport message that the nodes sent to inform the representative /// </summary> /// <param name="message">The message</param> private void handleMSGReportCluster(MSGReportCluster message) { bool clusterFound = false; if (message.RID == Info.ID) { foreach (var cluster in Clusters) { if (cluster.ID == message.OriginalNode.CID) { cluster.Add(message.OriginalNode); clusterFound = true; break; } } if (!clusterFound) { Cluster cluster = new Cluster(message.OriginalNode.CID); cluster.Add(message.OriginalNode); Clusters.Add(cluster); ClustersI.Add(cluster.ID); } } }