<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="../../../design/description.xslt" type="text/xsl"?>
<node lang="en" type="DynamicNode.Lib.Basic.NMerger" assembly="NLibDefault" xmlns="http://dynamicnodes.mastersign.de/description">
  <caption>Merger</caption>
  <group>Basics</group>
  <description>Merges to connections into one.</description>
  <inPorts>
    <port name="a" caption="Input A">
      <type>&lt;TElement&gt;</type>
      <description>Takes arbitrary tokens.</description>
    </port>
    <port name="b" caption="Input B">
      <type>&lt;TElement&gt;</type>
      <description>Takes arbitrary tokens.</description>
    </port>
  </inPorts>
  <outPorts>
    <port name="out" caption="Output">
      <type>TElement</type>
      <description>
        Passes on the tokens from <c>a</c> and <c>b</c>.
      </description>
    </port>
  </outPorts>
  <helpText>
    <p>
      This node merges the tokens from two incomming connections
      into one out port. The incoming connections must be compatible.
      Every token received on the both in ports is passed on the out port.
    </p>
    <p>
      The node uses a queue to cache tokens because in every activation phase
      two tokens can be received via the in ports, but only one token 
      can be passed on via the out port. Therefore, incoming tokens 
      are stored in the queue and the node reactivates it self until 
      the queue is empty.
    </p>
  </helpText>
  <customArea>
    An schematic view of the token flow.
  </customArea>
</node>