Beispiel #1
0
        private void FindComponents(IDownstreamComponent downstream, List <IDownstreamComponent> list)
        {
            if (downstream.Outputs.Count == 0)
            {
                return;
            }

            if (downstream.Outputs.Count == 1 && downstream.Outputs[0].ConnectedReference == null)
            {
                list.Add(downstream);
                return;
            }

            if (downstream.GetType().BaseType == typeof(MMALDownstreamHandlerComponent))
            {
                list.Add((MMALDownstreamHandlerComponent)downstream);
            }

            foreach (var output in downstream.Outputs)
            {
                if (output.ConnectedReference != null)
                {
                    this.FindComponents(output.ConnectedReference.DownstreamComponent, list);
                }
            }
        }
Beispiel #2
0
        static void FindComponents(IDownstreamComponent downstream, List <IDownstreamComponent> list)
        {
            if (!downstream.Outputs.Any())
            {
                return;
            }

            if (downstream.Outputs.Count == 1 && downstream.Outputs[0].ConnectedReference == null)
            {
                list.Add(downstream);
                return;
            }

            if (downstream.GetType().BaseType == typeof(MmalDownstreamHandlerComponent))
            {
                list.Add((MmalDownstreamHandlerComponent)downstream);
            }

            foreach (var output in downstream.Outputs.Where(output => output.ConnectedReference != null))
            {
                FindComponents(output.ConnectedReference.DownstreamComponent, list);
            }
        }