protected override Routing ChooseRouteFor(IList <Routee> routees) { Routee least = null; int leastCount = int.MaxValue; foreach (var routee in routees) { var count = routee.PendingMessages; if (count == 0) { least = routee; break; } else if (count < leastCount) { least = routee; leastCount = count; } } return(least == null?Routing.Empty() : Routing.With(least)); }
public static Routing <T> With <T>(Routee <T>?routee) => new Routing <T>(new List <Routee <T> > {
public static Routing With(Routee routee) => new Routing(new List <Routee> { routee });
protected internal virtual void Unsubscribe(Routee <P> routee) => routees.Remove(routee);