blob: 4db44cf853aeaa22d4f425736ef73e5c5a8d9cbd [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0) on Sun Aug 28 20:42:02 EST 2016 -->
<title>AbstractLookupDiscovery (Apache River v3.0.0 API Documentation (internals))</title>
<meta name="date" content="2016-08-28">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="AbstractLookupDiscovery (Apache River v3.0.0 API Documentation (internals))";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":9,"i5":9,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":9,"i16":10,"i17":10,"i18":9,"i19":10,"i20":9,"i21":9,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":9,"i29":9,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":9,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":9,"i45":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/AbstractLookupDiscovery.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../net/jini/discovery/AbstractLookupDiscovery.AnnouncementInfo.html" title="class in net.jini.discovery"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?net/jini/discovery/AbstractLookupDiscovery.html" target="_top">Frames</a></li>
<li><a href="AbstractLookupDiscovery.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">net.jini.discovery</div>
<h2 title="Class AbstractLookupDiscovery" class="title">Class AbstractLookupDiscovery</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>net.jini.discovery.AbstractLookupDiscovery</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../net/jini/discovery/DiscoveryGroupManagement.html" title="interface in net.jini.discovery">DiscoveryGroupManagement</a>, <a href="../../../net/jini/discovery/DiscoveryManagement.html" title="interface in net.jini.discovery">DiscoveryManagement</a></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../net/jini/discovery/LookupDiscovery.html" title="class in net.jini.discovery">LookupDiscovery</a></dd>
</dl>
<hr>
<br>
<pre>abstract class <span class="typeNameLabel">AbstractLookupDiscovery</span>
extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="../../../net/jini/discovery/DiscoveryManagement.html" title="interface in net.jini.discovery">DiscoveryManagement</a>, <a href="../../../net/jini/discovery/DiscoveryGroupManagement.html" title="interface in net.jini.discovery">DiscoveryGroupManagement</a></pre>
<div class="block">This package private superclass of LocatorDiscovery exists for
safe construction of LocatorDiscovery's state, while retaining
backward compatibility of the API.
See www.securecoding.cert.org TSM01-J and OBJ11-J</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.AnnouncementInfo.html" title="class in net.jini.discovery">AbstractLookupDiscovery.AnnouncementInfo</a></span></code>
<div class="block">Holder class for the time and sequence number of the last
received announcement.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.AnnouncementListener.html" title="class in net.jini.discovery">AbstractLookupDiscovery.AnnouncementListener</a></span></code>
<div class="block">Thread that listens for multicast announcements from lookup services.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.AnnouncementTimerThread.html" title="class in net.jini.discovery">AbstractLookupDiscovery.AnnouncementTimerThread</a></span></code>
<div class="block">This thread monitors the multicast announcements sent from the
lookup service(s) that have already been discovered by this class,
looking for indications that those announcements have terminated.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.CheckGroupsMarker.html" title="class in net.jini.discovery">AbstractLookupDiscovery.CheckGroupsMarker</a></span></code>
<div class="block">Marker object placed in pendingDiscoveries set to indicate to
UnicastDiscoveryTask that the groups of the lookup service which sent
the contained announcement need to be verified.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.CheckReachabilityMarker.html" title="class in net.jini.discovery">AbstractLookupDiscovery.CheckReachabilityMarker</a></span></code>
<div class="block">Marker object placed in pendingDiscoveries set to indicate to
UnicastDiscoveryTask that reachability of the lookup service which sent
the contained unicast response needs to be verified.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.DecodeAnnouncementTask.html" title="class in net.jini.discovery">AbstractLookupDiscovery.DecodeAnnouncementTask</a></span></code>
<div class="block">Task which decodes received multicast announcement packets.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.Initializer.html" title="class in net.jini.discovery">AbstractLookupDiscovery.Initializer</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.Notifier.html" title="class in net.jini.discovery">AbstractLookupDiscovery.Notifier</a></span></code>
<div class="block">Thread that retrieves data structures of type NotifyTask from a
queue and, based on the contents of the data structure, sends the
appropriate event (discovered/discarded/changed) to each registered
listener.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.NotifyTask.html" title="class in net.jini.discovery">AbstractLookupDiscovery.NotifyTask</a></span></code>
<div class="block">Data structure containing task data processed by the Notifier Thread</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.Requestor.html" title="class in net.jini.discovery">AbstractLookupDiscovery.Requestor</a></span></code>
<div class="block">Thread that periodically sends out multicast requests for a limited
period of time, and then exits.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.ResponseListener.html" title="class in net.jini.discovery">AbstractLookupDiscovery.ResponseListener</a></span></code>
<div class="block">Thread that listens for multicast responses to the multicast requests
sent out by the Requestor Thread class.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.UnicastDiscoveryTask.html" title="class in net.jini.discovery">AbstractLookupDiscovery.UnicastDiscoveryTask</a></span></code>
<div class="block">Task which retrieves elements from the set of pendingDiscoveries and
performs the appropriate processing based on the object type of
the element.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#all_groups">all_groups</a></span></code>
<div class="block">If groups passed to constructor are null -- ALL_GROUPS, writes synchronised on registrars</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../../../net/jini/discovery/AbstractLookupDiscovery.AnnouncementListener.html" title="class in net.jini.discovery">AbstractLookupDiscovery.AnnouncementListener</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#announceeThread">announceeThread</a></span></code>
<div class="block">Thread that handles incoming multicast announcements.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../../../net/jini/discovery/AbstractLookupDiscovery.AnnouncementTimerThread.html" title="class in net.jini.discovery">AbstractLookupDiscovery.AnnouncementTimerThread</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#announcementTimerThread">announcementTimerThread</a></span></code>
<div class="block">Thread that monitors multicast announcements from already-discovered
lookup services and, upon determining that those announcements have
stopped, queues a reachability test with the UnicastDiscoveryTask
which will ultimately result in the lookup service being discarded
if the reachability test indicates that the lookup service is
actually down.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#CHANGED">CHANGED</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#COMPONENT_NAME">COMPONENT_NAME</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#DEFAULT_MAX_PACKET_SIZE">DEFAULT_MAX_PACKET_SIZE</a></span></code>
<div class="block">Default maximum size of multicast packets to send and receive.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#DEFAULT_MULTICAST_TTL">DEFAULT_MULTICAST_TTL</a></span></code>
<div class="block">Default time to live value to use for sending multicast packets.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#DEFAULT_SOCKET_TIMEOUT">DEFAULT_SOCKET_TIMEOUT</a></span></code>
<div class="block">Default timeout to set on sockets used for unicast discovery.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#DISCARDED">DISCARDED</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#DISCOVERED">DISCOVERED</a></span></code>
<div class="block">Constants used to tell the notifierThread the type of event to send</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../../../org/apache/river/thread/WakeupManager.html" title="class in org.apache.river.thread">WakeupManager</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#discoveryWakeupMgr">discoveryWakeupMgr</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent.ExecutorService.html?is-external=true" title="class or interface in java.util">java.util.concurrent.ExecutorService</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#executor">executor</a></span></code>
<div class="block">ExecutorService for running UnicastDiscoveryTasks and
DecodeAnnouncementTasks.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#finalMulticastRequestInterval">finalMulticastRequestInterval</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#groups">groups</a></span></code>
<div class="block">The groups to discover.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#initialMulticastRequestDelayRange">initialMulticastRequestDelayRange</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#initialRequestorStarted">initialRequestorStarted</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#isDefaultWakeupMgr">isDefaultWakeupMgr</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../net/jini/discovery/DiscoveryListener.html" title="interface in net.jini.discovery">DiscoveryListener</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#listeners">listeners</a></span></code>
<div class="block">Set of listeners to be sent discovered/discarded/changed events.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static <a href="http://docs.oracle.com/javase/6/docs/api/java/util/logging/Logger.html?is-external=true" title="class or interface in java.util.logging">Logger</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#logger">logger</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#MAX_N_TASKS">MAX_N_TASKS</a></span></code>
<div class="block">Maximum number of concurrent tasks that can be run in any executor
created by this class.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../../../org/apache/river/discovery/DiscoveryConstraints.html" title="class in org.apache.river.discovery">DiscoveryConstraints</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#multicastAnnouncementConstraints">multicastAnnouncementConstraints</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#multicastAnnouncementInterval">multicastAnnouncementInterval</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../../../org/apache/river/discovery/DiscoveryConstraints.html" title="class in org.apache.river.discovery">DiscoveryConstraints</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#multicastRequestConstraints">multicastRequestConstraints</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#multicastRequestHost">multicastRequestHost</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#multicastRequestInterval">multicastRequestInterval</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#multicastRequestMax">multicastRequestMax</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#nicRetryInterval">nicRetryInterval</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/net/NetworkInterface.html?is-external=true" title="class or interface in java.net">NetworkInterface</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#nics">nics</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#NICS_USE_ALL">NICS_USE_ALL</a></span></code>
<div class="block">Constants used to indicate the set of network interfaces being used</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#NICS_USE_LIST">NICS_USE_LIST</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#NICS_USE_NONE">NICS_USE_NONE</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#NICS_USE_SYS">NICS_USE_SYS</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#nicsToUse">nicsToUse</a></span></code>
<div class="block">Flag that indicates how the set of network interfaces was configured</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../../../net/jini/discovery/AbstractLookupDiscovery.Notifier.html" title="class in net.jini.discovery">AbstractLookupDiscovery.Notifier</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#notifierThread">notifierThread</a></span></code>
<div class="block">Thread that handles pending notifications.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#pendingDiscoveries">pendingDiscoveries</a></span></code>
<div class="block">Set that takes one of the following:
Socket (discovery from multicast request/response exchange)
LookupLocator (discovery from multicast announcement)
CheckGroupsMarker (discarded/changed from announcement)
CheckReachabilityMarker (announcements stopped, tests reachability)
Each element of this set represents a potential (or pending) discovered,
discarded, or changed event.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent.BlockingDeque.html?is-external=true" title="class or interface in java.util">java.util.concurrent.BlockingDeque</a>&lt;<a href="../../../net/jini/discovery/AbstractLookupDiscovery.NotifyTask.html" title="class in net.jini.discovery">AbstractLookupDiscovery.NotifyTask</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#pendingNotifies">pendingNotifies</a></span></code>
<div class="block">Notifications to be sent to listeners.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../../../org/apache/river/discovery/Discovery.html" title="class in org.apache.river.discovery">Discovery</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#protocol2">protocol2</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../../../net/jini/core/constraint/InvocationConstraints.html" title="class in net.jini.core.constraint">InvocationConstraints</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#rawUnicastDiscoveryConstraints">rawUnicastDiscoveryConstraints</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent.ConcurrentMap.html?is-external=true" title="class or interface in java.util">java.util.concurrent.ConcurrentMap</a>&lt;<a href="../../../net/jini/core/lookup/ServiceID.html" title="class in net.jini.core.lookup">ServiceID</a>,<a href="../../../net/jini/discovery/AbstractLookupDiscovery.AnnouncementInfo.html" title="class in net.jini.discovery">AbstractLookupDiscovery.AnnouncementInfo</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#regInfo">regInfo</a></span></code>
<div class="block">Map from ServiceID to multicast announcement time stamps; used by the
process that monitors multicast announcements from already-discovered
lookup services, and determines when those announcements have stopped.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../../../net/jini/security/ProxyPreparer.html" title="interface in net.jini.security">ProxyPreparer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#registrarPreparer">registrarPreparer</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../net/jini/core/lookup/ServiceID.html" title="class in net.jini.core.lookup">ServiceID</a>,<a href="../../../org/apache/river/discovery/UnicastResponse.html" title="class in org.apache.river.discovery">UnicastResponse</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#registrars">registrars</a></span></code>
<div class="block">Map from ServiceID to UnicastResponse.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#requestors">requestors</a></span></code>
<div class="block">Collection that contains instances of the Requestor Thread class,
each of which participate in multicast discovery by periodically
sending out multicast discovery requests for a finite period of time.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../../../net/jini/discovery/AbstractLookupDiscovery.ResponseListener.html" title="class in net.jini.discovery">AbstractLookupDiscovery.ResponseListener</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#respondeeThread">respondeeThread</a></span></code>
<div class="block">Thread that manages incoming multicast responses.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../../../net/jini/security/SecurityContext.html" title="interface in net.jini.security">SecurityContext</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#securityContext">securityContext</a></span></code>
<div class="block">Security context that contains the access control context to restore
for callbacks, etc.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#started">started</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#terminated">terminated</a></span></code>
<div class="block">Flag indicating whether or not this class is still functional.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#thrown">thrown</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../org/apache/river/thread/WakeupManager.Ticket.html" title="class in org.apache.river.thread">WakeupManager.Ticket</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#tickets">tickets</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#unicastDelayRange">unicastDelayRange</a></span></code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.net.jini.discovery.DiscoveryGroupManagement">
<!-- -->
</a>
<h3>Fields inherited from interface&nbsp;net.jini.discovery.<a href="../../../net/jini/discovery/DiscoveryGroupManagement.html" title="interface in net.jini.discovery">DiscoveryGroupManagement</a></h3>
<code><a href="../../../net/jini/discovery/DiscoveryGroupManagement.html#ALL_GROUPS">ALL_GROUPS</a>, <a href="../../../net/jini/discovery/DiscoveryGroupManagement.html#NO_GROUPS">NO_GROUPS</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colLast" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private)</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#AbstractLookupDiscovery-java.lang.String:A-">AbstractLookupDiscovery</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;groups)</code>
<div class="block">Construct a new lookup discovery object, set to discover the
given set of groups.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#AbstractLookupDiscovery-java.lang.String:A-net.jini.discovery.AbstractLookupDiscovery.Initializer-">AbstractLookupDiscovery</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;groups,
<a href="../../../net/jini/discovery/AbstractLookupDiscovery.Initializer.html" title="class in net.jini.discovery">AbstractLookupDiscovery.Initializer</a>&nbsp;init)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private)</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#AbstractLookupDiscovery-java.lang.String:A-net.jini.config.Configuration-">AbstractLookupDiscovery</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;groups,
<a href="../../../net/jini/config/Configuration.html" title="interface in net.jini.config">Configuration</a>&nbsp;config)</code>
<div class="block">Constructs a new lookup discovery object, set to discover the
given set of groups, and having the given <code>Configuration</code>.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#addDiscoveryListener-net.jini.discovery.DiscoveryListener-">addDiscoveryListener</a></span>(<a href="../../../net/jini/discovery/DiscoveryListener.html" title="interface in net.jini.discovery">DiscoveryListener</a>&nbsp;l)</code>
<div class="block">Register a listener as interested in receiving DiscoveryEvent
notifications.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#addGroups-java.lang.String:A-">addGroups</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;newGroups)</code>
<div class="block">Add a set of groups to the set to be discovered.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#addNotify-java.util.List-java.util.Map-int-">addNotify</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../net/jini/discovery/DiscoveryListener.html" title="interface in net.jini.discovery">DiscoveryListener</a>&gt;&nbsp;notifies,
<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup">ServiceRegistrar</a>,<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&gt;&nbsp;groupsMap,
int&nbsp;eventType)</code>
<div class="block">Add a notification task to the pending queue, and wake up the Notifier.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#checkAnnouncementConstraints-org.apache.river.discovery.MulticastAnnouncement-">checkAnnouncementConstraints</a></span>(<a href="../../../org/apache/river/discovery/MulticastAnnouncement.html" title="class in org.apache.river.discovery">MulticastAnnouncement</a>&nbsp;ann)</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>private static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#checkGroups-java.lang.String:A-">checkGroups</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;groups)</code>
<div class="block">Determines if the caller has discovery permission for each group.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>private static <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#collectionToStrings-java.util.Collection-">collectionToStrings</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&nbsp;c)</code>
<div class="block">Converts a collection to an array of strings.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>private <a href="../../../org/apache/river/discovery/MulticastAnnouncement.html" title="class in org.apache.river.discovery">MulticastAnnouncement</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#decodeMulticastAnnouncement-java.net.DatagramPacket-">decodeMulticastAnnouncement</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/net/DatagramPacket.html?is-external=true" title="class or interface in java.net">DatagramPacket</a>&nbsp;pkt)</code>
<div class="block">Decodes received multicast announcement packet.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup">ServiceRegistrar</a>,<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#deepCopy-java.util.Map-">deepCopy</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup">ServiceRegistrar</a>,<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&gt;&nbsp;groupsMap)</code>
<div class="block">Creates and returns a deep copy of the input parameter.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#discard-net.jini.core.lookup.ServiceRegistrar-">discard</a></span>(<a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup">ServiceRegistrar</a>&nbsp;reg)</code>
<div class="block">Discard a registrar from the set of registrars already
discovered.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>private <a href="../../../org/apache/river/discovery/UnicastResponse.html" title="class in org.apache.river.discovery">UnicastResponse</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#doUnicastDiscovery-java.net.Socket-org.apache.river.discovery.DiscoveryConstraints-">doUnicastDiscovery</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/net/Socket.html?is-external=true" title="class or interface in java.net">Socket</a>&nbsp;socket,
<a href="../../../org/apache/river/discovery/DiscoveryConstraints.html" title="class in org.apache.river.discovery">DiscoveryConstraints</a>&nbsp;unicastDiscoveryConstraints)</code>&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>private <a href="../../../org/apache/river/discovery/UnicastResponse.html" title="class in org.apache.river.discovery">UnicastResponse</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#doUnicastDiscovery-java.net.Socket-org.apache.river.discovery.DiscoveryConstraints-org.apache.river.discovery.Discovery-">doUnicastDiscovery</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/net/Socket.html?is-external=true" title="class or interface in java.net">Socket</a>&nbsp;socket,
<a href="../../../org/apache/river/discovery/DiscoveryConstraints.html" title="class in org.apache.river.discovery">DiscoveryConstraints</a>&nbsp;unicastDiscoveryConstraints,
<a href="../../../org/apache/river/discovery/Discovery.html" title="class in org.apache.river.discovery">Discovery</a>&nbsp;disco)</code>
<div class="block">Performs unicast discovery over given socket based on protocol in use,
applying configured security constraints (if any).</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/net/DatagramPacket.html?is-external=true" title="class or interface in java.net">DatagramPacket</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#encodeMulticastRequest-org.apache.river.discovery.MulticastRequest-">encodeMulticastRequest</a></span>(<a href="../../../org/apache/river/discovery/MulticastRequest.html" title="class in org.apache.river.discovery">MulticastRequest</a>&nbsp;req)</code>
<div class="block">Encodes outgoing multicast requests based on protocol in use, applying
configured security constraints (if any).</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#getActualGroups-net.jini.core.lookup.ServiceRegistrar-">getActualGroups</a></span>(<a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup">ServiceRegistrar</a>&nbsp;reg)</code>
<div class="block">This method retrieves from the given <code>ServiceRegistrar</code>,
the current groups in which that registrar is a member.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>private <a href="../../../org/apache/river/discovery/Discovery.html" title="class in org.apache.river.discovery">Discovery</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#getDiscovery-int-">getDiscovery</a></span>(int&nbsp;version)</code>
<div class="block">Returns Discovery instance for the given version, or throws
DiscoveryProtocolException if the version is unsupported.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#getGroups--">getGroups</a></span>()</code>
<div class="block">Return the set of group names this LookupDiscovery instance is
trying to discover.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>private static <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#getLocalHost--">getLocalHost</a></span>()</code>
<div class="block">Returns the local host name.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code><a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup">ServiceRegistrar</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#getRegistrars--">getRegistrars</a></span>()</code>
<div class="block">Returns an array of instances of <code>ServiceRegistrar</code>, each
corresponding to a proxy to one of the currently discovered lookup
services.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>private <a href="../../../net/jini/core/lookup/ServiceID.html" title="class in net.jini.core.lookup">ServiceID</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#getServiceIDs--">getServiceIDs</a></span>()</code>
<div class="block">Returns the service IDs of the lookup service(s) discovered to date.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>private static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#groupSetsEqual-java.lang.String:A-java.lang.String:A-">groupSetsEqual</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;groupSet0,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;groupSet1)</code>
<div class="block">Determines if two sets of registrar member groups have identical
contents.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#groupsOverlap-java.lang.String:A-">groupsOverlap</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;possibilities)</code>
<div class="block">Indicate whether any of the group names in the given array match
any of the groups of interest.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>(package private) static <a href="../../../net/jini/discovery/AbstractLookupDiscovery.Initializer.html" title="class in net.jini.discovery">AbstractLookupDiscovery.Initializer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#init-net.jini.config.Configuration-">init</a></span>(<a href="../../../net/jini/config/Configuration.html" title="interface in net.jini.config">Configuration</a>&nbsp;config)</code>&nbsp;</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>(package private) static <a href="../../../net/jini/discovery/AbstractLookupDiscovery.Initializer.html" title="class in net.jini.discovery">AbstractLookupDiscovery.Initializer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#initEmptyConf--">initEmptyConf</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup">ServiceRegistrar</a>,<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#mapRegToGroups-net.jini.core.lookup.ServiceRegistrar-java.lang.String:A-">mapRegToGroups</a></span>(<a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup">ServiceRegistrar</a>&nbsp;reg,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;curGroups)</code>
<div class="block">Convenience method that creates and returns a mapping of a single
<code>ServiceRegistrar</code> instance to a set of groups.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#maybeAddNewRegistrar-org.apache.river.discovery.UnicastResponse-">maybeAddNewRegistrar</a></span>(<a href="../../../org/apache/river/discovery/UnicastResponse.html" title="class in org.apache.river.discovery">UnicastResponse</a>&nbsp;resp)</code>
<div class="block">If the lookup service associated with the given UnicastResponse
is not in the set of already-discovered lookup services, this method
adds it to that set, and each registered listener is notified.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#maybeDiscardRegistrars--">maybeDiscardRegistrars</a></span>()</code>
<div class="block">Determine if any of the already-discovered registrars are no longer
members of any of the groups to discover, and discard those registrars
that are no longer members of any of those groups.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#maybeSendEvent-org.apache.river.discovery.UnicastResponse-java.lang.String:A-">maybeSendEvent</a></span>(<a href="../../../org/apache/river/discovery/UnicastResponse.html" title="class in org.apache.river.discovery">UnicastResponse</a>&nbsp;response,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;newGroups)</code>
<div class="block">After a possible change in the member groups of the
<code>ServiceRegistrar</code> corresponding to the given
<code>UnicastResponse</code> parameter, this method
determines whether or not the registrar's member groups have
changed in such a way that either a changed event or a discarded
event is warranted.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#notifyOnGroupChange-net.jini.core.lookup.ServiceRegistrar-java.lang.String:A-java.lang.String:A-">notifyOnGroupChange</a></span>(<a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup">ServiceRegistrar</a>&nbsp;reg,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;oldGroups,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;newGroups)</code>
<div class="block">After a possible change in the member groups of the given
<code>ServiceRegistrar</code> parameter, this method compares
the registrar's original set of member groups to its new set
of member groups.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#nukeThreads--">nukeThreads</a></span>()</code>
<div class="block">Terminates (interrupts) all currently-running threads.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>private static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#prepareSocket-java.net.Socket-org.apache.river.discovery.DiscoveryConstraints-">prepareSocket</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/net/Socket.html?is-external=true" title="class or interface in java.net">Socket</a>&nbsp;s,
<a href="../../../org/apache/river/discovery/DiscoveryConstraints.html" title="class in org.apache.river.discovery">DiscoveryConstraints</a>&nbsp;dc)</code>&nbsp;</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>private static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#registrarsEqual-org.apache.river.discovery.UnicastResponse-org.apache.river.discovery.UnicastResponse-">registrarsEqual</a></span>(<a href="../../../org/apache/river/discovery/UnicastResponse.html" title="class in org.apache.river.discovery">UnicastResponse</a>&nbsp;resp1,
<a href="../../../org/apache/river/discovery/UnicastResponse.html" title="class in org.apache.river.discovery">UnicastResponse</a>&nbsp;resp2)</code>
<div class="block">Returns true if the registrars contained in the given (possibly null)
UnicastResponse instances are equals() to one another.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#removeDiscoveryListener-net.jini.discovery.DiscoveryListener-">removeDiscoveryListener</a></span>(<a href="../../../net/jini/discovery/DiscoveryListener.html" title="interface in net.jini.discovery">DiscoveryListener</a>&nbsp;l)</code>
<div class="block">Indicate that a listener is no longer interested in receiving
DiscoveryEvent notifications.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#removeGroups-java.lang.String:A-">removeGroups</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;oldGroups)</code>
<div class="block">Remove a set of groups from the set to be discovered.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#removeGroupsInt-java.lang.String:A-">removeGroupsInt</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;oldGroups)</code>
<div class="block">Remove the specified groups from the set of groups to discover, and
return true if any were actually removed.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#requestGroups-java.util.Collection-">requestGroups</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&nbsp;req)</code>
<div class="block">Called at startup and whenever the set of groups to discover is
changed.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#restoreContextAddTask-java.lang.Runnable-">restoreContextAddTask</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a>&nbsp;t)</code>&nbsp;</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>private <a href="../../../org/apache/river/thread/WakeupManager.Ticket.html" title="class in org.apache.river.thread">WakeupManager.Ticket</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#restoreContextScheduleRunnable-net.jini.discovery.AbstractLookupDiscovery.UnicastDiscoveryTask-">restoreContextScheduleRunnable</a></span>(<a href="../../../net/jini/discovery/AbstractLookupDiscovery.UnicastDiscoveryTask.html" title="class in net.jini.discovery">AbstractLookupDiscovery.UnicastDiscoveryTask</a>&nbsp;t)</code>&nbsp;</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#sendChanged-net.jini.core.lookup.ServiceRegistrar-java.lang.String:A-">sendChanged</a></span>(<a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup">ServiceRegistrar</a>&nbsp;reg,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;curGroups)</code>
<div class="block">Convenience method that sends a changed event containing only
one registrar to all registered listeners that are interested in
such events.</div>
</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#sendDiscarded-net.jini.core.lookup.ServiceRegistrar-java.lang.String:A-">sendDiscarded</a></span>(<a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup">ServiceRegistrar</a>&nbsp;reg,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;curGroups)</code>
<div class="block">Convenience method that sends a discarded event containing only
one registrar to all registered listeners.</div>
</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code>private static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#sendPacket-java.net.MulticastSocket-java.net.DatagramPacket:A-">sendPacket</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/net/MulticastSocket.html?is-external=true" title="class or interface in java.net">MulticastSocket</a>&nbsp;mcSocket,
<a href="http://docs.oracle.com/javase/6/docs/api/java/net/DatagramPacket.html?is-external=true" title="class or interface in java.net">DatagramPacket</a>[]&nbsp;packet)</code>
<div class="block">Sends the given packet data on the given <code>MulticastSocket</code>
through the network interface that is currently set.</div>
</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#sendPacketByNIC-java.net.MulticastSocket-java.net.DatagramPacket:A-">sendPacketByNIC</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/net/MulticastSocket.html?is-external=true" title="class or interface in java.net">MulticastSocket</a>&nbsp;mcSocket,
<a href="http://docs.oracle.com/javase/6/docs/api/java/net/DatagramPacket.html?is-external=true" title="class or interface in java.net">DatagramPacket</a>[]&nbsp;packet)</code>
<div class="block">Sends the given packet data on the given <code>MulticastSocket</code>
through each of the network interfaces corresponding to elements of
the array configured when this utility was constructed.</div>
</td>
</tr>
<tr id="i40" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#setGroups-java.lang.String:A-">setGroups</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;newGroups)</code>
<div class="block">Change the set of groups to be discovered to correspond to the
given set.</div>
</td>
</tr>
<tr id="i41" class="rowColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#start--">start</a></span>()</code>
<div class="block">In previous releases threads were started in the constructor, however
this violates safe construction according to the JMM.</div>
</td>
</tr>
<tr id="i42" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#terminate--">terminate</a></span>()</code>
<div class="block">Terminate the discovery process.</div>
</td>
</tr>
<tr id="i43" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#terminateTaskMgr--">terminateTaskMgr</a></span>()</code>
<div class="block">This method removes all pending and active tasks from the TaskManager
for this instance.</div>
</td>
</tr>
<tr id="i44" class="altColor">
<td class="colFirst"><code>private static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#testArrayForNullElement-java.lang.String:A-">testArrayForNullElement</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;groupArray)</code>
<div class="block">This method is used by the public methods of this class that are
specified to throw a <code>NullPointerException</code> when the given
array of group names contains one or more <code>null</code> elements;
in which case, this method throws a <code>NullPointerException</code>
which should be allowed to propagate outward.</div>
</td>
</tr>
<tr id="i45" class="rowColor">
<td class="colFirst"><code>(package private) static <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#verifyGroups-java.lang.String:A-">verifyGroups</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;groups)</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="COMPONENT_NAME">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>COMPONENT_NAME</h4>
<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> COMPONENT_NAME</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#net.jini.discovery.AbstractLookupDiscovery.COMPONENT_NAME">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="logger">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>logger</h4>
<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/logging/Logger.html?is-external=true" title="class or interface in java.util.logging">Logger</a> logger</pre>
</li>
</ul>
<a name="MAX_N_TASKS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MAX_N_TASKS</h4>
<pre>private static final&nbsp;int MAX_N_TASKS</pre>
<div class="block">Maximum number of concurrent tasks that can be run in any executor
created by this class.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#net.jini.discovery.AbstractLookupDiscovery.MAX_N_TASKS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DEFAULT_MAX_PACKET_SIZE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_MAX_PACKET_SIZE</h4>
<pre>private static final&nbsp;int DEFAULT_MAX_PACKET_SIZE</pre>
<div class="block">Default maximum size of multicast packets to send and receive.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#net.jini.discovery.AbstractLookupDiscovery.DEFAULT_MAX_PACKET_SIZE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DEFAULT_MULTICAST_TTL">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_MULTICAST_TTL</h4>
<pre>private static final&nbsp;int DEFAULT_MULTICAST_TTL</pre>
<div class="block">Default time to live value to use for sending multicast packets.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#net.jini.discovery.AbstractLookupDiscovery.DEFAULT_MULTICAST_TTL">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DEFAULT_SOCKET_TIMEOUT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_SOCKET_TIMEOUT</h4>
<pre>private static final&nbsp;int DEFAULT_SOCKET_TIMEOUT</pre>
<div class="block">Default timeout to set on sockets used for unicast discovery.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#net.jini.discovery.AbstractLookupDiscovery.DEFAULT_SOCKET_TIMEOUT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="terminated">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>terminated</h4>
<pre>private volatile&nbsp;boolean terminated</pre>
<div class="block">Flag indicating whether or not this class is still functional.</div>
</li>
</ul>
<a name="listeners">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>listeners</h4>
<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../net/jini/discovery/DiscoveryListener.html" title="interface in net.jini.discovery">DiscoveryListener</a>&gt; listeners</pre>
<div class="block">Set of listeners to be sent discovered/discarded/changed events. Access sync on registrars</div>
</li>
</ul>
<a name="groups">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>groups</h4>
<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt; groups</pre>
<div class="block">The groups to discover. Empty set -- NO_GROUPS, access synchronised on registrars</div>
</li>
</ul>
<a name="all_groups">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>all_groups</h4>
<pre>private volatile&nbsp;boolean all_groups</pre>
<div class="block">If groups passed to constructor are null -- ALL_GROUPS, writes synchronised on registrars</div>
</li>
</ul>
<a name="registrars">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registrars</h4>
<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../net/jini/core/lookup/ServiceID.html" title="class in net.jini.core.lookup">ServiceID</a>,<a href="../../../org/apache/river/discovery/UnicastResponse.html" title="class in org.apache.river.discovery">UnicastResponse</a>&gt; registrars</pre>
<div class="block">Map from ServiceID to UnicastResponse.</div>
</li>
</ul>
<a name="pendingDiscoveries">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>pendingDiscoveries</h4>
<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a> pendingDiscoveries</pre>
<div class="block">Set that takes one of the following:
<p><ul>
<li> Socket (discovery from multicast request/response exchange)
<li> LookupLocator (discovery from multicast announcement)
<li> CheckGroupsMarker (discarded/changed from announcement)
<li> CheckReachabilityMarker (announcements stopped, tests reachability)
</ul><p>
Each element of this set represents a potential (or pending) discovered,
discarded, or changed event. Instances of UnicastDiscoveryTask retrieve
the next available element from this set and, based on the object type
of the element, determines the processing to perform and what event
type to send to the registered listeners.</div>
</li>
</ul>
<a name="notifierThread">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>notifierThread</h4>
<pre>private final&nbsp;<a href="../../../net/jini/discovery/AbstractLookupDiscovery.Notifier.html" title="class in net.jini.discovery">AbstractLookupDiscovery.Notifier</a> notifierThread</pre>
<div class="block">Thread that handles pending notifications.</div>
</li>
</ul>
<a name="pendingNotifies">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>pendingNotifies</h4>
<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent.BlockingDeque.html?is-external=true" title="class or interface in java.util">java.util.concurrent.BlockingDeque</a>&lt;<a href="../../../net/jini/discovery/AbstractLookupDiscovery.NotifyTask.html" title="class in net.jini.discovery">AbstractLookupDiscovery.NotifyTask</a>&gt; pendingNotifies</pre>
<div class="block">Notifications to be sent to listeners. Synchronised access with lock notify</div>
</li>
</ul>
<a name="executor">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>executor</h4>
<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent.ExecutorService.html?is-external=true" title="class or interface in java.util">java.util.concurrent.ExecutorService</a> executor</pre>
<div class="block">ExecutorService for running UnicastDiscoveryTasks and
DecodeAnnouncementTasks.</div>
</li>
</ul>
<a name="discoveryWakeupMgr">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>discoveryWakeupMgr</h4>
<pre>private final&nbsp;<a href="../../../org/apache/river/thread/WakeupManager.html" title="class in org.apache.river.thread">WakeupManager</a> discoveryWakeupMgr</pre>
</li>
</ul>
<a name="isDefaultWakeupMgr">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isDefaultWakeupMgr</h4>
<pre>private final&nbsp;boolean isDefaultWakeupMgr</pre>
</li>
</ul>
<a name="tickets">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>tickets</h4>
<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../org/apache/river/thread/WakeupManager.Ticket.html" title="class in org.apache.river.thread">WakeupManager.Ticket</a>&gt; tickets</pre>
</li>
</ul>
<a name="announceeThread">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>announceeThread</h4>
<pre>private final&nbsp;<a href="../../../net/jini/discovery/AbstractLookupDiscovery.AnnouncementListener.html" title="class in net.jini.discovery">AbstractLookupDiscovery.AnnouncementListener</a> announceeThread</pre>
<div class="block">Thread that handles incoming multicast announcements.</div>
</li>
</ul>
<a name="requestors">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>requestors</h4>
<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a>&gt; requestors</pre>
<div class="block">Collection that contains instances of the Requestor Thread class,
each of which participate in multicast discovery by periodically
sending out multicast discovery requests for a finite period of time.
Access synchronised.</div>
</li>
</ul>
<a name="respondeeThread">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>respondeeThread</h4>
<pre>private volatile&nbsp;<a href="../../../net/jini/discovery/AbstractLookupDiscovery.ResponseListener.html" title="class in net.jini.discovery">AbstractLookupDiscovery.ResponseListener</a> respondeeThread</pre>
<div class="block">Thread that manages incoming multicast responses. Runs only when
there are Requestor threads running.
Writes synchronised on requestors.</div>
</li>
</ul>
<a name="securityContext">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>securityContext</h4>
<pre>private final&nbsp;<a href="../../../net/jini/security/SecurityContext.html" title="interface in net.jini.security">SecurityContext</a> securityContext</pre>
<div class="block">Security context that contains the access control context to restore
for callbacks, etc.</div>
</li>
</ul>
<a name="regInfo">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>regInfo</h4>
<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent.ConcurrentMap.html?is-external=true" title="class or interface in java.util">java.util.concurrent.ConcurrentMap</a>&lt;<a href="../../../net/jini/core/lookup/ServiceID.html" title="class in net.jini.core.lookup">ServiceID</a>,<a href="../../../net/jini/discovery/AbstractLookupDiscovery.AnnouncementInfo.html" title="class in net.jini.discovery">AbstractLookupDiscovery.AnnouncementInfo</a>&gt; regInfo</pre>
<div class="block">Map from ServiceID to multicast announcement time stamps; used by the
process that monitors multicast announcements from already-discovered
lookup services, and determines when those announcements have stopped.
Access synchronised on registrars.</div>
</li>
</ul>
<a name="announcementTimerThread">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>announcementTimerThread</h4>
<pre>private final&nbsp;<a href="../../../net/jini/discovery/AbstractLookupDiscovery.AnnouncementTimerThread.html" title="class in net.jini.discovery">AbstractLookupDiscovery.AnnouncementTimerThread</a> announcementTimerThread</pre>
<div class="block">Thread that monitors multicast announcements from already-discovered
lookup services and, upon determining that those announcements have
stopped, queues a reachability test with the UnicastDiscoveryTask
which will ultimately result in the lookup service being discarded
if the reachability test indicates that the lookup service is
actually down.</div>
</li>
</ul>
<a name="registrarPreparer">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registrarPreparer</h4>
<pre>private final&nbsp;<a href="../../../net/jini/security/ProxyPreparer.html" title="interface in net.jini.security">ProxyPreparer</a> registrarPreparer</pre>
</li>
</ul>
<a name="protocol2">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>protocol2</h4>
<pre>private final&nbsp;<a href="../../../org/apache/river/discovery/Discovery.html" title="class in org.apache.river.discovery">Discovery</a> protocol2</pre>
</li>
</ul>
<a name="multicastRequestMax">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>multicastRequestMax</h4>
<pre>private final&nbsp;int multicastRequestMax</pre>
</li>
</ul>
<a name="multicastRequestInterval">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>multicastRequestInterval</h4>
<pre>private final&nbsp;long multicastRequestInterval</pre>
</li>
</ul>
<a name="finalMulticastRequestInterval">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>finalMulticastRequestInterval</h4>
<pre>private final&nbsp;long finalMulticastRequestInterval</pre>
</li>
</ul>
<a name="multicastRequestHost">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>multicastRequestHost</h4>
<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> multicastRequestHost</pre>
</li>
</ul>
<a name="multicastRequestConstraints">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>multicastRequestConstraints</h4>
<pre>private final&nbsp;<a href="../../../org/apache/river/discovery/DiscoveryConstraints.html" title="class in org.apache.river.discovery">DiscoveryConstraints</a> multicastRequestConstraints</pre>
</li>
</ul>
<a name="nics">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nics</h4>
<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/net/NetworkInterface.html?is-external=true" title="class or interface in java.net">NetworkInterface</a>[] nics</pre>
</li>
</ul>
<a name="nicRetryInterval">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nicRetryInterval</h4>
<pre>private final&nbsp;int nicRetryInterval</pre>
</li>
</ul>
<a name="multicastAnnouncementInterval">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>multicastAnnouncementInterval</h4>
<pre>private final&nbsp;long multicastAnnouncementInterval</pre>
</li>
</ul>
<a name="unicastDelayRange">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unicastDelayRange</h4>
<pre>private final&nbsp;long unicastDelayRange</pre>
</li>
</ul>
<a name="initialMulticastRequestDelayRange">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>initialMulticastRequestDelayRange</h4>
<pre>private final&nbsp;long initialMulticastRequestDelayRange</pre>
</li>
</ul>
<a name="initialRequestorStarted">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>initialRequestorStarted</h4>
<pre>private&nbsp;boolean initialRequestorStarted</pre>
</li>
</ul>
<a name="multicastAnnouncementConstraints">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>multicastAnnouncementConstraints</h4>
<pre>private final&nbsp;<a href="../../../org/apache/river/discovery/DiscoveryConstraints.html" title="class in org.apache.river.discovery">DiscoveryConstraints</a> multicastAnnouncementConstraints</pre>
</li>
</ul>
<a name="rawUnicastDiscoveryConstraints">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rawUnicastDiscoveryConstraints</h4>
<pre>private final&nbsp;<a href="../../../net/jini/core/constraint/InvocationConstraints.html" title="class in net.jini.core.constraint">InvocationConstraints</a> rawUnicastDiscoveryConstraints</pre>
</li>
</ul>
<a name="DISCOVERED">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DISCOVERED</h4>
<pre>private static final&nbsp;int DISCOVERED</pre>
<div class="block">Constants used to tell the notifierThread the type of event to send</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#net.jini.discovery.AbstractLookupDiscovery.DISCOVERED">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DISCARDED">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DISCARDED</h4>
<pre>private static final&nbsp;int DISCARDED</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#net.jini.discovery.AbstractLookupDiscovery.DISCARDED">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CHANGED">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CHANGED</h4>
<pre>private static final&nbsp;int CHANGED</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#net.jini.discovery.AbstractLookupDiscovery.CHANGED">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="NICS_USE_ALL">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>NICS_USE_ALL</h4>
<pre>private static final&nbsp;int NICS_USE_ALL</pre>
<div class="block">Constants used to indicate the set of network interfaces being used</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#net.jini.discovery.AbstractLookupDiscovery.NICS_USE_ALL">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="NICS_USE_SYS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>NICS_USE_SYS</h4>
<pre>private static final&nbsp;int NICS_USE_SYS</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#net.jini.discovery.AbstractLookupDiscovery.NICS_USE_SYS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="NICS_USE_LIST">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>NICS_USE_LIST</h4>
<pre>private static final&nbsp;int NICS_USE_LIST</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#net.jini.discovery.AbstractLookupDiscovery.NICS_USE_LIST">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="NICS_USE_NONE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>NICS_USE_NONE</h4>
<pre>private static final&nbsp;int NICS_USE_NONE</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#net.jini.discovery.AbstractLookupDiscovery.NICS_USE_NONE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="nicsToUse">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nicsToUse</h4>
<pre>private final&nbsp;int nicsToUse</pre>
<div class="block">Flag that indicates how the set of network interfaces was configured</div>
</li>
</ul>
<a name="thrown">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>thrown</h4>
<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a> thrown</pre>
</li>
</ul>
<a name="started">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>started</h4>
<pre>private&nbsp;boolean started</pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="AbstractLookupDiscovery-java.lang.String:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>AbstractLookupDiscovery</h4>
<pre>AbstractLookupDiscovery(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;groups)
throws <a href="http://docs.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Construct a new lookup discovery object, set to discover the
given set of groups. The set is represented as an array of
strings. This array may be empty, which is taken as the empty
set, and discovery is not performed. The reference passed in
may be null, which is taken as no set, and in which case
discovery of all reachable lookup services is performed.
Otherwise, the array contains the names of groups to discover.
The caller must have DiscoveryPermission for each group (or
for all groups, if the array is null).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>groups</code> - the set of group names to discover (null for no
set, empty for no discovery)</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - input array contains at least
one null element</dd>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - an exception occurred in starting discovery</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../net/jini/discovery/DiscoveryGroupManagement.html#NO_GROUPS"><code>DiscoveryGroupManagement.NO_GROUPS</code></a>,
<a href="../../../net/jini/discovery/DiscoveryGroupManagement.html#ALL_GROUPS"><code>DiscoveryGroupManagement.ALL_GROUPS</code></a>,
<a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#setGroups-java.lang.String:A-"><code>setGroups(java.lang.String[])</code></a>,
<a href="../../../net/jini/discovery/DiscoveryPermission.html" title="class in net.jini.discovery"><code>DiscoveryPermission</code></a></dd>
</dl>
</li>
</ul>
<a name="AbstractLookupDiscovery-java.lang.String:A-net.jini.config.Configuration-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>AbstractLookupDiscovery</h4>
<pre>AbstractLookupDiscovery(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;groups,
<a href="../../../net/jini/config/Configuration.html" title="interface in net.jini.config">Configuration</a>&nbsp;config)
throws <a href="http://docs.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
<a href="../../../net/jini/config/ConfigurationException.html" title="class in net.jini.config">ConfigurationException</a></pre>
<div class="block">Constructs a new lookup discovery object, set to discover the
given set of groups, and having the given <code>Configuration</code>.
<p>
The set of groups to discover is represented as an array of
strings. This array may be empty, which is taken as the empty
set, and discovery is not performed. The reference passed in
may be <code>null</code>, which is taken as no set, and in which
case discovery of all reachable lookup services is performed.
Otherwise, the array contains the names of groups to discover.
The caller must have <code>DiscoveryPermission</code> for each
group (or for all groups, if the array is <code>null</code>).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>groups</code> - the set of group names to discover (null for no
set, empty for no discovery)</dd>
<dd><code>config</code> - an instance of <code>Configuration</code>, used to
obtain the objects needed to configure the current
instance of this class</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - input array contains at least
one <code>null</code> element or <code>null</code> is input
for the configuration</dd>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - an exception occurred in starting discovery</dd>
<dd><code><a href="../../../net/jini/config/ConfigurationException.html" title="class in net.jini.config">ConfigurationException</a></code> - indicates an exception
occurred while retrieving an item from the given
<code>Configuration</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../net/jini/discovery/DiscoveryGroupManagement.html#NO_GROUPS"><code>DiscoveryGroupManagement.NO_GROUPS</code></a>,
<a href="../../../net/jini/discovery/DiscoveryGroupManagement.html#ALL_GROUPS"><code>DiscoveryGroupManagement.ALL_GROUPS</code></a>,
<a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#setGroups-java.lang.String:A-"><code>setGroups(java.lang.String[])</code></a>,
<a href="../../../net/jini/discovery/DiscoveryPermission.html" title="class in net.jini.discovery"><code>DiscoveryPermission</code></a>,
<a href="../../../net/jini/config/Configuration.html" title="interface in net.jini.config"><code>Configuration</code></a>,
<a href="../../../net/jini/config/ConfigurationException.html" title="class in net.jini.config"><code>ConfigurationException</code></a></dd>
</dl>
</li>
</ul>
<a name="AbstractLookupDiscovery-java.lang.String:A-net.jini.discovery.AbstractLookupDiscovery.Initializer-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>AbstractLookupDiscovery</h4>
<pre>private&nbsp;AbstractLookupDiscovery(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;groups,
<a href="../../../net/jini/discovery/AbstractLookupDiscovery.Initializer.html" title="class in net.jini.discovery">AbstractLookupDiscovery.Initializer</a>&nbsp;init)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="verifyGroups-java.lang.String:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>verifyGroups</h4>
<pre>static&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;verifyGroups(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;groups)
throws <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a>,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/SecurityException.html?is-external=true" title="class or interface in java.lang">SecurityException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code></dd>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/SecurityException.html?is-external=true" title="class or interface in java.lang">SecurityException</a></code></dd>
</dl>
</li>
</ul>
<a name="initEmptyConf--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>initEmptyConf</h4>
<pre>static&nbsp;<a href="../../../net/jini/discovery/AbstractLookupDiscovery.Initializer.html" title="class in net.jini.discovery">AbstractLookupDiscovery.Initializer</a>&nbsp;initEmptyConf()
throws <a href="http://docs.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="init-net.jini.config.Configuration-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>init</h4>
<pre>static&nbsp;<a href="../../../net/jini/discovery/AbstractLookupDiscovery.Initializer.html" title="class in net.jini.discovery">AbstractLookupDiscovery.Initializer</a>&nbsp;init(<a href="../../../net/jini/config/Configuration.html" title="interface in net.jini.config">Configuration</a>&nbsp;config)
throws <a href="http://docs.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
<a href="../../../net/jini/config/ConfigurationException.html" title="class in net.jini.config">ConfigurationException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
<dd><code><a href="../../../net/jini/config/ConfigurationException.html" title="class in net.jini.config">ConfigurationException</a></code></dd>
</dl>
</li>
</ul>
<a name="start--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>start</h4>
<pre>void&nbsp;start()
throws <a href="http://docs.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">In previous releases threads were started in the constructor, however
this violates safe construction according to the JMM.
<p>
Threads will be started automatically when a <code>DiscoveryListener</code>
is added, if start hasn't been called.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.2.1</dd>
</dl>
</li>
</ul>
<a name="addDiscoveryListener-net.jini.discovery.DiscoveryListener-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addDiscoveryListener</h4>
<pre>public&nbsp;void&nbsp;addDiscoveryListener(<a href="../../../net/jini/discovery/DiscoveryListener.html" title="interface in net.jini.discovery">DiscoveryListener</a>&nbsp;l)</pre>
<div class="block">Register a listener as interested in receiving DiscoveryEvent
notifications.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../net/jini/discovery/DiscoveryManagement.html#addDiscoveryListener-net.jini.discovery.DiscoveryListener-">addDiscoveryListener</a></code>&nbsp;in interface&nbsp;<code><a href="../../../net/jini/discovery/DiscoveryManagement.html" title="interface in net.jini.discovery">DiscoveryManagement</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>l</code> - the listener to register</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - this exception occurs when
<code>null</code> is input to the listener parameter
<code>l</code>.</dd>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - this exception occurs when
this method is called after the <code>terminate</code>
method has been called.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../net/jini/discovery/DiscoveryEvent.html" title="class in net.jini.discovery"><code>DiscoveryEvent</code></a>,
<a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#removeDiscoveryListener-net.jini.discovery.DiscoveryListener-"><code>removeDiscoveryListener(net.jini.discovery.DiscoveryListener)</code></a></dd>
</dl>
</li>
</ul>
<a name="removeDiscoveryListener-net.jini.discovery.DiscoveryListener-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeDiscoveryListener</h4>
<pre>public&nbsp;void&nbsp;removeDiscoveryListener(<a href="../../../net/jini/discovery/DiscoveryListener.html" title="interface in net.jini.discovery">DiscoveryListener</a>&nbsp;l)</pre>
<div class="block">Indicate that a listener is no longer interested in receiving
DiscoveryEvent notifications.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../net/jini/discovery/DiscoveryManagement.html#removeDiscoveryListener-net.jini.discovery.DiscoveryListener-">removeDiscoveryListener</a></code>&nbsp;in interface&nbsp;<code><a href="../../../net/jini/discovery/DiscoveryManagement.html" title="interface in net.jini.discovery">DiscoveryManagement</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>l</code> - the listener to unregister</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - this exception occurs when
this method is called after the <code>terminate</code>
method has been called.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#addDiscoveryListener-net.jini.discovery.DiscoveryListener-"><code>addDiscoveryListener(net.jini.discovery.DiscoveryListener)</code></a></dd>
</dl>
</li>
</ul>
<a name="getRegistrars--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRegistrars</h4>
<pre>public&nbsp;<a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup">ServiceRegistrar</a>[]&nbsp;getRegistrars()</pre>
<div class="block">Returns an array of instances of <code>ServiceRegistrar</code>, each
corresponding to a proxy to one of the currently discovered lookup
services. For each invocation of this method, a new array is returned.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../net/jini/discovery/DiscoveryManagement.html#getRegistrars--">getRegistrars</a></code>&nbsp;in interface&nbsp;<code><a href="../../../net/jini/discovery/DiscoveryManagement.html" title="interface in net.jini.discovery">DiscoveryManagement</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>array of instances of <code>ServiceRegistrar</code>, each
corresponding to a proxy to one of the currently discovered
lookup services</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - this exception occurs when
this method is called after the <code>terminate</code>
method has been called.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup"><code>ServiceRegistrar</code></a>,
<a href="../../../net/jini/discovery/DiscoveryManagement.html#removeDiscoveryListener-net.jini.discovery.DiscoveryListener-"><code>DiscoveryManagement.removeDiscoveryListener(net.jini.discovery.DiscoveryListener)</code></a></dd>
</dl>
</li>
</ul>
<a name="discard-net.jini.core.lookup.ServiceRegistrar-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>discard</h4>
<pre>public&nbsp;void&nbsp;discard(<a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup">ServiceRegistrar</a>&nbsp;reg)</pre>
<div class="block">Discard a registrar from the set of registrars already
discovered. This does not prevent that registrar from being
rediscovered; it is intended to be used to clear unreachable
entries from the set. <p>
If the registrar has been discovered using this LookupDiscovery
object, each listener registered with this object will have its
discarded method called with the given registrar as parameter.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../net/jini/discovery/DiscoveryManagement.html#discard-net.jini.core.lookup.ServiceRegistrar-">discard</a></code>&nbsp;in interface&nbsp;<code><a href="../../../net/jini/discovery/DiscoveryManagement.html" title="interface in net.jini.discovery">DiscoveryManagement</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>reg</code> - the registrar to discard</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - this exception occurs when
this method is called after the <code>terminate</code>
method has been called.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../net/jini/discovery/DiscoveryListener.html#discarded-net.jini.discovery.DiscoveryEvent-"><code>DiscoveryListener.discarded(net.jini.discovery.DiscoveryEvent)</code></a></dd>
</dl>
</li>
</ul>
<a name="terminate--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>terminate</h4>
<pre>public&nbsp;void&nbsp;terminate()</pre>
<div class="block">Terminate the discovery process.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../net/jini/discovery/DiscoveryManagement.html#terminate--">terminate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../net/jini/discovery/DiscoveryManagement.html" title="interface in net.jini.discovery">DiscoveryManagement</a></code></dd>
</dl>
</li>
</ul>
<a name="getGroups--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getGroups</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;getGroups()</pre>
<div class="block">Return the set of group names this LookupDiscovery instance is
trying to discover. If this method returns the empty array,
that value is guaranteed to be referentially equal to
LookupDiscovery.NO_GROUPS.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../net/jini/discovery/DiscoveryGroupManagement.html#getGroups--">getGroups</a></code>&nbsp;in interface&nbsp;<code><a href="../../../net/jini/discovery/DiscoveryGroupManagement.html" title="interface in net.jini.discovery">DiscoveryGroupManagement</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the set of groups to be discovered (null for all, empty
for no discovery)</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - this exception occurs when
this method is called after the <code>terminate</code>
method has been called.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../net/jini/discovery/DiscoveryGroupManagement.html#NO_GROUPS"><code>DiscoveryGroupManagement.NO_GROUPS</code></a>,
<a href="../../../net/jini/discovery/DiscoveryGroupManagement.html#ALL_GROUPS"><code>DiscoveryGroupManagement.ALL_GROUPS</code></a>,
<a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#setGroups-java.lang.String:A-"><code>setGroups(java.lang.String[])</code></a></dd>
</dl>
</li>
</ul>
<a name="addGroups-java.lang.String:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addGroups</h4>
<pre>public&nbsp;void&nbsp;addGroups(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;newGroups)
throws <a href="http://docs.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Add a set of groups to the set to be discovered.
The caller must have DiscoveryPermission for each group.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../net/jini/discovery/DiscoveryGroupManagement.html#addGroups-java.lang.String:A-">addGroups</a></code>&nbsp;in interface&nbsp;<code><a href="../../../net/jini/discovery/DiscoveryGroupManagement.html" title="interface in net.jini.discovery">DiscoveryGroupManagement</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>newGroups</code> - the groups to add</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - the multicast request protocol failed
to start</dd>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - this exception occurs when
this method is called after the <code>terminate</code>
method has been called.</dd>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - there is no set of
groups to add to</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../net/jini/discovery/DiscoveryPermission.html" title="class in net.jini.discovery"><code>DiscoveryPermission</code></a></dd>
</dl>
</li>
</ul>
<a name="setGroups-java.lang.String:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setGroups</h4>
<pre>public&nbsp;void&nbsp;setGroups(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;newGroups)
throws <a href="http://docs.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Change the set of groups to be discovered to correspond to the
given set. The set is represented as an array of strings.
This array may be empty, which is taken as the empty set, and
discovery is not performed. The reference passed in may be
null, which is taken as no set, and in which case discovery of
all reachable lookup services is performed. Otherwise, the
array contains the names of groups to discover.
The caller must have DiscoveryPermission for each group (or
for all groups, if the array is null).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../net/jini/discovery/DiscoveryGroupManagement.html#setGroups-java.lang.String:A-">setGroups</a></code>&nbsp;in interface&nbsp;<code><a href="../../../net/jini/discovery/DiscoveryGroupManagement.html" title="interface in net.jini.discovery">DiscoveryGroupManagement</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>newGroups</code> - the new set of groups to discover (null for
all, empty array for no discovery)</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - an exception occurred when starting
multicast discovery</dd>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - this exception occurs when
this method is called after the <code>terminate</code>
method has been called.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>#LookupDiscovery</code>,
<a href="../../../net/jini/discovery/DiscoveryGroupManagement.html#ALL_GROUPS"><code>DiscoveryGroupManagement.ALL_GROUPS</code></a>,
<a href="../../../net/jini/discovery/DiscoveryGroupManagement.html#NO_GROUPS"><code>DiscoveryGroupManagement.NO_GROUPS</code></a>,
<a href="../../../net/jini/discovery/DiscoveryPermission.html" title="class in net.jini.discovery"><code>DiscoveryPermission</code></a>,
<a href="../../../net/jini/discovery/AbstractLookupDiscovery.html#getGroups--"><code>getGroups()</code></a></dd>
</dl>
</li>
</ul>
<a name="removeGroups-java.lang.String:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeGroups</h4>
<pre>public&nbsp;void&nbsp;removeGroups(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;oldGroups)</pre>
<div class="block">Remove a set of groups from the set to be discovered.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../net/jini/discovery/DiscoveryGroupManagement.html#removeGroups-java.lang.String:A-">removeGroups</a></code>&nbsp;in interface&nbsp;<code><a href="../../../net/jini/discovery/DiscoveryGroupManagement.html" title="interface in net.jini.discovery">DiscoveryGroupManagement</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>oldGroups</code> - groups to remove</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - this exception occurs when
this method is called after the <code>terminate</code>
method has been called.</dd>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - there is no set of
groups from which to remove</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../net/jini/discovery/DiscoveryGroupManagement.html#addGroups-java.lang.String:A-"><code>DiscoveryGroupManagement.addGroups(java.lang.String[])</code></a></dd>
</dl>
</li>
</ul>
<a name="sendPacketByNIC-java.net.MulticastSocket-java.net.DatagramPacket:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sendPacketByNIC</h4>
<pre>private&nbsp;void&nbsp;sendPacketByNIC(<a href="http://docs.oracle.com/javase/6/docs/api/java/net/MulticastSocket.html?is-external=true" title="class or interface in java.net">MulticastSocket</a>&nbsp;mcSocket,
<a href="http://docs.oracle.com/javase/6/docs/api/java/net/DatagramPacket.html?is-external=true" title="class or interface in java.net">DatagramPacket</a>[]&nbsp;packet)
throws <a href="http://docs.oracle.com/javase/6/docs/api/java/io/InterruptedIOException.html?is-external=true" title="class or interface in java.io">InterruptedIOException</a></pre>
<div class="block">Sends the given packet data on the given <code>MulticastSocket</code>
through each of the network interfaces corresponding to elements of
the array configured when this utility was constructed.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mcSocket</code> - the <code>MulticastSocket</code> on which the data
will be sent</dd>
<dd><code>packet</code> - <code>DatagramPacket</code> array whose elements are
the data to send</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/io/InterruptedIOException.html?is-external=true" title="class or interface in java.io">InterruptedIOException</a></code></dd>
</dl>
</li>
</ul>
<a name="sendPacket-java.net.MulticastSocket-java.net.DatagramPacket:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sendPacket</h4>
<pre>private static&nbsp;void&nbsp;sendPacket(<a href="http://docs.oracle.com/javase/6/docs/api/java/net/MulticastSocket.html?is-external=true" title="class or interface in java.net">MulticastSocket</a>&nbsp;mcSocket,
<a href="http://docs.oracle.com/javase/6/docs/api/java/net/DatagramPacket.html?is-external=true" title="class or interface in java.net">DatagramPacket</a>[]&nbsp;packet)
throws <a href="http://docs.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Sends the given packet data on the given <code>MulticastSocket</code>
through the network interface that is currently set.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mcSocket</code> - the <code>MulticastSocket</code> on which the data
will be sent</dd>
<dd><code>packet</code> - <code>DatagramPacket</code> array whose elements are
the data to send</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="getLocalHost--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLocalHost</h4>
<pre>private static&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getLocalHost()
throws <a href="http://docs.oracle.com/javase/6/docs/api/java/net/UnknownHostException.html?is-external=true" title="class or interface in java.net">UnknownHostException</a></pre>
<div class="block">Returns the local host name.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/net/UnknownHostException.html?is-external=true" title="class or interface in java.net">UnknownHostException</a></code></dd>
</dl>
</li>
</ul>
<a name="checkGroups-java.lang.String:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkGroups</h4>
<pre>private static&nbsp;void&nbsp;checkGroups(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;groups)</pre>
<div class="block">Determines if the caller has discovery permission for each group.</div>
</li>
</ul>
<a name="collectionToStrings-java.util.Collection-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>collectionToStrings</h4>
<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;collectionToStrings(<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&nbsp;c)</pre>
<div class="block">Converts a collection to an array of strings.</div>
</li>
</ul>
<a name="groupSetsEqual-java.lang.String:A-java.lang.String:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>groupSetsEqual</h4>
<pre>private static&nbsp;boolean&nbsp;groupSetsEqual(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;groupSet0,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;groupSet1)</pre>
<div class="block">Determines if two sets of registrar member groups have identical
contents. Assumes there are no duplicates, and the sets can never
be null.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>groupSet0</code> - <code>String</code> array containing the group
names from the first set used in the comparison</dd>
<dd><code>groupSet1</code> - <code>String</code> array containing the group
names from the second set used in the comparison</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the contents of each set is identical;
<code>false</code> otherwise</dd>
</dl>
</li>
</ul>
<a name="registrarsEqual-org.apache.river.discovery.UnicastResponse-org.apache.river.discovery.UnicastResponse-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registrarsEqual</h4>
<pre>private static&nbsp;boolean&nbsp;registrarsEqual(<a href="../../../org/apache/river/discovery/UnicastResponse.html" title="class in org.apache.river.discovery">UnicastResponse</a>&nbsp;resp1,
<a href="../../../org/apache/river/discovery/UnicastResponse.html" title="class in org.apache.river.discovery">UnicastResponse</a>&nbsp;resp2)</pre>
<div class="block">Returns true if the registrars contained in the given (possibly null)
UnicastResponse instances are equals() to one another.</div>
</li>
</ul>
<a name="removeGroupsInt-java.lang.String:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeGroupsInt</h4>
<pre>private&nbsp;boolean&nbsp;removeGroupsInt(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;oldGroups)</pre>
<div class="block">Remove the specified groups from the set of groups to discover, and
return true if any were actually removed. Must be synchronised on registrars.</div>
</li>
</ul>
<a name="getServiceIDs--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getServiceIDs</h4>
<pre>private&nbsp;<a href="../../../net/jini/core/lookup/ServiceID.html" title="class in net.jini.core.lookup">ServiceID</a>[]&nbsp;getServiceIDs()</pre>
<div class="block">Returns the service IDs of the lookup service(s) discovered to date.</div>
</li>
</ul>
<a name="groupsOverlap-java.lang.String:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>groupsOverlap</h4>
<pre>private&nbsp;boolean&nbsp;groupsOverlap(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;possibilities)</pre>
<div class="block">Indicate whether any of the group names in the given array match
any of the groups of interest.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>possibilities</code> - the set of group names to compare to the set
of groups to discover (must not be null)</dd>
</dl>
</li>
</ul>
<a name="requestGroups-java.util.Collection-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>requestGroups</h4>
<pre>private&nbsp;void&nbsp;requestGroups(<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&nbsp;req)
throws <a href="http://docs.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Called at startup and whenever the set of groups to discover is
changed. This method executes the multicast request protocol by
starting the ResponseListener thread to listen for multicast
responses; and starting a Requestor thread to send out multicast
requests for the set of groups contained in the given Collection.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="prepareSocket-java.net.Socket-org.apache.river.discovery.DiscoveryConstraints-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>prepareSocket</h4>
<pre>private static&nbsp;void&nbsp;prepareSocket(<a href="http://docs.oracle.com/javase/6/docs/api/java/net/Socket.html?is-external=true" title="class or interface in java.net">Socket</a>&nbsp;s,
<a href="../../../org/apache/river/discovery/DiscoveryConstraints.html" title="class in org.apache.river.discovery">DiscoveryConstraints</a>&nbsp;dc)
throws <a href="http://docs.oracle.com/javase/6/docs/api/java/net/SocketException.html?is-external=true" title="class or interface in java.net">SocketException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/net/SocketException.html?is-external=true" title="class or interface in java.net">SocketException</a></code></dd>
</dl>
</li>
</ul>
<a name="maybeAddNewRegistrar-org.apache.river.discovery.UnicastResponse-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>maybeAddNewRegistrar</h4>
<pre>private&nbsp;void&nbsp;maybeAddNewRegistrar(<a href="../../../org/apache/river/discovery/UnicastResponse.html" title="class in org.apache.river.discovery">UnicastResponse</a>&nbsp;resp)</pre>
<div class="block">If the lookup service associated with the given UnicastResponse
is not in the set of already-discovered lookup services, this method
adds it to that set, and each registered listener is notified.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>resp</code> - the UnicastResponse associated with the lookup
service to add</dd>
</dl>
</li>
</ul>
<a name="maybeDiscardRegistrars--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>maybeDiscardRegistrars</h4>
<pre>private&nbsp;void&nbsp;maybeDiscardRegistrars()</pre>
<div class="block">Determine if any of the already-discovered registrars are no longer
members of any of the groups to discover, and discard those registrars
that are no longer members of any of those groups.</div>
</li>
</ul>
<a name="addNotify-java.util.List-java.util.Map-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addNotify</h4>
<pre>private&nbsp;void&nbsp;addNotify(<a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../net/jini/discovery/DiscoveryListener.html" title="interface in net.jini.discovery">DiscoveryListener</a>&gt;&nbsp;notifies,
<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup">ServiceRegistrar</a>,<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&gt;&nbsp;groupsMap,
int&nbsp;eventType)</pre>
<div class="block">Add a notification task to the pending queue, and wake up the Notifier.</div>
</li>
</ul>
<a name="nukeThreads--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nukeThreads</h4>
<pre>private&nbsp;void&nbsp;nukeThreads()</pre>
<div class="block">Terminates (interrupts) all currently-running threads.</div>
</li>
</ul>
<a name="terminateTaskMgr--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>terminateTaskMgr</h4>
<pre>private&nbsp;void&nbsp;terminateTaskMgr()</pre>
<div class="block">This method removes all pending and active tasks from the TaskManager
for this instance. It also clears the set of pendingDiscoveries, and
closes all associated sockets.</div>
</li>
</ul>
<a name="maybeSendEvent-org.apache.river.discovery.UnicastResponse-java.lang.String:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>maybeSendEvent</h4>
<pre>private&nbsp;void&nbsp;maybeSendEvent(<a href="../../../org/apache/river/discovery/UnicastResponse.html" title="class in org.apache.river.discovery">UnicastResponse</a>&nbsp;response,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;newGroups)</pre>
<div class="block">After a possible change in the member groups of the
<code>ServiceRegistrar</code> corresponding to the given
<code>UnicastResponse</code> parameter, this method
determines whether or not the registrar's member groups have
changed in such a way that either a changed event or a discarded
event is warranted.
<p>
Note that even if the contents of the new set of groups initially
indicate that the corresponding registrar is a candidate for
a discarded or a changed event, further analysis must be performed.
This is because there is no guarantee that the new set of member
groups have not been "split" across the multicast announcements
sent by the lookup service; and so there is no guarantee that the
contents of the new group set actually reflect a change that warrants
an event. To guarantee that the new group set accurately reflects
the registrar's member groups, this method makes a remote call to
the registrar to retrieve its actual member groups.
<p>
There is one situation where it is not necessary to query the
registrar for its current member groups. That situation is
when the set of groups input to the <code>newGroups</code> parameter
is equivalent to NO_GROUPS. If that new group set is equivalent
to NO_GROUPS, it is guaranteed that the registrar's member groups
have not been split across the multicast announcements.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>response</code> - instance of <code>UnicastResponse</code>
corresponding to the registrar whose current and
previous member groups are to be compared</dd>
<dd><code>newGroups</code> - <code>String</code> array containing the new
member groups of the registrar corresponding to the
<code>response</code> parameter (just after a
possible change)</dd>
</dl>
</li>
</ul>
<a name="notifyOnGroupChange-net.jini.core.lookup.ServiceRegistrar-java.lang.String:A-java.lang.String:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>notifyOnGroupChange</h4>
<pre>private&nbsp;void&nbsp;notifyOnGroupChange(<a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup">ServiceRegistrar</a>&nbsp;reg,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;oldGroups,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;newGroups)</pre>
<div class="block">After a possible change in the member groups of the given
<code>ServiceRegistrar</code> parameter, this method compares
the registrar's original set of member groups to its new set
of member groups.
<p>
If the criteria shown below is satisfied, either a discarded event
or a changed event will be sent to any registered listeners. The
criteria is based on whether the old and new groups are equal,
and whether one or more elements of the new group set also belong
to the set of groups to discover (the new groups are "still of
interest"). The criteria is as follows:
<p>
if (old groups and new groups)
<p><ul>
<li> (not equal but stillInterested) --> send a changed event
<li> (!stillInterested) --> send a discarded event
</ul>
<p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>reg</code> - instance of <code>ServiceRegistrar</code>
corresponding to the registrar whose current and
previous member groups are to be compared; and
whose corresponding service ID is used as the key
into the various data structures that contain
pertinent information about that registrar</dd>
<dd><code>oldGroups</code> - <code>String</code> array containing the member
groups of the <code>reg</code> parameter prior to
being changed</dd>
<dd><code>newGroups</code> - <code>String</code> array containing the current
member groups of the <code>reg</code> parameter
(just after a possible change)</dd>
</dl>
</li>
</ul>
<a name="sendDiscarded-net.jini.core.lookup.ServiceRegistrar-java.lang.String:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sendDiscarded</h4>
<pre>private&nbsp;void&nbsp;sendDiscarded(<a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup">ServiceRegistrar</a>&nbsp;reg,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;curGroups)</pre>
<div class="block">Convenience method that sends a discarded event containing only
one registrar to all registered listeners. This method must be
called from within a block that is synchronized on the registrars
map.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>reg</code> - instance of <code>ServiceRegistrar</code>
corresponding to the registrar to include in the
event</dd>
<dd><code>curGroups</code> - <code>String</code> array containing the current
member groups of the registrar referenced by the
<code>reg</code> parameter</dd>
</dl>
</li>
</ul>
<a name="sendChanged-net.jini.core.lookup.ServiceRegistrar-java.lang.String:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sendChanged</h4>
<pre>private&nbsp;void&nbsp;sendChanged(<a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup">ServiceRegistrar</a>&nbsp;reg,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;curGroups)</pre>
<div class="block">Convenience method that sends a changed event containing only
one registrar to all registered listeners that are interested in
such events. This method must be called from within a block that
is synchronized on the registrars map.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>reg</code> - instance of <code>ServiceRegistrar</code>
corresponding to the registrar to include in the
event</dd>
<dd><code>curGroups</code> - <code>String</code> array containing the current
member groups of the registrar referenced by the
<code>reg</code> parameter</dd>
</dl>
</li>
</ul>
<a name="deepCopy-java.util.Map-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deepCopy</h4>
<pre>private&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup">ServiceRegistrar</a>,<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&gt;&nbsp;deepCopy(<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup">ServiceRegistrar</a>,<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&gt;&nbsp;groupsMap)</pre>
<div class="block">Creates and returns a deep copy of the input parameter. This method
assumes the input map is a HashMap of the registrar-to-groups mapping;
and returns a clone not only of the map, but of each key-value pair
contained in the mapping.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>groupsMap</code> - mapping from a set of registrars to the member groups
of each registrar</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>clone of the input map, and of each key-value pair contained
in the input map</dd>
</dl>
</li>
</ul>
<a name="getActualGroups-net.jini.core.lookup.ServiceRegistrar-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getActualGroups</h4>
<pre>private&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;getActualGroups(<a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup">ServiceRegistrar</a>&nbsp;reg)</pre>
<div class="block">This method retrieves from the given <code>ServiceRegistrar</code>,
the current groups in which that registrar is a member. If the
registrar is un-reachable, then this method will discard the
registrar.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>reg</code> - instance of <code>ServiceRegistrar</code> referencing the
registrar whose member groups are to be retrieved and returned</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>String</code> array containing the current member groups
of the registrar referenced by the <code>reg</code> parameter</dd>
</dl>
</li>
</ul>
<a name="mapRegToGroups-net.jini.core.lookup.ServiceRegistrar-java.lang.String:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>mapRegToGroups</h4>
<pre>private&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup">ServiceRegistrar</a>,<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&gt;&nbsp;mapRegToGroups(<a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup">ServiceRegistrar</a>&nbsp;reg,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;curGroups)</pre>
<div class="block">Convenience method that creates and returns a mapping of a single
<code>ServiceRegistrar</code> instance to a set of groups.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>reg</code> - instance of <code>ServiceRegistrar</code>
corresponding to the registrar to use as the key
to the mapping</dd>
<dd><code>curGroups</code> - <code>String</code> array containing the current
member groups of the registrar referenced by the
<code>reg</code> parameter; and which is used
as the value of the mapping</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>Map</code> instance containing a single mapping from
a given registrar to its current member groups</dd>
</dl>
</li>
</ul>
<a name="testArrayForNullElement-java.lang.String:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testArrayForNullElement</h4>
<pre>private static&nbsp;void&nbsp;testArrayForNullElement(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;groupArray)</pre>
<div class="block">This method is used by the public methods of this class that are
specified to throw a <code>NullPointerException</code> when the given
array of group names contains one or more <code>null</code> elements;
in which case, this method throws a <code>NullPointerException</code>
which should be allowed to propagate outward.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - this exception occurs when
one or more of the elements of the <code>groupArray</code>
parameter is <code>null</code>.</dd>
</dl>
</li>
</ul>
<a name="decodeMulticastAnnouncement-java.net.DatagramPacket-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decodeMulticastAnnouncement</h4>
<pre>private&nbsp;<a href="../../../org/apache/river/discovery/MulticastAnnouncement.html" title="class in org.apache.river.discovery">MulticastAnnouncement</a>&nbsp;decodeMulticastAnnouncement(<a href="http://docs.oracle.com/javase/6/docs/api/java/net/DatagramPacket.html?is-external=true" title="class or interface in java.net">DatagramPacket</a>&nbsp;pkt)
throws <a href="http://docs.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Decodes received multicast announcement packet. Constraint checking is
delayed.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="checkAnnouncementConstraints-org.apache.river.discovery.MulticastAnnouncement-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkAnnouncementConstraints</h4>
<pre>private&nbsp;void&nbsp;checkAnnouncementConstraints(<a href="../../../org/apache/river/discovery/MulticastAnnouncement.html" title="class in org.apache.river.discovery">MulticastAnnouncement</a>&nbsp;ann)
throws <a href="http://docs.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="encodeMulticastRequest-org.apache.river.discovery.MulticastRequest-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>encodeMulticastRequest</h4>
<pre>private&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/net/DatagramPacket.html?is-external=true" title="class or interface in java.net">DatagramPacket</a>[]&nbsp;encodeMulticastRequest(<a href="../../../org/apache/river/discovery/MulticastRequest.html" title="class in org.apache.river.discovery">MulticastRequest</a>&nbsp;req)
throws <a href="http://docs.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Encodes outgoing multicast requests based on protocol in use, applying
configured security constraints (if any).</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="restoreContextAddTask-java.lang.Runnable-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>restoreContextAddTask</h4>
<pre>private&nbsp;void&nbsp;restoreContextAddTask(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a>&nbsp;t)</pre>
</li>
</ul>
<a name="restoreContextScheduleRunnable-net.jini.discovery.AbstractLookupDiscovery.UnicastDiscoveryTask-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>restoreContextScheduleRunnable</h4>
<pre>private&nbsp;<a href="../../../org/apache/river/thread/WakeupManager.Ticket.html" title="class in org.apache.river.thread">WakeupManager.Ticket</a>&nbsp;restoreContextScheduleRunnable(<a href="../../../net/jini/discovery/AbstractLookupDiscovery.UnicastDiscoveryTask.html" title="class in net.jini.discovery">AbstractLookupDiscovery.UnicastDiscoveryTask</a>&nbsp;t)</pre>
</li>
</ul>
<a name="doUnicastDiscovery-java.net.Socket-org.apache.river.discovery.DiscoveryConstraints-org.apache.river.discovery.Discovery-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doUnicastDiscovery</h4>
<pre>private&nbsp;<a href="../../../org/apache/river/discovery/UnicastResponse.html" title="class in org.apache.river.discovery">UnicastResponse</a>&nbsp;doUnicastDiscovery(<a href="http://docs.oracle.com/javase/6/docs/api/java/net/Socket.html?is-external=true" title="class or interface in java.net">Socket</a>&nbsp;socket,
<a href="../../../org/apache/river/discovery/DiscoveryConstraints.html" title="class in org.apache.river.discovery">DiscoveryConstraints</a>&nbsp;unicastDiscoveryConstraints,
<a href="../../../org/apache/river/discovery/Discovery.html" title="class in org.apache.river.discovery">Discovery</a>&nbsp;disco)
throws <a href="http://docs.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/ClassNotFoundException.html?is-external=true" title="class or interface in java.lang">ClassNotFoundException</a></pre>
<div class="block">Performs unicast discovery over given socket based on protocol in use,
applying configured security constraints (if any).</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/ClassNotFoundException.html?is-external=true" title="class or interface in java.lang">ClassNotFoundException</a></code></dd>
</dl>
</li>
</ul>
<a name="doUnicastDiscovery-java.net.Socket-org.apache.river.discovery.DiscoveryConstraints-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doUnicastDiscovery</h4>
<pre>private&nbsp;<a href="../../../org/apache/river/discovery/UnicastResponse.html" title="class in org.apache.river.discovery">UnicastResponse</a>&nbsp;doUnicastDiscovery(<a href="http://docs.oracle.com/javase/6/docs/api/java/net/Socket.html?is-external=true" title="class or interface in java.net">Socket</a>&nbsp;socket,
<a href="../../../org/apache/river/discovery/DiscoveryConstraints.html" title="class in org.apache.river.discovery">DiscoveryConstraints</a>&nbsp;unicastDiscoveryConstraints)
throws <a href="http://docs.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/ClassNotFoundException.html?is-external=true" title="class or interface in java.lang">ClassNotFoundException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/ClassNotFoundException.html?is-external=true" title="class or interface in java.lang">ClassNotFoundException</a></code></dd>
</dl>
</li>
</ul>
<a name="getDiscovery-int-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getDiscovery</h4>
<pre>private&nbsp;<a href="../../../org/apache/river/discovery/Discovery.html" title="class in org.apache.river.discovery">Discovery</a>&nbsp;getDiscovery(int&nbsp;version)
throws <a href="../../../org/apache/river/discovery/DiscoveryProtocolException.html" title="class in org.apache.river.discovery">DiscoveryProtocolException</a></pre>
<div class="block">Returns Discovery instance for the given version, or throws
DiscoveryProtocolException if the version is unsupported.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../org/apache/river/discovery/DiscoveryProtocolException.html" title="class in org.apache.river.discovery">DiscoveryProtocolException</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/AbstractLookupDiscovery.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../net/jini/discovery/AbstractLookupDiscovery.AnnouncementInfo.html" title="class in net.jini.discovery"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?net/jini/discovery/AbstractLookupDiscovery.html" target="_top">Frames</a></li>
<li><a href="AbstractLookupDiscovery.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright 2007-2013, multiple authors.<br>Licensed under the <a href=http://www.apache.org/licenses/LICENSE-2.0 target=child >Apache License, Version 2.0</a>, see the <a href=../../../doc-files/NOTICE target=child >NOTICE</a> file for attributions.</small></p>
</body>
</html>