<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.9.6" xml:lang="en-US">
  <compounddef id="classtf_1_1Pipe" kind="class" language="C++" prot="public">
    <compoundname>tf::Pipe</compoundname>
    <includes refid="pipeline_8hpp" local="no">pipeline.hpp</includes>
    <templateparamlist>
      <param>
        <type>typename C</type>
        <defval><ref refid="cpp/utility/functional/function" kindref="compound" external="/Users/twhuang/Code/taskflow/doxygen/cppreference-doxygen-web.tag.xml">std::function</ref>&lt;void(<ref refid="classtf_1_1Pipeflow" kindref="compound">tf::Pipeflow</ref>&amp;)&gt;</defval>
      </param>
    </templateparamlist>
      <sectiondef kind="public-type">
      <memberdef kind="typedef" id="classtf_1_1Pipe_1aa3d034d90bc01d42d9dd55f82de1da2a" prot="public" static="no">
        <type>C</type>
        <definition>using tf::Pipe&lt; C &gt;::callable_t =  C</definition>
        <argsstring></argsstring>
        <name>callable_t</name>
        <qualifiedname>tf::Pipe::callable_t</qualifiedname>
        <briefdescription>
<para>alias of the callable type </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/algorithm/pipeline.hpp" line="241" column="3" bodyfile="/Users/twhuang/Code/taskflow/taskflow/algorithm/pipeline.hpp" bodystart="241" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="friend">
      <memberdef kind="friend" id="classtf_1_1Pipe_1af65467c6cb27f4ef42522207f03ab9cf" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <templateparamlist>
          <param>
            <type>typename...</type>
            <declname>Ps</declname>
            <defname>Ps</defname>
          </param>
        </templateparamlist>
        <type>class</type>
        <definition>friend class Pipeline</definition>
        <argsstring></argsstring>
        <name>Pipeline</name>
        <qualifiedname>tf::Pipe::Pipeline</qualifiedname>
        <param>
          <type><ref refid="classtf_1_1Pipeline" kindref="compound">Pipeline</ref></type>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/algorithm/pipeline.hpp" line="231" column="16" bodyfile="/Users/twhuang/Code/taskflow/taskflow/algorithm/pipeline.hpp" bodystart="231" bodyend="-1"/>
      </memberdef>
      <memberdef kind="friend" id="classtf_1_1Pipe_1af64ddb98831b893b2388af2a2302acea" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <templateparamlist>
          <param>
            <type>typename P</type>
          </param>
        </templateparamlist>
        <type>class</type>
        <definition>friend class ScalablePipeline</definition>
        <argsstring></argsstring>
        <name>ScalablePipeline</name>
        <qualifiedname>tf::Pipe::ScalablePipeline</qualifiedname>
        <param>
          <type><ref refid="classtf_1_1ScalablePipeline" kindref="compound">ScalablePipeline</ref></type>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/algorithm/pipeline.hpp" line="234" column="16" bodyfile="/Users/twhuang/Code/taskflow/taskflow/algorithm/pipeline.hpp" bodystart="234" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="private-attrib">
      <memberdef kind="variable" id="classtf_1_1Pipe_1a2cb97697921ad55788a1d88feb338c8b" prot="private" static="no" mutable="no">
        <type><ref refid="namespacetf_1abb7a11e41fd457f69e7ff45d4c769564" kindref="member">PipeType</ref></type>
        <definition>PipeType tf::Pipe&lt; C &gt;::_type</definition>
        <argsstring></argsstring>
        <name>_type</name>
        <qualifiedname>tf::Pipe::_type</qualifiedname>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/algorithm/pipeline.hpp" line="302" column="12" bodyfile="/Users/twhuang/Code/taskflow/taskflow/algorithm/pipeline.hpp" bodystart="302" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classtf_1_1Pipe_1a0337e2bbcf5cf7e204951a489dee7c30" prot="private" static="no" mutable="no">
        <type>C</type>
        <definition>C tf::Pipe&lt; C &gt;::_callable</definition>
        <argsstring></argsstring>
        <name>_callable</name>
        <qualifiedname>tf::Pipe::_callable</qualifiedname>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/algorithm/pipeline.hpp" line="304" column="5" bodyfile="/Users/twhuang/Code/taskflow/taskflow/algorithm/pipeline.hpp" bodystart="304" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="public-func">
      <memberdef kind="function" id="classtf_1_1Pipe_1ad2c372074ba5daacb54811cb48141570" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>tf::Pipe&lt; C &gt;::Pipe</definition>
        <argsstring>()=default</argsstring>
        <name>Pipe</name>
        <qualifiedname>tf::Pipe::Pipe</qualifiedname>
        <briefdescription>
<para>default constructor </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/algorithm/pipeline.hpp" line="246" column="3"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1Pipe_1aebe1462048fa147ad8328fb13577cdf2" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type></type>
        <definition>tf::Pipe&lt; C &gt;::Pipe</definition>
        <argsstring>(PipeType d, C &amp;&amp;callable)</argsstring>
        <name>Pipe</name>
        <qualifiedname>tf::Pipe::Pipe</qualifiedname>
        <param>
          <type><ref refid="namespacetf_1abb7a11e41fd457f69e7ff45d4c769564" kindref="member">PipeType</ref></type>
          <declname>d</declname>
        </param>
        <param>
          <type>C &amp;&amp;</type>
          <declname>callable</declname>
        </param>
        <briefdescription>
<para>constructs the pipe object </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>d</parametername>
</parameternamelist>
<parameterdescription>
<para>pipe type (<ref refid="namespacetf_1abb7a11e41fd457f69e7ff45d4c769564" kindref="member">tf::PipeType</ref>) </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>callable</parametername>
</parameternamelist>
<parameterdescription>
<para>callable type</para>
</parameterdescription>
</parameteritem>
</parameterlist>
The constructor constructs a pipe with the given direction (<ref refid="namespacetf_1abb7a11e41fd457f69e7ff45d4c769564a7b804a28d6154ab8007287532037f1d0" kindref="member">tf::PipeType::SERIAL</ref> or <ref refid="namespacetf_1abb7a11e41fd457f69e7ff45d4c769564adf13a99b035d6f0bce4f44ab18eec8eb" kindref="member">tf::PipeType::PARALLEL</ref>) and the given callable. The callable must take a referenced <ref refid="classtf_1_1Pipeflow" kindref="compound">tf::Pipeflow</ref> object in the first argument.</para>
<para><programlisting filename=".cpp"><codeline><highlight class="normal"><ref refid="classtf_1_1Pipe_1ad2c372074ba5daacb54811cb48141570" kindref="member">Pipe</ref>{<ref refid="namespacetf_1abb7a11e41fd457f69e7ff45d4c769564a7b804a28d6154ab8007287532037f1d0" kindref="member">PipeType::SERIAL</ref>,<sp/>[](<ref refid="classtf_1_1Pipeflow" kindref="compound">tf::Pipeflow</ref>&amp;){}}</highlight></codeline>
</programlisting></para>
<para>When creating a pipeline, the direction of the first pipe must be serial (<ref refid="namespacetf_1abb7a11e41fd457f69e7ff45d4c769564a7b804a28d6154ab8007287532037f1d0" kindref="member">tf::PipeType::SERIAL</ref>). </para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/algorithm/pipeline.hpp" line="265" column="3" bodyfile="/Users/twhuang/Code/taskflow/taskflow/algorithm/pipeline.hpp" bodystart="265" bodyend="267"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1Pipe_1a0a8ad99dbb66ad0bca766da47ef11b21" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="non-virtual">
        <type><ref refid="namespacetf_1abb7a11e41fd457f69e7ff45d4c769564" kindref="member">PipeType</ref></type>
        <definition>PipeType tf::Pipe&lt; C &gt;::type</definition>
        <argsstring>() const</argsstring>
        <name>type</name>
        <qualifiedname>tf::Pipe::type</qualifiedname>
        <briefdescription>
<para>queries the type of the pipe </para>
        </briefdescription>
        <detaileddescription>
<para>Returns the type of the callable. </para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/algorithm/pipeline.hpp" line="274" column="12" bodyfile="/Users/twhuang/Code/taskflow/taskflow/algorithm/pipeline.hpp" bodystart="274" bodyend="276"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1Pipe_1ad939617c84a9e97ef1dd56ad56b84e33" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>void</type>
        <definition>void tf::Pipe&lt; C &gt;::type</definition>
        <argsstring>(PipeType type)</argsstring>
        <name>type</name>
        <qualifiedname>tf::Pipe::type</qualifiedname>
        <param>
          <type><ref refid="namespacetf_1abb7a11e41fd457f69e7ff45d4c769564" kindref="member">PipeType</ref></type>
          <declname>type</declname>
        </param>
        <briefdescription>
<para>assigns a new type to the pipe </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>type</parametername>
</parameternamelist>
<parameterdescription>
<para>a <ref refid="namespacetf_1abb7a11e41fd457f69e7ff45d4c769564" kindref="member">tf::PipeType</ref> variable </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/algorithm/pipeline.hpp" line="283" column="8" bodyfile="/Users/twhuang/Code/taskflow/taskflow/algorithm/pipeline.hpp" bodystart="283" bodyend="285"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1Pipe_1a43da5ae4ba56e35e4d0a705f7fa25686" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <templateparamlist>
          <param>
            <type>typename U</type>
          </param>
        </templateparamlist>
        <type>void</type>
        <definition>void tf::Pipe&lt; C &gt;::callable</definition>
        <argsstring>(U &amp;&amp;callable)</argsstring>
        <name>callable</name>
        <qualifiedname>tf::Pipe::callable</qualifiedname>
        <param>
          <type>U &amp;&amp;</type>
          <declname>callable</declname>
        </param>
        <briefdescription>
<para>assigns a new callable to the pipe </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="templateparam"><parameteritem>
<parameternamelist>
<parametername>U</parametername>
</parameternamelist>
<parameterdescription>
<para>callable type </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>callable</parametername>
</parameternamelist>
<parameterdescription>
<para>a callable object constructible from std::function&lt;void(tf::Pipeflow&amp;)&gt;</para>
</parameterdescription>
</parameteritem>
</parameterlist>
Assigns a new callable to the pipe with universal forwarding. </para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/algorithm/pipeline.hpp" line="296" column="8" bodyfile="/Users/twhuang/Code/taskflow/taskflow/algorithm/pipeline.hpp" bodystart="296" bodyend="298"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>class to create a pipe object for a pipeline stage </para>
    </briefdescription>
    <detaileddescription>
<para><parameterlist kind="templateparam"><parameteritem>
<parameternamelist>
<parametername>C</parametername>
</parameternamelist>
<parameterdescription>
<para>callable type</para>
</parameterdescription>
</parameteritem>
</parameterlist>
A pipe represents a stage of a pipeline. A pipe can be either <emphasis>parallel</emphasis> direction or <emphasis>serial</emphasis> direction (specified by <ref refid="namespacetf_1abb7a11e41fd457f69e7ff45d4c769564" kindref="member">tf::PipeType</ref>) and is coupled with a callable to invoke by the pipeline scheduler. The callable must take a referenced <ref refid="classtf_1_1Pipeflow" kindref="compound">tf::Pipeflow</ref> object in the first argument:</para>
<para><programlisting filename=".cpp"><codeline><highlight class="normal"><ref refid="classtf_1_1Pipe_1ad2c372074ba5daacb54811cb48141570" kindref="member">Pipe</ref>{<ref refid="namespacetf_1abb7a11e41fd457f69e7ff45d4c769564a7b804a28d6154ab8007287532037f1d0" kindref="member">PipeType::SERIAL</ref>,<sp/>[](<ref refid="classtf_1_1Pipeflow" kindref="compound">tf::Pipeflow</ref>&amp;){}}</highlight></codeline>
</programlisting></para>
<para>The pipeflow object is used to query the statistics of a scheduling token in the pipeline, such as pipe, line, and token numbers. </para>
    </detaileddescription>
    <location file="/Users/twhuang/Code/taskflow/taskflow/algorithm/pipeline.hpp" line="228" column="1" bodyfile="/Users/twhuang/Code/taskflow/taskflow/algorithm/pipeline.hpp" bodystart="228" bodyend="305"/>
    <listofallmembers>
      <member refid="classtf_1_1Pipe_1a0337e2bbcf5cf7e204951a489dee7c30" prot="private" virt="non-virtual"><scope>tf::Pipe</scope><name>_callable</name></member>
      <member refid="classtf_1_1Pipe_1a2cb97697921ad55788a1d88feb338c8b" prot="private" virt="non-virtual"><scope>tf::Pipe</scope><name>_type</name></member>
      <member refid="classtf_1_1Pipe_1a43da5ae4ba56e35e4d0a705f7fa25686" prot="public" virt="non-virtual"><scope>tf::Pipe</scope><name>callable</name></member>
      <member refid="classtf_1_1Pipe_1aa3d034d90bc01d42d9dd55f82de1da2a" prot="public" virt="non-virtual"><scope>tf::Pipe</scope><name>callable_t</name></member>
      <member refid="classtf_1_1Pipe_1ad2c372074ba5daacb54811cb48141570" prot="public" virt="non-virtual"><scope>tf::Pipe</scope><name>Pipe</name></member>
      <member refid="classtf_1_1Pipe_1aebe1462048fa147ad8328fb13577cdf2" prot="public" virt="non-virtual"><scope>tf::Pipe</scope><name>Pipe</name></member>
      <member refid="classtf_1_1Pipe_1af65467c6cb27f4ef42522207f03ab9cf" prot="private" virt="non-virtual"><scope>tf::Pipe</scope><name>Pipeline</name></member>
      <member refid="classtf_1_1Pipe_1af64ddb98831b893b2388af2a2302acea" prot="private" virt="non-virtual"><scope>tf::Pipe</scope><name>ScalablePipeline</name></member>
      <member refid="classtf_1_1Pipe_1a0a8ad99dbb66ad0bca766da47ef11b21" prot="public" virt="non-virtual"><scope>tf::Pipe</scope><name>type</name></member>
      <member refid="classtf_1_1Pipe_1ad939617c84a9e97ef1dd56ad56b84e33" prot="public" virt="non-virtual"><scope>tf::Pipe</scope><name>type</name></member>
    </listofallmembers>
  </compounddef>
</doxygen>
