public IRouteComponent Map(Function2 fn, params string[] names)
        {
            RouteComponent next = Map(fn, 0) as RouteComponent;

            if (next != null)
            {
                foreach (string it in names)
                {
                    state.feedback.Add(Tuple.Create(it, next.source, (byte)4, state.dataProcessors.Last.Value.Item2.config));
                }
            }
            return(next);
        }
        public IRouteComponent Filter(Comparison op, ComparisonOutput output, params string[] names)
        {
            RouteComponent next = Filter(op, output, 0) as RouteComponent;

            if (next != null)
            {
                foreach (string it in names)
                {
                    byte dest = (byte)(state.bridge.getFirmware().CompareTo(MULTI_COMPARISON_MIN_FIRMWARE) < 0 ? 5 : 3);
                    state.feedback.Add(Tuple.Create(it, next.source, dest, state.dataProcessors.Last.Value.Item2.config));
                }
            }

            return(next);
        }
 internal RouteBranchEnd(RouteComponent caller)
 {
     this.caller = caller;
 }
 internal RouteSplit(RouteComponent caller)
 {
     this.caller = caller;
 }
 internal RouteMulticast(RouteComponent caller)
 {
     this.caller = caller;
 }
 public RouteComponent(DataTypeBase source, RouteComponent original)
 {
     this.source = source;
     state       = original.state;
 }