public Gossip MarkAsDown(Member member) { // replace member (changed status) var newMembers = Members.Remove(member).Add(member.Copy(MemberStatus.Down)); // remove nodes marked as DOWN from the 'seen' table var newSeen = Overview.Seen.Remove(member.UniqueAddress); //update gossip overview var newOverview = Overview.Copy(seen: newSeen); return(Copy(newMembers, overview: newOverview)); }
/// <summary> /// Removes all seen entries from the gossip. /// </summary> /// <returns>A copy of the current gossip with no seen entries.</returns> public Gossip ClearSeen() { return(Copy(overview: Overview.Copy(seen: ImmutableHashSet <UniqueAddress> .Empty))); }