<?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_1Graph" kind="class" language="C++" prot="public">
    <compoundname>tf::Graph</compoundname>
    <includes refid="graph_8hpp" local="no">graph.hpp</includes>
      <sectiondef kind="friend">
      <memberdef kind="friend" id="classtf_1_1Graph_1a6db9d28bd448a131448276ee03de1e6d" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>class</type>
        <definition>friend class Node</definition>
        <argsstring></argsstring>
        <name>Node</name>
        <qualifiedname>tf::Graph::Node</qualifiedname>
        <param>
          <type>Node</type>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" line="45" column="16" bodyfile="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" bodystart="45" bodyend="-1"/>
      </memberdef>
      <memberdef kind="friend" id="classtf_1_1Graph_1a61184f9bd9c801d0a5eccecfdbddc641" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>class</type>
        <definition>friend class FlowBuilder</definition>
        <argsstring></argsstring>
        <name>FlowBuilder</name>
        <qualifiedname>tf::Graph::FlowBuilder</qualifiedname>
        <param>
          <type><ref refid="classtf_1_1FlowBuilder" kindref="compound">FlowBuilder</ref></type>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" line="46" column="16" bodyfile="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" bodystart="46" bodyend="-1"/>
      </memberdef>
      <memberdef kind="friend" id="classtf_1_1Graph_1aa48945297ede77a161defc88033ce8a6" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>class</type>
        <definition>friend class Subflow</definition>
        <argsstring></argsstring>
        <name>Subflow</name>
        <qualifiedname>tf::Graph::Subflow</qualifiedname>
        <param>
          <type><ref refid="classtf_1_1Subflow" kindref="compound">Subflow</ref></type>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" line="47" column="16" bodyfile="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" bodystart="47" bodyend="-1"/>
      </memberdef>
      <memberdef kind="friend" id="classtf_1_1Graph_1af043dd6f6a359602805d9c7dd7539cca" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>class</type>
        <definition>friend class Taskflow</definition>
        <argsstring></argsstring>
        <name>Taskflow</name>
        <qualifiedname>tf::Graph::Taskflow</qualifiedname>
        <param>
          <type><ref refid="classtf_1_1Taskflow" kindref="compound">Taskflow</ref></type>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" line="48" column="16" bodyfile="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" bodystart="48" bodyend="-1"/>
      </memberdef>
      <memberdef kind="friend" id="classtf_1_1Graph_1a763b2f90bc53f92d680a635fe28e858e" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>class</type>
        <definition>friend class Executor</definition>
        <argsstring></argsstring>
        <name>Executor</name>
        <qualifiedname>tf::Graph::Executor</qualifiedname>
        <param>
          <type><ref refid="classtf_1_1Executor" kindref="compound">Executor</ref></type>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" line="49" column="16" bodyfile="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" bodystart="49" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="private-attrib">
      <memberdef kind="variable" id="classtf_1_1Graph_1ac5e4c434ae03bf37c5a275f9fdc9f97d" prot="private" static="no" mutable="no">
        <type><ref refid="cpp/container/vector" kindref="compound" external="/Users/twhuang/Code/taskflow/doxygen/cppreference-doxygen-web.tag.xml">std::vector</ref>&lt; Node * &gt;</type>
        <definition>std::vector&lt;Node*&gt; tf::Graph::_nodes</definition>
        <argsstring></argsstring>
        <name>_nodes</name>
        <qualifiedname>tf::Graph::_nodes</qualifiedname>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" line="100" column="17" bodyfile="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" bodystart="100" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="public-func">
      <memberdef kind="function" id="classtf_1_1Graph_1a1cd3bae8cabb45810b25cdbdd4e89006" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>tf::Graph::Graph</definition>
        <argsstring>()=default</argsstring>
        <name>Graph</name>
        <qualifiedname>tf::Graph::Graph</qualifiedname>
        <briefdescription>
<para>constructs a graph object </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" line="56" column="5"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1Graph_1ade95936f49af81b9834e09e807033e61" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>tf::Graph::Graph</definition>
        <argsstring>(const Graph &amp;)=delete</argsstring>
        <name>Graph</name>
        <qualifiedname>tf::Graph::Graph</qualifiedname>
        <param>
          <type>const <ref refid="classtf_1_1Graph" kindref="compound">Graph</ref> &amp;</type>
        </param>
        <briefdescription>
<para>disabled copy constructor </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" line="61" column="5"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1Graph_1a5fcaca536e67632ff6dd3cf2c0284cfd" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type></type>
        <definition>tf::Graph::Graph</definition>
        <argsstring>(Graph &amp;&amp;)</argsstring>
        <name>Graph</name>
        <qualifiedname>tf::Graph::Graph</qualifiedname>
        <param>
          <type><ref refid="classtf_1_1Graph" kindref="compound">Graph</ref> &amp;&amp;</type>
          <defname>other</defname>
        </param>
        <briefdescription>
<para>constructs a graph using move semantics </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" line="66" column="5" bodyfile="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" bodystart="926" bodyend="928"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1Graph_1a493acc70cca8c0a09d7c407d28c59ee2" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type></type>
        <definition>tf::Graph::~Graph</definition>
        <argsstring>()</argsstring>
        <name>~Graph</name>
        <qualifiedname>tf::Graph::~Graph</qualifiedname>
        <briefdescription>
<para>destructs the graph object </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" line="71" column="5" bodyfile="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" bodystart="921" bodyend="923"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1Graph_1a0b722dc90ae9a01b35c3ece6b2221688" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="classtf_1_1Graph" kindref="compound">Graph</ref> &amp;</type>
        <definition>Graph &amp; tf::Graph::operator=</definition>
        <argsstring>(const Graph &amp;)=delete</argsstring>
        <name>operator=</name>
        <qualifiedname>tf::Graph::operator=</qualifiedname>
        <param>
          <type>const <ref refid="classtf_1_1Graph" kindref="compound">Graph</ref> &amp;</type>
        </param>
        <briefdescription>
<para>disabled copy assignment operator </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" line="76" column="11"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1Graph_1a9104e2edd9e02c64d0102378f81ed9a9" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type><ref refid="classtf_1_1Graph" kindref="compound">Graph</ref> &amp;</type>
        <definition>Graph &amp; tf::Graph::operator=</definition>
        <argsstring>(Graph &amp;&amp;)</argsstring>
        <name>operator=</name>
        <qualifiedname>tf::Graph::operator=</qualifiedname>
        <param>
          <type><ref refid="classtf_1_1Graph" kindref="compound">Graph</ref> &amp;&amp;</type>
          <defname>other</defname>
        </param>
        <briefdescription>
<para>assigns a graph using move semantics </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" line="81" column="11" bodyfile="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" bodystart="931" bodyend="935"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1Graph_1a30750e1be2657e491854791cd3afff06" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="non-virtual">
        <type>bool</type>
        <definition>bool tf::Graph::empty</definition>
        <argsstring>() const</argsstring>
        <name>empty</name>
        <qualifiedname>tf::Graph::empty</qualifiedname>
        <briefdescription>
<para>queries if the graph is empty </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" line="86" column="10" bodyfile="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" bodystart="985" bodyend="987"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1Graph_1a790710289553897fa88672d9104d8ed1" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="non-virtual">
        <type>size_t</type>
        <definition>size_t tf::Graph::size</definition>
        <argsstring>() const</argsstring>
        <name>size</name>
        <qualifiedname>tf::Graph::size</qualifiedname>
        <briefdescription>
<para>queries the number of nodes in the graph </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" line="91" column="12" bodyfile="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" bodystart="980" bodyend="982"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1Graph_1a8213e42bf3f7460757db411181d78c4c" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>void</type>
        <definition>void tf::Graph::clear</definition>
        <argsstring>()</argsstring>
        <name>clear</name>
        <qualifiedname>tf::Graph::clear</qualifiedname>
        <briefdescription>
<para>clears the graph </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" line="96" column="10" bodyfile="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" bodystart="938" bodyend="940"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="private-func">
      <memberdef kind="function" id="classtf_1_1Graph_1a13b297fdc502102ee784495f6d4c3d1e" prot="private" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>void</type>
        <definition>void tf::Graph::_clear</definition>
        <argsstring>()</argsstring>
        <name>_clear</name>
        <qualifiedname>tf::Graph::_clear</qualifiedname>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" line="102" column="10" bodyfile="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" bodystart="943" bodyend="948"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1Graph_1ace2898fcb8cd86099dbf5d453a9cf0b4" prot="private" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>void</type>
        <definition>void tf::Graph::_clear_detached</definition>
        <argsstring>()</argsstring>
        <name>_clear_detached</name>
        <qualifiedname>tf::Graph::_clear_detached</qualifiedname>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" line="103" column="10" bodyfile="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" bodystart="951" bodyend="961"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1Graph_1a39d26ac29a3aa19650dcf31a7563b6ee" prot="private" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>void</type>
        <definition>void tf::Graph::_merge</definition>
        <argsstring>(Graph &amp;&amp;)</argsstring>
        <name>_merge</name>
        <qualifiedname>tf::Graph::_merge</qualifiedname>
        <param>
          <type><ref refid="classtf_1_1Graph" kindref="compound">Graph</ref> &amp;&amp;</type>
          <defname>g</defname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" line="104" column="10" bodyfile="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" bodystart="964" bodyend="969"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1Graph_1a6b50ab0846fe1720edc2dcc5147ba16b" prot="private" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>void</type>
        <definition>void tf::Graph::_erase</definition>
        <argsstring>(Node *)</argsstring>
        <name>_erase</name>
        <qualifiedname>tf::Graph::_erase</qualifiedname>
        <param>
          <type>Node *</type>
          <defname>node</defname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" line="105" column="10" bodyfile="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" bodystart="972" bodyend="977"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1Graph_1a828f1de51ba070baa75636b1549b2964" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <templateparamlist>
          <param>
            <type>typename ...</type>
            <declname>ArgsT</declname>
            <defname>ArgsT</defname>
          </param>
        </templateparamlist>
        <type>Node *</type>
        <definition>Node * tf::Graph::_emplace_back</definition>
        <argsstring>(ArgsT &amp;&amp;...)</argsstring>
        <name>_emplace_back</name>
        <qualifiedname>tf::Graph::_emplace_back</qualifiedname>
        <param>
          <type>ArgsT &amp;&amp;</type>
          <declname>...</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" line="111" column="10"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1Graph_1ab804f1d7061f031df585a1b0ae15128d" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <templateparamlist>
          <param>
            <type>typename ...</type>
            <declname>ArgsT</declname>
            <defname>ArgsT</defname>
          </param>
        </templateparamlist>
        <type>Node *</type>
        <definition>Node * tf::Graph::_emplace_back</definition>
        <argsstring>(ArgsT &amp;&amp;... args)</argsstring>
        <name>_emplace_back</name>
        <qualifiedname>tf::Graph::_emplace_back</qualifiedname>
        <param>
          <type>ArgsT &amp;&amp;...</type>
          <declname>args</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" line="993" column="6" bodyfile="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" bodystart="993" bodyend="996"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>class to create a graph object </para>
    </briefdescription>
    <detaileddescription>
<para>A graph is the ultimate storage for a task dependency graph and is the main gateway to interact with an executor. A graph manages a set of nodes in a global object pool that animates and recycles node objects efficiently without going through repetitive and expensive memory allocations and deallocations. This class is mainly used for creating an opaque graph object in a custom class to interact with the executor through taskflow composition.</para>
<para>A graph object is move-only. </para>
    </detaileddescription>
    <location file="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" line="43" column="1" bodyfile="/Users/twhuang/Code/taskflow/taskflow/core/graph.hpp" bodystart="43" bodyend="112"/>
    <listofallmembers>
      <member refid="classtf_1_1Graph_1a13b297fdc502102ee784495f6d4c3d1e" prot="private" virt="non-virtual"><scope>tf::Graph</scope><name>_clear</name></member>
      <member refid="classtf_1_1Graph_1ace2898fcb8cd86099dbf5d453a9cf0b4" prot="private" virt="non-virtual"><scope>tf::Graph</scope><name>_clear_detached</name></member>
      <member refid="classtf_1_1Graph_1a828f1de51ba070baa75636b1549b2964" prot="private" virt="non-virtual"><scope>tf::Graph</scope><name>_emplace_back</name></member>
      <member refid="classtf_1_1Graph_1ab804f1d7061f031df585a1b0ae15128d" prot="private" virt="non-virtual"><scope>tf::Graph</scope><name>_emplace_back</name></member>
      <member refid="classtf_1_1Graph_1a6b50ab0846fe1720edc2dcc5147ba16b" prot="private" virt="non-virtual"><scope>tf::Graph</scope><name>_erase</name></member>
      <member refid="classtf_1_1Graph_1a39d26ac29a3aa19650dcf31a7563b6ee" prot="private" virt="non-virtual"><scope>tf::Graph</scope><name>_merge</name></member>
      <member refid="classtf_1_1Graph_1ac5e4c434ae03bf37c5a275f9fdc9f97d" prot="private" virt="non-virtual"><scope>tf::Graph</scope><name>_nodes</name></member>
      <member refid="classtf_1_1Graph_1a8213e42bf3f7460757db411181d78c4c" prot="public" virt="non-virtual"><scope>tf::Graph</scope><name>clear</name></member>
      <member refid="classtf_1_1Graph_1a30750e1be2657e491854791cd3afff06" prot="public" virt="non-virtual"><scope>tf::Graph</scope><name>empty</name></member>
      <member refid="classtf_1_1Graph_1a763b2f90bc53f92d680a635fe28e858e" prot="private" virt="non-virtual"><scope>tf::Graph</scope><name>Executor</name></member>
      <member refid="classtf_1_1Graph_1a61184f9bd9c801d0a5eccecfdbddc641" prot="private" virt="non-virtual"><scope>tf::Graph</scope><name>FlowBuilder</name></member>
      <member refid="classtf_1_1Graph_1a1cd3bae8cabb45810b25cdbdd4e89006" prot="public" virt="non-virtual"><scope>tf::Graph</scope><name>Graph</name></member>
      <member refid="classtf_1_1Graph_1ade95936f49af81b9834e09e807033e61" prot="public" virt="non-virtual"><scope>tf::Graph</scope><name>Graph</name></member>
      <member refid="classtf_1_1Graph_1a5fcaca536e67632ff6dd3cf2c0284cfd" prot="public" virt="non-virtual"><scope>tf::Graph</scope><name>Graph</name></member>
      <member refid="classtf_1_1Graph_1a6db9d28bd448a131448276ee03de1e6d" prot="private" virt="non-virtual"><scope>tf::Graph</scope><name>Node</name></member>
      <member refid="classtf_1_1Graph_1a0b722dc90ae9a01b35c3ece6b2221688" prot="public" virt="non-virtual"><scope>tf::Graph</scope><name>operator=</name></member>
      <member refid="classtf_1_1Graph_1a9104e2edd9e02c64d0102378f81ed9a9" prot="public" virt="non-virtual"><scope>tf::Graph</scope><name>operator=</name></member>
      <member refid="classtf_1_1Graph_1a790710289553897fa88672d9104d8ed1" prot="public" virt="non-virtual"><scope>tf::Graph</scope><name>size</name></member>
      <member refid="classtf_1_1Graph_1aa48945297ede77a161defc88033ce8a6" prot="private" virt="non-virtual"><scope>tf::Graph</scope><name>Subflow</name></member>
      <member refid="classtf_1_1Graph_1af043dd6f6a359602805d9c7dd7539cca" prot="private" virt="non-virtual"><scope>tf::Graph</scope><name>Taskflow</name></member>
      <member refid="classtf_1_1Graph_1a493acc70cca8c0a09d7c407d28c59ee2" prot="public" virt="non-virtual"><scope>tf::Graph</scope><name>~Graph</name></member>
    </listofallmembers>
  </compounddef>
</doxygen>
