<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<link rel="canonical" href="https://ignite.apache.org/releases/2.8.0/javadoc/org/apache/ignite/compute/gridify/package-frame.html" />
<META NAME="ROBOTS" CONTENT="NOINDEX">



<!-- Generated by javadoc (1.8.0_221) on Thu Feb 27 14:09:43 MSK 2020 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>org.apache.ignite.compute.gridify (Ignite 2.8.0)</title>
<meta name="date" content="2020-02-27">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<link rel='shortcut icon' href='https://ignite.apache.org/favicon.ico'/>

<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>
<h1 class="bar"><a href="../../../../../org/apache/ignite/compute/gridify/package-summary.html" target="classFrame">org.apache.ignite.compute.gridify</a></h1>
<div class="indexContainer">
<h2 title="Interfaces">Interfaces</h2>
<ul title="Interfaces">
<li><a href="GridifyArgument.html" title="interface in org.apache.ignite.compute.gridify" target="classFrame"><span class="interfaceName">GridifyArgument</span></a></li>
<li><a href="GridifyInterceptor.html" title="interface in org.apache.ignite.compute.gridify" target="classFrame"><span class="interfaceName">GridifyInterceptor</span></a></li>
<li><a href="GridifyNodeFilter.html" title="interface in org.apache.ignite.compute.gridify" target="classFrame"><span class="interfaceName">GridifyNodeFilter</span></a></li>
</ul>
<h2 title="Classes">Classes</h2>
<ul title="Classes">
<li><a href="GridifyTaskAdapter.html" title="class in org.apache.ignite.compute.gridify" target="classFrame">GridifyTaskAdapter</a></li>
<li><a href="GridifyTaskSplitAdapter.html" title="class in org.apache.ignite.compute.gridify" target="classFrame">GridifyTaskSplitAdapter</a></li>
</ul>
<h2 title="Exceptions">Exceptions</h2>
<ul title="Exceptions">
<li><a href="GridifyRuntimeException.html" title="class in org.apache.ignite.compute.gridify" target="classFrame">GridifyRuntimeException</a></li>
</ul>
<h2 title="Annotation Types">Annotation Types</h2>
<ul title="Annotation Types">
<li><a href="Gridify.html" title="annotation in org.apache.ignite.compute.gridify" target="classFrame">Gridify</a></li>
<li><a href="GridifyInput.html" title="annotation in org.apache.ignite.compute.gridify" target="classFrame">GridifyInput</a></li>
<li><a href="GridifySetToSet.html" title="annotation in org.apache.ignite.compute.gridify" target="classFrame">GridifySetToSet</a></li>
<li><a href="GridifySetToValue.html" title="annotation in org.apache.ignite.compute.gridify" target="classFrame">GridifySetToValue</a></li>
</ul>
</div>
</body>
</html>
