blob: 00f62203d9ea3658c1ffdcd285cc9de2bb0298a1 [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:40 EST 2016 -->
<title>FiddlerImpl.ChangedEventTask (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="FiddlerImpl.ChangedEventTask (Apache River v3.0.0 API Documentation (internals))";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10};
var tabs = {65535:["t0","All 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/FiddlerImpl.ChangedEventTask.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><a href="../../../../org/apache/river/fiddler/FiddlerImpl.AddLocatorsTask.html" title="class in org.apache.river.fiddler"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/river/fiddler/FiddlerImpl.DestroyThread.html" title="class in org.apache.river.fiddler"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/river/fiddler/FiddlerImpl.ChangedEventTask.html" target="_top">Frames</a></li>
<li><a href="FiddlerImpl.ChangedEventTask.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>Nested&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">org.apache.river.fiddler</div>
<h2 title="Class FiddlerImpl.ChangedEventTask" class="title">Class FiddlerImpl.ChangedEventTask</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>org.apache.river.fiddler.FiddlerImpl.ChangedEventTask</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><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></dd>
</dl>
<dl>
<dt>Enclosing class:</dt>
<dd><a href="../../../../org/apache/river/fiddler/FiddlerImpl.html" title="class in org.apache.river.fiddler">FiddlerImpl</a></dd>
</dl>
<hr>
<br>
<pre>private final class <span class="typeNameLabel">FiddlerImpl.ChangedEventTask</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="http://docs.oracle.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></pre>
<div class="block">This class represents a <code>Task</code> object that is placed
in the <code>TaskManager</code> queue for processing in the thread
pool. An instance of this class is placed on the task queue when a
<code>DiscoveryEvent</code> instance indicating a changed event
is received from the local discovery process.
<p>
The <code>run</code> method of this class will process event
information resulting from a change in the state of the member
groups of one or more lookup services (registrars). This task
analyzes the group information in the event and, based on that
information, determines which active registrations are no longer
interested in the registrars referenced in the event. A
<code>RemoteDiscoveryEvent</code> indicating a discarded event
will be sent to each active registration that has lost interest
in any of the registrars of the event.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== 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><a href="../../../../net/jini/discovery/DiscoveryEvent.html" title="class in net.jini.discovery">DiscoveryEvent</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/fiddler/FiddlerImpl.ChangedEventTask.html#event">event</a></span></code>
<div class="block">The local event sent by the discovery manager.</div>
</td>
</tr>
</table>
</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="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/river/fiddler/FiddlerImpl.ChangedEventTask.html#ChangedEventTask-net.jini.discovery.DiscoveryEvent-">ChangedEventTask</a></span>(<a href="../../../../net/jini/discovery/DiscoveryEvent.html" title="class in net.jini.discovery">DiscoveryEvent</a>&nbsp;event)</code>
<div class="block">Constructs an instance of this class and stores the event</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="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>private <a href="http://docs.oracle.com/javase/6/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/fiddler/FiddlerImpl.ChangedEventTask.html#maybeSendDiscardedEvent-org.apache.river.fiddler.FiddlerImpl.RegistrationInfo-java.util.Map-java.util.Map-">maybeSendDiscardedEvent</a></span>(<a href="../../../../org/apache/river/fiddler/FiddlerImpl.RegistrationInfo.html" title="class in org.apache.river.fiddler">FiddlerImpl.RegistrationInfo</a>&nbsp;regInfo,
<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>&nbsp;groupsMap,
<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>&nbsp;locatorMap)</code>
<div class="block">This method determines, based on the current state of the
<code>regInfo</code> parameter, whether or not to send a
remote discarded event to the regInfo's listener, and then builds
and sends the event if appropriate.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/fiddler/FiddlerImpl.ChangedEventTask.html#run--">run</a></span>()</code>
<div class="block">This method processes the local discovery event information and
determines, based on the current state of each active
registration, to which such registration the appropriate
<code>RemoteDiscoveryEvent</code> should be sent.</div>
</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="event">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>event</h4>
<pre>public final&nbsp;<a href="../../../../net/jini/discovery/DiscoveryEvent.html" title="class in net.jini.discovery">DiscoveryEvent</a> event</pre>
<div class="block">The local event sent by the discovery manager.</div>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="ChangedEventTask-net.jini.discovery.DiscoveryEvent-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ChangedEventTask</h4>
<pre>public&nbsp;ChangedEventTask(<a href="../../../../net/jini/discovery/DiscoveryEvent.html" title="class in net.jini.discovery">DiscoveryEvent</a>&nbsp;event)</pre>
<div class="block">Constructs an instance of this class and stores the event</div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="run--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>run</h4>
<pre>public&nbsp;void&nbsp;run()</pre>
<div class="block">This method processes the local discovery event information and
determines, based on the current state of each active
registration, to which such registration the appropriate
<code>RemoteDiscoveryEvent</code> should be sent. After making
the determination, the remote event appropriate for each
registration is constructed and sent.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true#run--" title="class or interface in java.lang">run</a></code>&nbsp;in interface&nbsp;<code><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></code></dd>
</dl>
</li>
</ul>
<a name="maybeSendDiscardedEvent-org.apache.river.fiddler.FiddlerImpl.RegistrationInfo-java.util.Map-java.util.Map-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>maybeSendDiscardedEvent</h4>
<pre>private&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&nbsp;maybeSendDiscardedEvent(<a href="../../../../org/apache/river/fiddler/FiddlerImpl.RegistrationInfo.html" title="class in org.apache.river.fiddler">FiddlerImpl.RegistrationInfo</a>&nbsp;regInfo,
<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>&nbsp;groupsMap,
<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>&nbsp;locatorMap)</pre>
<div class="block">This method determines, based on the current state of the
<code>regInfo</code> parameter, whether or not to send a
remote discarded event to the regInfo's listener, and then builds
and sends the event if appropriate. This method is called in
response to the receipt of a changed event from the discovery
manager.
<p>
Such an event may indicate what is referred to as a
"passive, no interest" discard; passive because the event
resulted from action taken by the discovery manager rather than
the client, and no interest because the discovery manager sends
such an event when it determines that one or more of the
previously discovered registrars - although still reachable -
have changed their member groups in such a way that they may
now be of no interest to one or more of the client registrations.
<p>
Note that changed events can be sent for registrars having a
locator and member groups that the current regInfo never asked
to be discovered. This can happen because some other regInfo
asked that the registrar's locator or groups be discovered.
<p>
If a particular registrar is contained in the discovered set
of the given regInfo, then we know that that regInfo must
have requested discovery of the registrar (through either
locator or group discovery). If the registrar is not contained
in that set, then there's no need to proceed with the processing
of the registrar since we don't want to send a discarded event
to a regInfo that was never interested in that registrar in the
first place.
<p>
If the locator of the registrar is contained in the regInfo's
set of locators to discover, then that regInfo is considered
"still interested" in the registrar; and so no discarded event
is sent to the regInfo.
<p>
Thus, a discarded event is sent to the given regInfo only
if the regInfo is not interested in discovering the registrar
through locator discovery, and the registrar's member groups have
changed in such a way that it now belongs to groups that
the regInfo is not interested in discovering and joining.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>regInfo</code> - the data structure record corresponding to the
registration whose listener will receive the event</dd>
<dd><code>groupsMap</code> - mapping from the registrars referenced in the
just-received event to their corresponding set of
member groups</dd>
<dd><code>locatorMap</code> - mapping from the registrars referenced in the
just-received event to their corresponding locator</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the registrars that were discarded for the given regInfo</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/FiddlerImpl.ChangedEventTask.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><a href="../../../../org/apache/river/fiddler/FiddlerImpl.AddLocatorsTask.html" title="class in org.apache.river.fiddler"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/river/fiddler/FiddlerImpl.DestroyThread.html" title="class in org.apache.river.fiddler"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/river/fiddler/FiddlerImpl.ChangedEventTask.html" target="_top">Frames</a></li>
<li><a href="FiddlerImpl.ChangedEventTask.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>Nested&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>