Beispiel #1
0
        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));
        }
Beispiel #2
0
 /// <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)));
 }