コード例 #1
0
ファイル: FlowCombinator.cs プロジェクト: cubeme/ssharp
        public FlowSplitter <TForward, TBackward> ConnectOutWithIns(IFlowComponentUniqueOutgoing <TForward, TBackward> @from, IFlowComponentUniqueIncoming <TForward, TBackward>[] tos)
        {
            // from --> Splitter --> to[]
            var elementNos = tos.Length;

            if (elementNos == 0)
            {
                throw new ArgumentException("need at least one source element");
            }
            else if (elementNos == 1)
            {
                Connect(@from.Outgoing, tos[0].Incoming);
                AddAtomicConnection(from, tos[0]);
                return(null);
            }
            else
            {
                // create virtual splitting component.
                var flowVirtualSplitter = CreateFlowVirtualSplitter(elementNos);
                Connect(@from.Outgoing, flowVirtualSplitter.Incoming);
                AddAtomicConnection(from, flowVirtualSplitter);
                for (int i = 0; i < elementNos; i++)
                {
                    Connect(flowVirtualSplitter.Outgoings[i], tos[i].Incoming);
                    AddAtomicConnection(flowVirtualSplitter, tos[i]);
                }
                return(flowVirtualSplitter);
            }
        }
コード例 #2
0
ファイル: FlowCombinator.cs プロジェクト: pascalpfeil/ssharp
        public void ConnectOutWithIn(IFlowComponentUniqueOutgoing <TForward, TBackward> @from, IFlowComponentUniqueIncoming <TForward, TBackward> to)
        {
            var newPort = new FlowPort <TForward, TBackward>();

            from.Outgoing = newPort;
            to.Incoming   = newPort;

            AddAtomicConnection(from, to);
        }
コード例 #3
0
ファイル: FlowCombinator.cs プロジェクト: cubeme/ssharp
 public void ConnectOutWithOut(IFlowComponentUniqueOutgoing <TForward, TBackward> @from, IFlowComposite <TForward, TBackward> to)
 {
     ConnectOutWithIn(from, to.FlowOut);
 }
コード例 #4
0
ファイル: FlowCombinator.cs プロジェクト: cubeme/ssharp
 public void ConnectOutWithIn(IFlowComponentUniqueOutgoing <TForward, TBackward> @from, IFlowComponentUniqueIncoming <TForward, TBackward> to)
 {
     Connect(from.Outgoing, to.Incoming);
     AddAtomicConnection(from, to);
 }