Example #1
0
        public List <int> CollectEdgeIds(NetworkTracerInputType type)
        {
            List <int> ret = new List <int>();

            foreach (INetworkTracerInput input in this)
            {
                if (!(input is INetworkEdge))
                {
                    continue;
                }

                int id = ((INetworkEdge)input).EdgeId;

                switch (type)
                {
                case NetworkTracerInputType.Any:
                    ret.Add(id);
                    break;

                case NetworkTracerInputType.SoruceEdge:
                    if (input is NetworkSourceEdgeInput)
                    {
                        ret.Add(id);
                    }
                    break;

                case NetworkTracerInputType.Weight:
                    if (input is NetworkWeighInput)
                    {
                        ret.Add(id);
                    }
                    break;

                case NetworkTracerInputType.ForbiddenStartNodeEdgeIds:
                    if (input is NetworkInputForbiddenStartNodeEdgeIds)
                    {
                        ret.Add(id);
                    }
                    break;

                case NetworkTracerInputType.ForbiddenEdgeIds:
                    if (input is NetworkInputForbiddenEdgeIds)
                    {
                        ret.Add(id);
                    }
                    break;
                }
            }

            return(ret);
        }
Example #2
0
        public List <INetworkTracerInput> Collect(NetworkTracerInputType type)
        {
            List <INetworkTracerInput> ret = new List <INetworkTracerInput>();

            foreach (INetworkTracerInput input in this)
            {
                if (input == null)
                {
                    continue;
                }

                switch (type)
                {
                case NetworkTracerInputType.Any:
                    ret.Add(input);
                    break;

                case NetworkTracerInputType.SinkNode:
                    if (input is NetworkSinkInput)
                    {
                        ret.Add(input);
                    }
                    break;

                case NetworkTracerInputType.SourceNode:
                    if (input is NetworkSourceInput && !(input is NetworkSinkInput))
                    {
                        ret.Add(input);
                    }
                    break;

                case NetworkTracerInputType.SoruceEdge:
                    if (input is NetworkSourceEdgeInput)
                    {
                        ret.Add(input);
                    }
                    break;

                case NetworkTracerInputType.Weight:
                    if (input is NetworkWeighInput)
                    {
                        ret.Add(input);
                    }
                    break;

                case NetworkTracerInputType.IgnoreSwitches:
                    if (input is NetworkIgnoreSwitchState)
                    {
                        ret.Add(input);
                    }
                    break;

                case NetworkTracerInputType.AllowedNodeIds:
                    if (input is NetworkInputAllowedNodeIds)
                    {
                        ret.Add(input);
                    }
                    break;

                case NetworkTracerInputType.ForbiddenTargetNodeIds:
                    if (input is NetworkInputForbiddenTargetNodeIds)
                    {
                        ret.Add(input);
                    }
                    break;

                case NetworkTracerInputType.ForbiddenStartNodeEdgeIds:
                    if (input is NetworkInputForbiddenStartNodeEdgeIds)
                    {
                        ret.Add(input);
                    }
                    break;

                case NetworkTracerInputType.ForbiddenEdgeIds:
                    if (input is NetworkInputForbiddenEdgeIds)
                    {
                        ret.Add(input);
                    }
                    break;

                case NetworkTracerInputType.AppendNodeFlags:
                    if (input is NetworkAppendNodeFlagsInput)
                    {
                        ret.Add(input);
                    }
                    break;

                case NetworkTracerInputType.BarrierNodes:
                    if (input is NetworkBarrierNodeInput)
                    {
                        ret.Add(input);
                    }
                    break;
                }
            }

            return(ret);
        }
Example #3
0
        public bool Contains(NetworkTracerInputType type)
        {
            List <INetworkTracerInput> list = Collect(type);

            return(list.Count > 0);
        }