private void PublishDiff(Gossip oldGossip, Gossip newGossip, Action <object> pub)
{
foreach (var @event in ClusterEvent.DiffMemberEvents(oldGossip, newGossip))
{
pub(@event);
}
foreach (var @event in ClusterEvent.DiffUnreachable(oldGossip, newGossip))
{
pub(@event);
}
foreach (var @event in ClusterEvent.DiffReachable(oldGossip, newGossip))
{
pub(@event);
}
foreach (var @event in ClusterEvent.DiffLeader(oldGossip, newGossip, _selfUniqueAddress))
{
pub(@event);
}
foreach (var @event in ClusterEvent.DiffRolesLeader(oldGossip, newGossip, _selfUniqueAddress))
{
pub(@event);
}
// publish internal SeenState for testing purposes
foreach (var @event in ClusterEvent.DiffSeen(oldGossip, newGossip, _selfUniqueAddress))
{
pub(@event);
}
foreach (var @event in ClusterEvent.DiffReachability(oldGossip, newGossip))
{
pub(@event);
}
}