You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.4"/> <title>tbb::flow::interface7::graph Class Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <!-- end header part --> <!-- Generated by Doxygen 1.8.4 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li class="current"><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="a00222.html">tbb</a></li><li class="navelem"><b>flow</b></li><li class="navelem"><b>interface7</b></li><li class="navelem"><a class="el" href="a00061.html">graph</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#nested-classes">Classes</a> | <a href="#pub-types">Public Types</a> | <a href="#pub-methods">Public Member Functions</a> | <a href="#friends">Friends</a> | <a href="a00313.html">List of all members</a> </div> <div class="headertitle"> <div class="title">tbb::flow::interface7::graph Class Reference</div> </div> </div><!--header--> <div class="contents">
<p>The graph class. <a href="a00061.html#details">More...</a></p>
<p><code>#include <flow_graph.h></code></p> <div class="dynheader"> Inheritance diagram for tbb::flow::interface7::graph:</div> <div class="dyncontent"> <div class="center"> <img src="a00061.png" usemap="#tbb::flow::interface7::graph_map" alt=""/> <map id="tbb::flow::interface7::graph_map" name="tbb::flow::interface7::graph_map"> </map> </div></div> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a> Public Types</h2></td></tr> <tr class="memitem:aadf8d25297819e6b7c01e271ba504906"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aadf8d25297819e6b7c01e271ba504906"></a> typedef <a class="el" href="a00062.html">graph_iterator</a>< <a class="el" href="a00061.html">graph</a>, <br class="typebreak"/> <a class="el" href="a00063.html">graph_node</a> > </td><td class="memItemRight" valign="bottom"><b>iterator</b></td></tr> <tr class="separator:aadf8d25297819e6b7c01e271ba504906"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a278ce7d4ece4894554b6706d915e16a4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a278ce7d4ece4894554b6706d915e16a4"></a> typedef <a class="el" href="a00062.html">graph_iterator</a>< const <br class="typebreak"/> <a class="el" href="a00061.html">graph</a>, const <a class="el" href="a00063.html">graph_node</a> > </td><td class="memItemRight" valign="bottom"><b>const_iterator</b></td></tr> <tr class="separator:a278ce7d4ece4894554b6706d915e16a4"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr class="memitem:ac274a9006e66ecc75bcd59f784fe1867"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac274a9006e66ecc75bcd59f784fe1867"></a>  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ac274a9006e66ecc75bcd59f784fe1867">graph</a> ()</td></tr> <tr class="memdesc:ac274a9006e66ecc75bcd59f784fe1867"><td class="mdescLeft"> </td><td class="mdescRight">Constructs a graph with isolated <a class="el" href="a00138.html">task_group_context</a>. <br/></td></tr> <tr class="separator:ac274a9006e66ecc75bcd59f784fe1867"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a656cee3d0240a3f142a450800e6b17c7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a656cee3d0240a3f142a450800e6b17c7"></a>  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a656cee3d0240a3f142a450800e6b17c7">graph</a> (<a class="el" href="a00138.html">task_group_context</a> &use_this_context)</td></tr> <tr class="memdesc:a656cee3d0240a3f142a450800e6b17c7"><td class="mdescLeft"> </td><td class="mdescRight">Constructs a graph with use_this_context as context. <br/></td></tr> <tr class="separator:a656cee3d0240a3f142a450800e6b17c7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3412df4d4bf0113aed93c958bbb49ec4"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a3412df4d4bf0113aed93c958bbb49ec4">~graph</a> ()</td></tr> <tr class="memdesc:a3412df4d4bf0113aed93c958bbb49ec4"><td class="mdescLeft"> </td><td class="mdescRight">Destroys the graph. <a href="#a3412df4d4bf0113aed93c958bbb49ec4">More...</a><br/></td></tr> <tr class="separator:a3412df4d4bf0113aed93c958bbb49ec4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a0d13293f3c2d0f2e79e9a93afb0e8fd4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0d13293f3c2d0f2e79e9a93afb0e8fd4"></a> void </td><td class="memItemRight" valign="bottom"><b>set_name</b> (const char *name)</td></tr> <tr class="separator:a0d13293f3c2d0f2e79e9a93afb0e8fd4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad96c910ae45e6c5d2433bb1d9e910891"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ad96c910ae45e6c5d2433bb1d9e910891">increment_wait_count</a> ()</td></tr> <tr class="memdesc:ad96c910ae45e6c5d2433bb1d9e910891"><td class="mdescLeft"> </td><td class="mdescRight">Used to register that an external entity may still interact with the graph. <a href="#ad96c910ae45e6c5d2433bb1d9e910891">More...</a><br/></td></tr> <tr class="separator:ad96c910ae45e6c5d2433bb1d9e910891"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af16d14eaed1355ae376bb78dde7762c3"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#af16d14eaed1355ae376bb78dde7762c3">decrement_wait_count</a> ()</td></tr> <tr class="memdesc:af16d14eaed1355ae376bb78dde7762c3"><td class="mdescLeft"> </td><td class="mdescRight">Deregisters an external entity that may have interacted with the graph. <a href="#af16d14eaed1355ae376bb78dde7762c3">More...</a><br/></td></tr> <tr class="separator:af16d14eaed1355ae376bb78dde7762c3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac0a03f1d59dc2ccb9526995599c2c83c"><td class="memTemplParams" colspan="2">template<typename Receiver , typename Body > </td></tr> <tr class="memitem:ac0a03f1d59dc2ccb9526995599c2c83c"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00061.html#ac0a03f1d59dc2ccb9526995599c2c83c">run</a> (Receiver &r, Body body)</td></tr> <tr class="memdesc:ac0a03f1d59dc2ccb9526995599c2c83c"><td class="mdescLeft"> </td><td class="mdescRight">Spawns a task that runs a body and puts its output to a specific receiver. <a href="#ac0a03f1d59dc2ccb9526995599c2c83c">More...</a><br/></td></tr> <tr class="separator:ac0a03f1d59dc2ccb9526995599c2c83c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6e428c2d7c8780f3c2587a71c4d92466"><td class="memTemplParams" colspan="2">template<typename Body > </td></tr> <tr class="memitem:a6e428c2d7c8780f3c2587a71c4d92466"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00061.html#a6e428c2d7c8780f3c2587a71c4d92466">run</a> (Body body)</td></tr> <tr class="memdesc:a6e428c2d7c8780f3c2587a71c4d92466"><td class="mdescLeft"> </td><td class="mdescRight">Spawns a task that runs a function object. <a href="#a6e428c2d7c8780f3c2587a71c4d92466">More...</a><br/></td></tr> <tr class="separator:a6e428c2d7c8780f3c2587a71c4d92466"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a397208ce3b432c83cd24f416b082e8db"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a397208ce3b432c83cd24f416b082e8db">wait_for_all</a> ()</td></tr> <tr class="memdesc:a397208ce3b432c83cd24f416b082e8db"><td class="mdescLeft"> </td><td class="mdescRight">Wait until graph is idle and decrement_wait_count calls equals increment_wait_count calls. <a href="#a397208ce3b432c83cd24f416b082e8db">More...</a><br/></td></tr> <tr class="separator:a397208ce3b432c83cd24f416b082e8db"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae5f59627a7d130cf289f105a849ad3f0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae5f59627a7d130cf289f105a849ad3f0"></a> task * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ae5f59627a7d130cf289f105a849ad3f0">root_task</a> ()</td></tr> <tr class="memdesc:ae5f59627a7d130cf289f105a849ad3f0"><td class="mdescLeft"> </td><td class="mdescRight">Returns the root task of the graph. <br/></td></tr> <tr class="separator:ae5f59627a7d130cf289f105a849ad3f0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a91d2f9921342a504668b2cdc3064a846"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a91d2f9921342a504668b2cdc3064a846"></a> <a class="el" href="a00062.html">iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a91d2f9921342a504668b2cdc3064a846">begin</a> ()</td></tr> <tr class="memdesc:a91d2f9921342a504668b2cdc3064a846"><td class="mdescLeft"> </td><td class="mdescRight">start iterator <br/></td></tr> <tr class="separator:a91d2f9921342a504668b2cdc3064a846"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a221a7ee0a1f0e69a01add5c1dda43be7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a221a7ee0a1f0e69a01add5c1dda43be7"></a> <a class="el" href="a00062.html">iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a221a7ee0a1f0e69a01add5c1dda43be7">end</a> ()</td></tr> <tr class="memdesc:a221a7ee0a1f0e69a01add5c1dda43be7"><td class="mdescLeft"> </td><td class="mdescRight">end iterator <br/></td></tr> <tr class="separator:a221a7ee0a1f0e69a01add5c1dda43be7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac404d2e08620aca079532124551a646a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac404d2e08620aca079532124551a646a"></a> <a class="el" href="a00062.html">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ac404d2e08620aca079532124551a646a">begin</a> () const </td></tr> <tr class="memdesc:ac404d2e08620aca079532124551a646a"><td class="mdescLeft"> </td><td class="mdescRight">start const iterator <br/></td></tr> <tr class="separator:ac404d2e08620aca079532124551a646a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a599e6a885a76db84928b039063c299e4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a599e6a885a76db84928b039063c299e4"></a> <a class="el" href="a00062.html">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a599e6a885a76db84928b039063c299e4">end</a> () const </td></tr> <tr class="memdesc:a599e6a885a76db84928b039063c299e4"><td class="mdescLeft"> </td><td class="mdescRight">end const iterator <br/></td></tr> <tr class="separator:a599e6a885a76db84928b039063c299e4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2af8f195917817ce2b77ff7b6463c344"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2af8f195917817ce2b77ff7b6463c344"></a> <a class="el" href="a00062.html">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a2af8f195917817ce2b77ff7b6463c344">cbegin</a> () const </td></tr> <tr class="memdesc:a2af8f195917817ce2b77ff7b6463c344"><td class="mdescLeft"> </td><td class="mdescRight">start const iterator <br/></td></tr> <tr class="separator:a2af8f195917817ce2b77ff7b6463c344"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:acf6d3f610c2675eaf8bf2a40853081aa"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acf6d3f610c2675eaf8bf2a40853081aa"></a> <a class="el" href="a00062.html">const_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#acf6d3f610c2675eaf8bf2a40853081aa">cend</a> () const </td></tr> <tr class="memdesc:acf6d3f610c2675eaf8bf2a40853081aa"><td class="mdescLeft"> </td><td class="mdescRight">end const iterator <br/></td></tr> <tr class="separator:acf6d3f610c2675eaf8bf2a40853081aa"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a9e26f4f5d608e39c8adc9dc6d06a7a01"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9e26f4f5d608e39c8adc9dc6d06a7a01"></a> bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a9e26f4f5d608e39c8adc9dc6d06a7a01">is_cancelled</a> ()</td></tr> <tr class="memdesc:a9e26f4f5d608e39c8adc9dc6d06a7a01"><td class="mdescLeft"> </td><td class="mdescRight">return status of graph execution <br/></td></tr> <tr class="separator:a9e26f4f5d608e39c8adc9dc6d06a7a01"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8183d2d71ce8c8b35d314bbb7d66bda3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8183d2d71ce8c8b35d314bbb7d66bda3"></a> bool </td><td class="memItemRight" valign="bottom"><b>exception_thrown</b> ()</td></tr> <tr class="separator:a8183d2d71ce8c8b35d314bbb7d66bda3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6652373643b94fa7436874e0c617474e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6652373643b94fa7436874e0c617474e"></a> void </td><td class="memItemRight" valign="bottom"><b>reset</b> ()</td></tr> <tr class="separator:a6652373643b94fa7436874e0c617474e"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a> Friends</h2></td></tr> <tr class="memitem:a8bb549de1ad8539cd820379b4a9bc568"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8bb549de1ad8539cd820379b4a9bc568"></a> class </td><td class="memItemRight" valign="bottom"><b>graph_node</b></td></tr> <tr class="separator:a8bb549de1ad8539cd820379b4a9bc568"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aaa1d1a46765052516277dce8e9bdf63e"><td class="memTemplParams" colspan="2"><a class="anchor" id="aaa1d1a46765052516277dce8e9bdf63e"></a> template<typename C , typename N > </td></tr> <tr class="memitem:aaa1d1a46765052516277dce8e9bdf63e"><td class="memTemplItemLeft" align="right" valign="top">class </td><td class="memTemplItemRight" valign="bottom"><b>graph_iterator</b></td></tr> <tr class="separator:aaa1d1a46765052516277dce8e9bdf63e"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>The graph class. </p> <p>This class serves as a handle to the graph </p> </div><h2 class="groupheader">Constructor & Destructor Documentation</h2> <a class="anchor" id="a3412df4d4bf0113aed93c958bbb49ec4"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">tbb::flow::interface7::graph::~graph </td> <td>(</td> <td class="paramname">)</td><td></td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc">
<p>Destroys the graph. </p> <p>Calls wait_for_all, then destroys the root task and context. </p>
</div> </div> <h2 class="groupheader">Member Function Documentation</h2> <a class="anchor" id="af16d14eaed1355ae376bb78dde7762c3"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void tbb::flow::interface7::graph::decrement_wait_count </td> <td>(</td> <td class="paramname">)</td><td></td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc">
<p>Deregisters an external entity that may have interacted with the graph. </p> <p>The graph will not return from wait_for_all until all the number of decrement_wait_count calls matches the number of increment_wait_count calls. </p>
</div> </div> <a class="anchor" id="ad96c910ae45e6c5d2433bb1d9e910891"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void tbb::flow::interface7::graph::increment_wait_count </td> <td>(</td> <td class="paramname">)</td><td></td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc">
<p>Used to register that an external entity may still interact with the graph. </p> <p>The graph will not return from wait_for_all until a matching number of decrement_wait_count calls is made. </p>
</div> </div> <a class="anchor" id="ac0a03f1d59dc2ccb9526995599c2c83c"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename Receiver , typename Body > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void tbb::flow::interface7::graph::run </td> <td>(</td> <td class="paramtype">Receiver & </td> <td class="paramname"><em>r</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">Body </td> <td class="paramname"><em>body</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc">
<p>Spawns a task that runs a body and puts its output to a specific receiver. </p> <p>The task is spawned as a child of the graph. This is useful for running tasks that need to block a <a class="el" href="a00061.html#a397208ce3b432c83cd24f416b082e8db" title="Wait until graph is idle and decrement_wait_count calls equals increment_wait_count calls...">wait_for_all()</a> on the graph. For example a one-off source. </p>
</div> </div> <a class="anchor" id="a6e428c2d7c8780f3c2587a71c4d92466"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename Body > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void tbb::flow::interface7::graph::run </td> <td>(</td> <td class="paramtype">Body </td> <td class="paramname"><em>body</em>)</td><td></td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc">
<p>Spawns a task that runs a function object. </p> <p>The task is spawned as a child of the graph. This is useful for running tasks that need to block a <a class="el" href="a00061.html#a397208ce3b432c83cd24f416b082e8db" title="Wait until graph is idle and decrement_wait_count calls equals increment_wait_count calls...">wait_for_all()</a> on the graph. For example a one-off source. </p>
</div> </div> <a class="anchor" id="a397208ce3b432c83cd24f416b082e8db"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void tbb::flow::interface7::graph::wait_for_all </td> <td>(</td> <td class="paramname">)</td><td></td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc">
<p>Wait until graph is idle and decrement_wait_count calls equals increment_wait_count calls. </p> <p>The waiting thread will go off and steal work while it is block in the wait_for_all. </p>
</div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="a00179.html">flow_graph.h</a></li> </ul> </div><!-- contents --> <hr> <p></p> Copyright © 2005-2014 Intel Corporation. All Rights Reserved. <p></p> Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its subsidiaries in the United States and other countries. <p></p> * Other names and brands may be claimed as the property of others.
|