Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
 public static Routing <T> With <T>(Routee <T>?routee)
 => new Routing <T>(new List <Routee <T> > {
Ejemplo n.º 3
0
 public static Routing With(Routee routee) => new Routing(new List <Routee> {
     routee
 });
Ejemplo n.º 4
0
 protected internal virtual void Unsubscribe(Routee <P> routee) => routees.Remove(routee);