Akka.Cluster.ClusterEvent.InternalDiffRolesLeader C# (CSharp) Метод

InternalDiffRolesLeader() приватный статический Метод

private static InternalDiffRolesLeader ( Gossip oldGossip, Gossip newGossip, UniqueAddress selfUniqueAddress ) : IEnumerable
oldGossip Gossip
newGossip Gossip
selfUniqueAddress UniqueAddress
Результат IEnumerable
        private static IEnumerable<RoleLeaderChanged> InternalDiffRolesLeader(Gossip oldGossip, Gossip newGossip, UniqueAddress selfUniqueAddress)
        {
            foreach (var role in oldGossip.AllRoles.Union(newGossip.AllRoles))
            {
                var newLeader = newGossip.RoleLeader(role, selfUniqueAddress);
                if(newLeader == null && oldGossip.RoleLeader(role, selfUniqueAddress) != null)
                    yield return new RoleLeaderChanged(role, null);
                if(newLeader != null && !newLeader.Equals(oldGossip.RoleLeader(role, selfUniqueAddress))) 
                    yield return new RoleLeaderChanged(role, newLeader.Address);
            }
        }