<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="../../../design/description.xslt" type="text/xsl"?>
<node lang="de" type="DynamicNode.Lib.Basic.NIteration" assembly="NLibDefault" xmlns="http://dynamicnodes.mastersign.de/description">
  <caption>Iterator</caption>
  <group>Basis</group>
  <description>Durchläuft eine Aufzählung schrittweise und gibt die Elemente weiter.</description>
  <inPorts>
    <port name="iterable">
      <type>System.Collections.Generic.IEnumerable&lt;TElement&gt;</type>
      <description>Dieser Eingang nimmt die Aufzählung entgegen.</description>
    </port>
    <port name="step">
      <type>&lt;TAny&gt;</type>
      <description>
        Geht in der Aufzählung einen Schritt weiter
        und gibt das nächste Element über den Ausgang <c>item</c> weiter
        sobald an diesem Eingang eine Marke einläuft.
      </description>
    </port>
    <port name="reset">
      <type>&lt;TAny&gt;</type>
      <description>
        Geht an den Anfang der Aufzählung zurück
        sobald an diesem Eingang eine Marke einläuft.
      </description>
    </port>
  </inPorts>
  <outPorts>
    <port name="item">
      <type>TElement</type>
      <description>Gibt bei einem Schritt in der Aufzählung das nächste Element weiter.</description>
    </port>
    <port name="index">
      <type>System.Int64</type>
      <description>Gibt die aktuelle Position der Iteration in der Aufzählung aus.</description>
    </port>
    <port name="end">
      <type>DynamicNode.Core.ControlTrigger</type>
      <description>Gibt eine Trigger-Marke aus, wenn das Ende der Aufzählung erreicht ist.</description>
    </port>
  </outPorts>
  <helpText>
    <p>
      Dieser Knoten dient dazu, kontrolliert durch eine Aufzählung zu iterieren.
      Über die Eingänge <c>step</c> und <c>reset</c> wird die Iteration gesteuert.
    </p>
    <p>
      Die ausgegebenen Elemente werden mit einem Datenstrom assoziiert.
    </p>
  </helpText>
</node>