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

<!-- Generated by javadoc (version 1.7.0_80) on Thu Jul 20 19:37:44 UTC 2017 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>org.apache.ignite.spi.discovery (Ignite 2.1.0)</title>
<meta name="date" content="2017-07-20">
<link rel="stylesheet" type="text/css" href="../../../../../javadoc.css" title="Style">

<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/spi/discovery/package-summary.html" target="classFrame">org.apache.ignite.spi.discovery</a></h1>
<div class="indexContainer">
<h2 title="Interfaces">Interfaces</h2>
<ul title="Interfaces">
<li><a href="DiscoveryDataBag.GridDiscoveryData.html" title="interface in org.apache.ignite.spi.discovery" target="classFrame"><i>DiscoveryDataBag.GridDiscoveryData</i></a></li>
<li><a href="DiscoveryDataBag.JoiningNodeDiscoveryData.html" title="interface in org.apache.ignite.spi.discovery" target="classFrame"><i>DiscoveryDataBag.JoiningNodeDiscoveryData</i></a></li>
<li><a href="DiscoveryMetricsProvider.html" title="interface in org.apache.ignite.spi.discovery" target="classFrame"><i>DiscoveryMetricsProvider</i></a></li>
<li><a href="DiscoverySpi.html" title="interface in org.apache.ignite.spi.discovery" target="classFrame"><i>DiscoverySpi</i></a></li>
<li><a href="DiscoverySpiCustomMessage.html" title="interface in org.apache.ignite.spi.discovery" target="classFrame"><i>DiscoverySpiCustomMessage</i></a></li>
<li><a href="DiscoverySpiDataExchange.html" title="interface in org.apache.ignite.spi.discovery" target="classFrame"><i>DiscoverySpiDataExchange</i></a></li>
<li><a href="DiscoverySpiListener.html" title="interface in org.apache.ignite.spi.discovery" target="classFrame"><i>DiscoverySpiListener</i></a></li>
<li><a href="DiscoverySpiNodeAuthenticator.html" title="interface in org.apache.ignite.spi.discovery" target="classFrame"><i>DiscoverySpiNodeAuthenticator</i></a></li>
</ul>
<h2 title="Classes">Classes</h2>
<ul title="Classes">
<li><a href="DiscoveryDataBag.html" title="class in org.apache.ignite.spi.discovery" target="classFrame">DiscoveryDataBag</a></li>
</ul>
<h2 title="Annotation Types">Annotation Types</h2>
<ul title="Annotation Types">
<li><a href="DiscoverySpiHistorySupport.html" title="annotation in org.apache.ignite.spi.discovery" target="classFrame">DiscoverySpiHistorySupport</a></li>
<li><a href="DiscoverySpiOrderSupport.html" title="annotation in org.apache.ignite.spi.discovery" target="classFrame">DiscoverySpiOrderSupport</a></li>
</ul>
</div>
</body>
</html>
