blob: d29e58e48843b5696b07291371c62a870bb9c327 [file] [log] [blame]
<!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>
<link rel="canonical" href="https://ignite.apache.org/releases/2.6.0/cppdoc/classignite_1_1compute_1_1Compute.html" />
<META NAME="ROBOTS" CONTENT="NOINDEX">
<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.11"/>
<title>&nbsp; Apache Ignite C++: ignite::compute::Compute 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="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-61232409-1', 'auto');
ga('send', 'pageview');
</script></head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="ignite_logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">&nbsp; Apache Ignite C++
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</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>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceignite.html">ignite</a></li><li class="navelem"><b>compute</b></li><li class="navelem"><a class="el" href="classignite_1_1compute_1_1Compute.html">Compute</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classignite_1_1compute_1_1Compute-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">ignite::compute::Compute Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Defines compute grid functionality for executing tasks and closures over nodes in the ClusterGroup.
<a href="classignite_1_1compute_1_1Compute.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="compute_8h_source.html">compute.h</a>&gt;</code></p>
<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:a46471b90d45dcc498687eb2c96c21a15"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classignite_1_1compute_1_1Compute.html#a46471b90d45dcc498687eb2c96c21a15">Compute</a> (common::concurrent::SharedPointer&lt; impl::compute::ComputeImpl &gt; impl)</td></tr>
<tr class="memdesc:a46471b90d45dcc498687eb2c96c21a15"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <a href="#a46471b90d45dcc498687eb2c96c21a15">More...</a><br /></td></tr>
<tr class="separator:a46471b90d45dcc498687eb2c96c21a15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ca0cdfcd21e2b6999aa3831bd53b713"><td class="memTemplParams" colspan="2">template&lt;typename R , typename F &gt; </td></tr>
<tr class="memitem:a5ca0cdfcd21e2b6999aa3831bd53b713"><td class="memTemplItemLeft" align="right" valign="top">R&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classignite_1_1compute_1_1Compute.html#a5ca0cdfcd21e2b6999aa3831bd53b713">Call</a> (const F &amp;func)</td></tr>
<tr class="memdesc:a5ca0cdfcd21e2b6999aa3831bd53b713"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calls provided <a class="el" href="classignite_1_1compute_1_1ComputeFunc.html" title="Interface for a simple compute function that can be serialized and called on the remote nodes...">ComputeFunc</a> on a node within the underlying cluster group. <a href="#a5ca0cdfcd21e2b6999aa3831bd53b713">More...</a><br /></td></tr>
<tr class="separator:a5ca0cdfcd21e2b6999aa3831bd53b713"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12c478a31dec5a52a0f3cc99052941ea"><td class="memTemplParams" colspan="2">template&lt;typename R , typename F &gt; </td></tr>
<tr class="memitem:a12c478a31dec5a52a0f3cc99052941ea"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classignite_1_1Future.html">Future</a>&lt; R &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classignite_1_1compute_1_1Compute.html#a12c478a31dec5a52a0f3cc99052941ea">CallAsync</a> (const F &amp;func)</td></tr>
<tr class="memdesc:a12c478a31dec5a52a0f3cc99052941ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Asyncronuously calls provided <a class="el" href="classignite_1_1compute_1_1ComputeFunc.html" title="Interface for a simple compute function that can be serialized and called on the remote nodes...">ComputeFunc</a> on a node within the underlying cluster group. <a href="#a12c478a31dec5a52a0f3cc99052941ea">More...</a><br /></td></tr>
<tr class="separator:a12c478a31dec5a52a0f3cc99052941ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5552a0110ef5ef25429393416c6c7aa9"><td class="memTemplParams" colspan="2">template&lt;typename F &gt; </td></tr>
<tr class="memitem:a5552a0110ef5ef25429393416c6c7aa9"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classignite_1_1compute_1_1Compute.html#a5552a0110ef5ef25429393416c6c7aa9">Run</a> (const F &amp;action)</td></tr>
<tr class="memdesc:a5552a0110ef5ef25429393416c6c7aa9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Runs provided <a class="el" href="classignite_1_1compute_1_1ComputeFunc.html" title="Interface for a simple compute function that can be serialized and called on the remote nodes...">ComputeFunc</a> on a node within the underlying cluster group. <a href="#a5552a0110ef5ef25429393416c6c7aa9">More...</a><br /></td></tr>
<tr class="separator:a5552a0110ef5ef25429393416c6c7aa9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a925b1ce324d200b1a1646502a3153e9c"><td class="memTemplParams" colspan="2">template&lt;typename F &gt; </td></tr>
<tr class="memitem:a925b1ce324d200b1a1646502a3153e9c"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classignite_1_1Future.html">Future</a>&lt; void &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classignite_1_1compute_1_1Compute.html#a925b1ce324d200b1a1646502a3153e9c">RunAsync</a> (const F &amp;action)</td></tr>
<tr class="memdesc:a925b1ce324d200b1a1646502a3153e9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Asyncronuously runs provided <a class="el" href="classignite_1_1compute_1_1ComputeFunc.html" title="Interface for a simple compute function that can be serialized and called on the remote nodes...">ComputeFunc</a> on a node within the underlying cluster group. <a href="#a925b1ce324d200b1a1646502a3153e9c">More...</a><br /></td></tr>
<tr class="separator:a925b1ce324d200b1a1646502a3153e9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae1b18e881b65ac9c52d7e8ce926784bc"><td class="memTemplParams" colspan="2">template&lt;typename R , typename F &gt; </td></tr>
<tr class="memitem:ae1b18e881b65ac9c52d7e8ce926784bc"><td class="memTemplItemLeft" align="right" valign="top">std::vector&lt; R &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classignite_1_1compute_1_1Compute.html#ae1b18e881b65ac9c52d7e8ce926784bc">Broadcast</a> (const F &amp;func)</td></tr>
<tr class="memdesc:ae1b18e881b65ac9c52d7e8ce926784bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Broadcasts provided <a class="el" href="classignite_1_1compute_1_1ComputeFunc.html" title="Interface for a simple compute function that can be serialized and called on the remote nodes...">ComputeFunc</a> to all nodes in the cluster group. <a href="#ae1b18e881b65ac9c52d7e8ce926784bc">More...</a><br /></td></tr>
<tr class="separator:ae1b18e881b65ac9c52d7e8ce926784bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac88705f7750ccb045a0aa5f0cb1af1e"><td class="memTemplParams" colspan="2">template&lt;typename F &gt; </td></tr>
<tr class="memitem:aac88705f7750ccb045a0aa5f0cb1af1e"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classignite_1_1compute_1_1Compute.html#aac88705f7750ccb045a0aa5f0cb1af1e">Broadcast</a> (const F &amp;func)</td></tr>
<tr class="memdesc:aac88705f7750ccb045a0aa5f0cb1af1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Broadcasts provided <a class="el" href="classignite_1_1compute_1_1ComputeFunc.html" title="Interface for a simple compute function that can be serialized and called on the remote nodes...">ComputeFunc</a> to all nodes in the cluster group. <a href="#aac88705f7750ccb045a0aa5f0cb1af1e">More...</a><br /></td></tr>
<tr class="separator:aac88705f7750ccb045a0aa5f0cb1af1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec7706da990ae1627fe03068ba0d4348"><td class="memTemplParams" colspan="2">template&lt;typename R , typename F &gt; </td></tr>
<tr class="memitem:aec7706da990ae1627fe03068ba0d4348"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classignite_1_1Future.html">Future</a>&lt; std::vector&lt; R &gt; &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classignite_1_1compute_1_1Compute.html#aec7706da990ae1627fe03068ba0d4348">BroadcastAsync</a> (const F &amp;func)</td></tr>
<tr class="memdesc:aec7706da990ae1627fe03068ba0d4348"><td class="mdescLeft">&#160;</td><td class="mdescRight">Asyncronuously broadcasts provided <a class="el" href="classignite_1_1compute_1_1ComputeFunc.html" title="Interface for a simple compute function that can be serialized and called on the remote nodes...">ComputeFunc</a> to all nodes in the cluster group. <a href="#aec7706da990ae1627fe03068ba0d4348">More...</a><br /></td></tr>
<tr class="separator:aec7706da990ae1627fe03068ba0d4348"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a5219371ae17473ae0528494b9b0a64"><td class="memTemplParams" colspan="2">template&lt;typename F &gt; </td></tr>
<tr class="memitem:a9a5219371ae17473ae0528494b9b0a64"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classignite_1_1Future.html">Future</a>&lt; void &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classignite_1_1compute_1_1Compute.html#a9a5219371ae17473ae0528494b9b0a64">BroadcastAsync</a> (const F &amp;func)</td></tr>
<tr class="memdesc:a9a5219371ae17473ae0528494b9b0a64"><td class="mdescLeft">&#160;</td><td class="mdescRight">Asyncronuously broadcasts provided <a class="el" href="classignite_1_1compute_1_1ComputeFunc.html" title="Interface for a simple compute function that can be serialized and called on the remote nodes...">ComputeFunc</a> to all nodes in the cluster group. <a href="#a9a5219371ae17473ae0528494b9b0a64">More...</a><br /></td></tr>
<tr class="separator:a9a5219371ae17473ae0528494b9b0a64"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Defines compute grid functionality for executing tasks and closures over nodes in the ClusterGroup. </p>
<p>Instance of <a class="el" href="classignite_1_1compute_1_1Compute.html" title="Defines compute grid functionality for executing tasks and closures over nodes in the ClusterGroup...">Compute</a> is obtained from <a class="el" href="classignite_1_1Ignite.html" title="Main interface to operate with Ignite. ">Ignite</a> as follows: </p><div class="fragment"><div class="line">Ignite node = <a class="code" href="classignite_1_1Ignition.html#a315203f10279abb51fded37725cfff5a">Ignition::Get</a>();</div><div class="line"></div><div class="line"><span class="comment">// Compute over all nodes in the cluster.</span></div><div class="line"><a class="code" href="classignite_1_1compute_1_1Compute.html#a46471b90d45dcc498687eb2c96c21a15">Compute</a> c = node.GetCompute();</div></div><!-- fragment --><dl class="section user"><dt>Load Balancing</dt><dd>In all cases other than <code>Broadcast(...)</code>, <a class="el" href="classignite_1_1Ignite.html" title="Main interface to operate with Ignite. ">Ignite</a> must select a node for a computation to be executed. The node will be selected based on the underlying <code>LoadBalancingSpi</code>, which by default sequentially picks next available node from the underlying cluster group. Other load balancing policies, such as <code>random</code> or <code>adaptive</code>, can be configured as well by selecting a different load balancing SPI in <a class="el" href="classignite_1_1Ignite.html" title="Main interface to operate with Ignite. ">Ignite</a> configuration.</dd></dl>
<dl class="section user"><dt>Fault Tolerance</dt><dd><a class="el" href="classignite_1_1Ignite.html" title="Main interface to operate with Ignite. ">Ignite</a> guarantees that as long as there is at least one grid node standing, every job will be executed. Jobs will automatically failover to another node if a remote node crashed or has rejected execution due to lack of resources. By default, in case of failover, next load balanced node will be picked for job execution. Also jobs will never be re-routed to the nodes they have failed on. This behavior can be changed by configuring any of the existing or a custom FailoverSpi in grid configuration.</dd></dl>
<dl class="section user"><dt>Computation SPIs</dt><dd>Note that regardless of which method is used for executing computations, all relevant SPI implementations configured for this compute instance will be used (i.e. failover, load balancing, collision resolution, checkpoints, etc.). </dd></dl>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a46471b90d45dcc498687eb2c96c21a15"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ignite::compute::Compute::Compute </td>
<td>(</td>
<td class="paramtype">common::concurrent::SharedPointer&lt; impl::compute::ComputeImpl &gt;&#160;</td>
<td class="paramname"><em>impl</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>Constructor. </p>
<p>Internal method. Should not be used by user.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">impl</td><td>Implementation. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="ae1b18e881b65ac9c52d7e8ce926784bc"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename R , typename F &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::vector&lt;R&gt; ignite::compute::Compute::Broadcast </td>
<td>(</td>
<td class="paramtype">const F &amp;&#160;</td>
<td class="paramname"><em>func</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>Broadcasts provided <a class="el" href="classignite_1_1compute_1_1ComputeFunc.html" title="Interface for a simple compute function that can be serialized and called on the remote nodes...">ComputeFunc</a> to all nodes in the cluster group. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">R</td><td>Function return type. BinaryType should be specialized for the type if it is not primitive. </td></tr>
<tr><td class="paramname">F</td><td><a class="el" href="classignite_1_1compute_1_1Compute.html" title="Defines compute grid functionality for executing tasks and closures over nodes in the ClusterGroup...">Compute</a> function type. Should implement ComputeFunc&lt;R&gt; class. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">func</td><td><a class="el" href="classignite_1_1compute_1_1Compute.html" title="Defines compute grid functionality for executing tasks and closures over nodes in the ClusterGroup...">Compute</a> function to call. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Vector containing computation results. </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classignite_1_1IgniteError.html" title="Ignite error information. ">IgniteError</a></td><td>in case of error. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="aac88705f7750ccb045a0aa5f0cb1af1e"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename F &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ignite::compute::Compute::Broadcast </td>
<td>(</td>
<td class="paramtype">const F &amp;&#160;</td>
<td class="paramname"><em>func</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>Broadcasts provided <a class="el" href="classignite_1_1compute_1_1ComputeFunc.html" title="Interface for a simple compute function that can be serialized and called on the remote nodes...">ComputeFunc</a> to all nodes in the cluster group. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">F</td><td><a class="el" href="classignite_1_1compute_1_1Compute.html" title="Defines compute grid functionality for executing tasks and closures over nodes in the ClusterGroup...">Compute</a> function type. Should implement ComputeFunc&lt;R&gt; class. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">func</td><td><a class="el" href="classignite_1_1compute_1_1Compute.html" title="Defines compute grid functionality for executing tasks and closures over nodes in the ClusterGroup...">Compute</a> function to call. </td></tr>
</table>
</dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classignite_1_1IgniteError.html" title="Ignite error information. ">IgniteError</a></td><td>in case of error. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="aec7706da990ae1627fe03068ba0d4348"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename R , typename F &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classignite_1_1Future.html">Future</a>&lt; std::vector&lt;R&gt; &gt; ignite::compute::Compute::BroadcastAsync </td>
<td>(</td>
<td class="paramtype">const F &amp;&#160;</td>
<td class="paramname"><em>func</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>Asyncronuously broadcasts provided <a class="el" href="classignite_1_1compute_1_1ComputeFunc.html" title="Interface for a simple compute function that can be serialized and called on the remote nodes...">ComputeFunc</a> to all nodes in the cluster group. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">R</td><td>Function return type. BinaryType should be specialized for the type if it is not primitive. </td></tr>
<tr><td class="paramname">F</td><td><a class="el" href="classignite_1_1compute_1_1Compute.html" title="Defines compute grid functionality for executing tasks and closures over nodes in the ClusterGroup...">Compute</a> function type. Should implement ComputeFunc&lt;R&gt; class. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">func</td><td><a class="el" href="classignite_1_1compute_1_1Compute.html" title="Defines compute grid functionality for executing tasks and closures over nodes in the ClusterGroup...">Compute</a> function to call. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classignite_1_1Future.html" title="Future class template. ">Future</a> that can be used to access computation results once they are ready. </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classignite_1_1IgniteError.html" title="Ignite error information. ">IgniteError</a></td><td>in case of error. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a9a5219371ae17473ae0528494b9b0a64"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename F &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classignite_1_1Future.html">Future</a>&lt;void&gt; ignite::compute::Compute::BroadcastAsync </td>
<td>(</td>
<td class="paramtype">const F &amp;&#160;</td>
<td class="paramname"><em>func</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>Asyncronuously broadcasts provided <a class="el" href="classignite_1_1compute_1_1ComputeFunc.html" title="Interface for a simple compute function that can be serialized and called on the remote nodes...">ComputeFunc</a> to all nodes in the cluster group. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">F</td><td><a class="el" href="classignite_1_1compute_1_1Compute.html" title="Defines compute grid functionality for executing tasks and closures over nodes in the ClusterGroup...">Compute</a> function type. Should implement ComputeFunc&lt;R&gt; class. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">func</td><td><a class="el" href="classignite_1_1compute_1_1Compute.html" title="Defines compute grid functionality for executing tasks and closures over nodes in the ClusterGroup...">Compute</a> function to call. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classignite_1_1Future.html" title="Future class template. ">Future</a> that can be used to wait for action to complete. </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classignite_1_1IgniteError.html" title="Ignite error information. ">IgniteError</a></td><td>in case of error. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a5ca0cdfcd21e2b6999aa3831bd53b713"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename R , typename F &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">R ignite::compute::Compute::Call </td>
<td>(</td>
<td class="paramtype">const F &amp;&#160;</td>
<td class="paramname"><em>func</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>Calls provided <a class="el" href="classignite_1_1compute_1_1ComputeFunc.html" title="Interface for a simple compute function that can be serialized and called on the remote nodes...">ComputeFunc</a> on a node within the underlying cluster group. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">R</td><td>Call return type. BinaryType should be specialized for the type if it is not primitive. Should not be void. For non-returning methods see <a class="el" href="classignite_1_1compute_1_1Compute.html#a5552a0110ef5ef25429393416c6c7aa9" title="Runs provided ComputeFunc on a node within the underlying cluster group. ">Compute::Run()</a>. </td></tr>
<tr><td class="paramname">F</td><td><a class="el" href="classignite_1_1compute_1_1Compute.html" title="Defines compute grid functionality for executing tasks and closures over nodes in the ClusterGroup...">Compute</a> function type. Should implement ComputeFunc&lt;R&gt; class. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">func</td><td><a class="el" href="classignite_1_1compute_1_1Compute.html" title="Defines compute grid functionality for executing tasks and closures over nodes in the ClusterGroup...">Compute</a> function to call. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Computation result. </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classignite_1_1IgniteError.html" title="Ignite error information. ">IgniteError</a></td><td>in case of error. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a12c478a31dec5a52a0f3cc99052941ea"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename R , typename F &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classignite_1_1Future.html">Future</a>&lt;R&gt; ignite::compute::Compute::CallAsync </td>
<td>(</td>
<td class="paramtype">const F &amp;&#160;</td>
<td class="paramname"><em>func</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>Asyncronuously calls provided <a class="el" href="classignite_1_1compute_1_1ComputeFunc.html" title="Interface for a simple compute function that can be serialized and called on the remote nodes...">ComputeFunc</a> on a node within the underlying cluster group. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">R</td><td>Call return type. BinaryType should be specialized for the type if it is not primitive. Should not be void. For non-returning methods see <a class="el" href="classignite_1_1compute_1_1Compute.html#a5552a0110ef5ef25429393416c6c7aa9" title="Runs provided ComputeFunc on a node within the underlying cluster group. ">Compute::Run()</a>. </td></tr>
<tr><td class="paramname">F</td><td><a class="el" href="classignite_1_1compute_1_1Compute.html" title="Defines compute grid functionality for executing tasks and closures over nodes in the ClusterGroup...">Compute</a> function type. Should implement ComputeFunc&lt;R&gt; class. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">func</td><td><a class="el" href="classignite_1_1compute_1_1Compute.html" title="Defines compute grid functionality for executing tasks and closures over nodes in the ClusterGroup...">Compute</a> function to call. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classignite_1_1Future.html" title="Future class template. ">Future</a> that can be used to access computation result once it's ready. </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classignite_1_1IgniteError.html" title="Ignite error information. ">IgniteError</a></td><td>in case of error. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a5552a0110ef5ef25429393416c6c7aa9"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename F &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ignite::compute::Compute::Run </td>
<td>(</td>
<td class="paramtype">const F &amp;&#160;</td>
<td class="paramname"><em>action</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>Runs provided <a class="el" href="classignite_1_1compute_1_1ComputeFunc.html" title="Interface for a simple compute function that can be serialized and called on the remote nodes...">ComputeFunc</a> on a node within the underlying cluster group. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">F</td><td><a class="el" href="classignite_1_1compute_1_1Compute.html" title="Defines compute grid functionality for executing tasks and closures over nodes in the ClusterGroup...">Compute</a> function type. Should implement ComputeFunc&lt;void&gt; class. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">action</td><td><a class="el" href="classignite_1_1compute_1_1Compute.html" title="Defines compute grid functionality for executing tasks and closures over nodes in the ClusterGroup...">Compute</a> function to call. </td></tr>
</table>
</dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classignite_1_1IgniteError.html" title="Ignite error information. ">IgniteError</a></td><td>in case of error. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a925b1ce324d200b1a1646502a3153e9c"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename F &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classignite_1_1Future.html">Future</a>&lt;void&gt; ignite::compute::Compute::RunAsync </td>
<td>(</td>
<td class="paramtype">const F &amp;&#160;</td>
<td class="paramname"><em>action</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>Asyncronuously runs provided <a class="el" href="classignite_1_1compute_1_1ComputeFunc.html" title="Interface for a simple compute function that can be serialized and called on the remote nodes...">ComputeFunc</a> on a node within the underlying cluster group. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">F</td><td><a class="el" href="classignite_1_1compute_1_1Compute.html" title="Defines compute grid functionality for executing tasks and closures over nodes in the ClusterGroup...">Compute</a> function type. Should implement ComputeFunc&lt;void&gt; class. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">action</td><td><a class="el" href="classignite_1_1compute_1_1Compute.html" title="Defines compute grid functionality for executing tasks and closures over nodes in the ClusterGroup...">Compute</a> function to call. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classignite_1_1Future.html" title="Future class template. ">Future</a> that can be used to wait for action to complete. </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classignite_1_1IgniteError.html" title="Ignite error information. ">IgniteError</a></td><td>in case of error. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="compute_8h_source.html">compute.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jul 10 2018 10:57:33 for &nbsp; Apache Ignite C++ by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>