Example #1
0
 // For Composites (internal view)
 public void ConnectInWithIn(IFlowComposite <TForward, TBackward> @from, IFlowComponentUniqueIncoming <TForward, TBackward> to)
 {
     ConnectOutWithIn(from.FlowIn, to);
 }
Example #2
0
 public void ConnectOutWithIn(IFlowComponentUniqueOutgoing <TForward, TBackward> @from, IFlowComponentUniqueIncoming <TForward, TBackward> to)
 {
     Connect(from.Outgoing, to.Incoming);
     AddAtomicConnection(from, to);
 }
Example #3
0
        public FlowMerger <TForward, TBackward> ConnectOutsWithIn(IFlowComponentUniqueOutgoing <TForward, TBackward>[] fromOuts, IFlowComponentUniqueIncoming <TForward, TBackward> to)
        {
            // fromOuts[] --> Merger --> to
            var elementNos = fromOuts.Length;

            if (elementNos == 0)
            {
                throw new ArgumentException("need at least one source element");
            }
            else if (elementNos == 1)
            {
                Connect(fromOuts[0].Outgoing, to.Incoming);
                AddAtomicConnection(fromOuts[0], to);
                return(null);
            }
            else
            {
                // create virtual merging component.
                var flowVirtualMerger = CreateFlowVirtualMerger(elementNos);
                for (int i = 0; i < elementNos; i++)
                {
                    Connect(fromOuts[i].Outgoing, flowVirtualMerger.Incomings[i]);
                    AddAtomicConnection(fromOuts[i], flowVirtualMerger);
                }
                Connect(flowVirtualMerger.Outgoing, to.Incoming);
                AddAtomicConnection(flowVirtualMerger, to);
                return(flowVirtualMerger);
            }
        }
Example #4
0
        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);
        }