<!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.5.0/javadoc/org/apache/ignite/compute/gridify/package-frame.html" />
<META NAME="ROBOTS" CONTENT="NOINDEX">

<!-- Generated by javadoc (1.8.0_77) on Wed May 23 17:56:20 UTC 2018 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>org.apache.ignite.compute.gridify (Ignite 2.5.0)</title>
<meta name="date" content="2018-05-23">
<link rel="stylesheet" type="text/css" href="../../../../../javadoc.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>

<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>
