blob: 7357e6f1cafbc2a329f9758e0ec722bf212bac3a [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 -->
<title>UniversalMembershipListenerAdapter (Apache Geode 1.15.1)</title>
<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="UniversalMembershipListenerAdapter (Apache Geode 1.15.1)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":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="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/geode/management/membership/MembershipListener.html" title="interface in org.apache.geode.management.membership"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/geode/management/membership/UniversalMembershipListenerAdapter.AdaptedMembershipEvent.html" title="class in org.apache.geode.management.membership"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/geode/management/membership/UniversalMembershipListenerAdapter.html" target="_top">Frames</a></li>
<li><a href="UniversalMembershipListenerAdapter.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">org.apache.geode.management.membership</div>
<h2 title="Class UniversalMembershipListenerAdapter" class="title">Class UniversalMembershipListenerAdapter</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/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.geode.management.membership.UniversalMembershipListenerAdapter</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../org/apache/geode/management/membership/MembershipListener.html" title="interface in org.apache.geode.management.membership">MembershipListener</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <span class="typeNameLabel">UniversalMembershipListenerAdapter</span>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="../../../../../org/apache/geode/management/membership/MembershipListener.html" title="interface in org.apache.geode.management.membership">MembershipListener</a></pre>
<div class="block"><p>
The <code>UniversalMembershipListenerAdapter</code> is a wrapper for
<a href="../../../../../org/apache/geode/management/membership/MembershipListener.html" title="interface in org.apache.geode.management.membership"><code>MembershipListener</code></a> and
<a href="../../../../../org/apache/geode/management/membership/ClientMembershipListener.html" title="interface in org.apache.geode.management.membership"><code>ClientMembershipListener</code></a>, providing a facade that makes both appear as a single
<code>MembershipListener</code> . This includes adapting <code>ClientMembershipListener</code>
events to appear as events for the <code>MembershipListener</code>.
<p>
<code>UniversalMembershipListenerAdapter</code> implements <code>MembershipListener</code>,
exposing the callback in that interface as methods to be overridden by implementing classes.
<p>
An internal implementation of <code>ClientMembershipListener</code> is registered when this class
is instantiated. This implementation creates a
<a href="../../../../../org/apache/geode/management/membership/MembershipEvent.html" title="interface in org.apache.geode.management.membership"><code>MembershipEvent</code></a> and calls the corresponding
<code>MembershipListener</code> public methods on
<code>UniversalMembershipListenerAdapter</code>.The <code>ClientMembershipEvent</code>s are
wrapped to appear as <code>MembershipEvent</code>s. In this way, both types of membership events
appear as <code>MembershipEvent</code>s.
<p>
Any CacheServer using the <code>UniversalMembershipListenerAdapter</code> will receive
notifications of peer membership changes and client membership changes through a single listener.
<p>
Any cache client using the <code>UniversalMembershipListenerAdapter</code> would receive
notifications of cache server connection changes. If that cache client also creates a connection
to the GemFire <a href="../../../../../org/apache/geode/distributed/DistributedSystem.html" title="class in org.apache.geode.distributed"><code>DistributedSystem</code></a>, then it will also register
the adapter for membership events. But it wont be an automatic process. User needs to register
the UniversalMembershipListenerAdapter with ManagementService to receive membership events. How
to register UniversalMembershipListenerAdapter with ManagementService is explained below.
<p>
Subclasses of <code>UniversalMembershipListenerAdapter</code> may be registered as a
<code>MembershipListener</code> using
<a href="../../../../../org/apache/geode/management/ManagementService.html#addMembershipListener-org.apache.geode.management.membership.MembershipListener-"><code>ManagementService.addMembershipListener(org.apache.geode.management.membership.MembershipListener)</code></a> .It is best, however,
to register the listener using <a href="../../../../../org/apache/geode/management/membership/UniversalMembershipListenerAdapter.html#registerMembershipListener-org.apache.geode.management.ManagementService-"><code>registerMembershipListener(org.apache.geode.management.ManagementService)</code></a> since this allows the adapter
to prevent duplicate events for members that are both a peer member and a client.
<p>
Simply constructing the <code>UniversalMembershipListenerAdapter</code> results in the underlying
<code>ClientMembershipListener</code> also being registered.
<p>
The following code illustrates how a CacheServer application would use
<code>UniversalMembershipListenerAdapter</code>. The code in this example assumes that the class
MyMembershipListenerImpl extends <code>UniversalMembershipListenerAdapter</code>:
<pre>
<code>
public class MyMembershipListenerImpl extends UniversalMembershipListenerAdapter {
public void memberCrashed(MembershipEvent event) {
// customer code
}
public void memberLeft(MembershipEvent event) {
// customer code
}
public void memberJoined(MembershipEvent event) {
// customer code
}
}
Cache cache = //Get hold of GemFire Cache instance
ManagementService service = ManagementService.getExistingManagementService(cache);
MyMembershipListenerImpl myListener = new MyMembershipListenerImpl();
myListener.registerMembershipListener(service);
</code>
</pre>
The callback on MyMembershipListenerImpl would then be invoked for all
<code>MembershipEvent</code>s and <code>ClientMembershipEvent</code>s. The latter will appear to
be <code>MembershipEvent</code>s.
<p>
Similarly, the following code illustrates how a client application would use
<code>UniversalMembershipListenerAdapter</code>, where MyMembershipListenerImpl is a
subclass.Simply by constructing this subclass of <code>UniversalMembershipListenerAdapter</code>
it is registering itself as a <code>ClientMembershipListener</code>:
<pre>
<code>
new MyMembershipListenerImpl();
</code>
</pre>
A client that also connects to the <code>DistributedSystem</code> could register with
the<code>ManagementService</code> as shown above.
<p>
It is recommended that subclasses register with the <code>ManagementService</code> using
<a href="../../../../../org/apache/geode/management/membership/UniversalMembershipListenerAdapter.html#registerMembershipListener-org.apache.geode.management.ManagementService-"><code>registerMembershipListener(org.apache.geode.management.ManagementService)</code></a>, as this will prevent duplicate events for members that are
both clients and peer members.If duplicate events are acceptable, you may register subclasses
using <a href="../../../../../org/apache/geode/management/ManagementService.html#addMembershipListener-org.apache.geode.management.membership.MembershipListener-"><code>ManagementService#addMembershipListener</code></a>.
<p></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 8.0</dd>
</dl>
</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>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/management/membership/UniversalMembershipListenerAdapter.AdaptedMembershipEvent.html" title="class in org.apache.geode.management.membership">UniversalMembershipListenerAdapter.AdaptedMembershipEvent</a></span></code>
<div class="block">Adapts ClientMembershipEvent to look like a MembershipEvent</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>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/management/membership/UniversalMembershipListenerAdapter.html#DEFAULT_HISTORY_SIZE">DEFAULT_HISTORY_SIZE</a></span></code>
<div class="block">Default number of historical events to track in order to avoid duplicate events for members
that are both clients and peer members; value is 100.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../../org/apache/geode/management/membership/MembershipListener.html" title="interface in org.apache.geode.management.membership">MembershipListener</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/management/membership/UniversalMembershipListenerAdapter.html#membershipListener">membershipListener</a></span></code>&nbsp;</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/geode/management/membership/UniversalMembershipListenerAdapter.html#UniversalMembershipListenerAdapter--">UniversalMembershipListenerAdapter</a></span>()</code>
<div class="block">Constructs an instance of UniversalMembershipListenerAdapter.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/management/membership/UniversalMembershipListenerAdapter.html#UniversalMembershipListenerAdapter-int-">UniversalMembershipListenerAdapter</a></span>(int&nbsp;historySize)</code>
<div class="block">Constructs an instance of UniversalMembershipListenerAdapter.</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>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/management/membership/UniversalMembershipListenerAdapter.html#memberCrashed-org.apache.geode.management.membership.MembershipEvent-">memberCrashed</a></span>(<a href="../../../../../org/apache/geode/management/membership/MembershipEvent.html" title="interface in org.apache.geode.management.membership">MembershipEvent</a>&nbsp;event)</code>
<div class="block">Invoked when a member has unexpectedly left the distributed system.</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/geode/management/membership/UniversalMembershipListenerAdapter.html#memberJoined-org.apache.geode.management.membership.MembershipEvent-">memberJoined</a></span>(<a href="../../../../../org/apache/geode/management/membership/MembershipEvent.html" title="interface in org.apache.geode.management.membership">MembershipEvent</a>&nbsp;event)</code>
<div class="block">Invoked when a member has joined the distributed system.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/management/membership/UniversalMembershipListenerAdapter.html#memberLeft-org.apache.geode.management.membership.MembershipEvent-">memberLeft</a></span>(<a href="../../../../../org/apache/geode/management/membership/MembershipEvent.html" title="interface in org.apache.geode.management.membership">MembershipEvent</a>&nbsp;event)</code>
<div class="block">Invoked when a member has gracefully left the distributed system.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/management/membership/UniversalMembershipListenerAdapter.html#registerClientMembershipListener--">registerClientMembershipListener</a></span>()</code>
<div class="block">Registers this adapter as a <code>ClientMembershipListener</code>.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/management/membership/UniversalMembershipListenerAdapter.html#registerMembershipListener-org.apache.geode.management.ManagementService-">registerMembershipListener</a></span>(<a href="../../../../../org/apache/geode/management/ManagementService.html" title="class in org.apache.geode.management">ManagementService</a>&nbsp;service)</code>
<div class="block">Registers this adapter with the <code>ManagementService</code>.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/management/membership/UniversalMembershipListenerAdapter.html#unregisterClientMembershipListener--">unregisterClientMembershipListener</a></span>()</code>
<div class="block">Unregisters this adapter as a <code>ClientMembershipListener</code>.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/geode/management/membership/UniversalMembershipListenerAdapter.html#unregisterMembershipListener-org.apache.geode.management.ManagementService-">unregisterMembershipListener</a></span>(<a href="../../../../../org/apache/geode/management/ManagementService.html" title="class in org.apache.geode.management">ManagementService</a>&nbsp;service)</code>
<div class="block">Unregisters this adapter with the <code>ManagementService</code>.</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="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/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="DEFAULT_HISTORY_SIZE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_HISTORY_SIZE</h4>
<pre>public static final&nbsp;int DEFAULT_HISTORY_SIZE</pre>
<div class="block">Default number of historical events to track in order to avoid duplicate events for members
that are both clients and peer members; value is 100.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.apache.geode.management.membership.UniversalMembershipListenerAdapter.DEFAULT_HISTORY_SIZE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="membershipListener">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>membershipListener</h4>
<pre>protected final&nbsp;<a href="../../../../../org/apache/geode/management/membership/MembershipListener.html" title="interface in org.apache.geode.management.membership">MembershipListener</a> membershipListener</pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="UniversalMembershipListenerAdapter--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>UniversalMembershipListenerAdapter</h4>
<pre>public&nbsp;UniversalMembershipListenerAdapter()</pre>
<div class="block">Constructs an instance of UniversalMembershipListenerAdapter.</div>
</li>
</ul>
<a name="UniversalMembershipListenerAdapter-int-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>UniversalMembershipListenerAdapter</h4>
<pre>public&nbsp;UniversalMembershipListenerAdapter(int&nbsp;historySize)</pre>
<div class="block">Constructs an instance of UniversalMembershipListenerAdapter.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>historySize</code> - number of historical events to track in order to avoid duplicate events for
members that are both client and peer members; must a number between 10 and
<code>Integer.MAX_INT</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if historySize is less than 10</dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="registerMembershipListener-org.apache.geode.management.ManagementService-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerMembershipListener</h4>
<pre>public&nbsp;void&nbsp;registerMembershipListener(<a href="../../../../../org/apache/geode/management/ManagementService.html" title="class in org.apache.geode.management">ManagementService</a>&nbsp;service)</pre>
<div class="block">Registers this adapter with the <code>ManagementService</code>. Registering in this way allows
the adapter to ensure that callback will not be invoked twice for members that have a client
connection and a peer connection. If you register with
<a href="../../../../../org/apache/geode/management/ManagementService.html#addMembershipListener-org.apache.geode.management.membership.MembershipListener-"><code>ManagementService.addMembershipListener(org.apache.geode.management.membership.MembershipListener)</code></a> then duplicate
events may occur for members that are both client and peer.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>service</code> - the <code>ManagementService</code> with which to register this adapter</dd>
</dl>
</li>
</ul>
<a name="unregisterMembershipListener-org.apache.geode.management.ManagementService-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unregisterMembershipListener</h4>
<pre>public&nbsp;void&nbsp;unregisterMembershipListener(<a href="../../../../../org/apache/geode/management/ManagementService.html" title="class in org.apache.geode.management">ManagementService</a>&nbsp;service)</pre>
<div class="block">Unregisters this adapter with the <code>ManagementService</code>. If registration is performed
with <a href="../../../../../org/apache/geode/management/membership/UniversalMembershipListenerAdapter.html#registerMembershipListener-org.apache.geode.management.ManagementService-"><code>registerMembershipListener(org.apache.geode.management.ManagementService)</code></a> then this method must be used to successfully
unregister the adapter.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>service</code> - the <code>ManagementService</code> with which to unregister this adapter</dd>
</dl>
</li>
</ul>
<a name="registerClientMembershipListener--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerClientMembershipListener</h4>
<pre>public&nbsp;void&nbsp;registerClientMembershipListener()</pre>
<div class="block">Registers this adapter as a <code>ClientMembershipListener</code>. Registration is automatic
when constructing this adapter, so this call is not necessary unless it was previously
unregistered by calling <a href="../../../../../org/apache/geode/management/membership/UniversalMembershipListenerAdapter.html#unregisterClientMembershipListener--"><code>unregisterClientMembershipListener()</code></a>.</div>
</li>
</ul>
<a name="unregisterClientMembershipListener--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unregisterClientMembershipListener</h4>
<pre>public&nbsp;void&nbsp;unregisterClientMembershipListener()</pre>
<div class="block">Unregisters this adapter as a <code>ClientMembershipListener</code>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/geode/management/membership/UniversalMembershipListenerAdapter.html#registerClientMembershipListener--"><code>registerClientMembershipListener()</code></a></dd>
</dl>
</li>
</ul>
<a name="memberJoined-org.apache.geode.management.membership.MembershipEvent-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>memberJoined</h4>
<pre>public&nbsp;void&nbsp;memberJoined(<a href="../../../../../org/apache/geode/management/membership/MembershipEvent.html" title="interface in org.apache.geode.management.membership">MembershipEvent</a>&nbsp;event)</pre>
<div class="block">Invoked when a member has joined the distributed system. Also invoked when a client has
connected to this process or when this process has connected to a <code>CacheServer</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/geode/management/membership/MembershipListener.html#memberJoined-org.apache.geode.management.membership.MembershipEvent-">memberJoined</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/geode/management/membership/MembershipListener.html" title="interface in org.apache.geode.management.membership">MembershipListener</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>event</code> - the triggering event</dd>
</dl>
</li>
</ul>
<a name="memberLeft-org.apache.geode.management.membership.MembershipEvent-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>memberLeft</h4>
<pre>public&nbsp;void&nbsp;memberLeft(<a href="../../../../../org/apache/geode/management/membership/MembershipEvent.html" title="interface in org.apache.geode.management.membership">MembershipEvent</a>&nbsp;event)</pre>
<div class="block">Invoked when a member has gracefully left the distributed system. Also invoked when a client
has gracefully disconnected from this process. or when this process has gracefully disconnected
from a <code>CacheServer</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/geode/management/membership/MembershipListener.html#memberLeft-org.apache.geode.management.membership.MembershipEvent-">memberLeft</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/geode/management/membership/MembershipListener.html" title="interface in org.apache.geode.management.membership">MembershipListener</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>event</code> - the triggering event</dd>
</dl>
</li>
</ul>
<a name="memberCrashed-org.apache.geode.management.membership.MembershipEvent-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>memberCrashed</h4>
<pre>public&nbsp;void&nbsp;memberCrashed(<a href="../../../../../org/apache/geode/management/membership/MembershipEvent.html" title="interface in org.apache.geode.management.membership">MembershipEvent</a>&nbsp;event)</pre>
<div class="block">Invoked when a member has unexpectedly left the distributed system. Also invoked when a client
has unexpectedly disconnected from this process or when this process has unexpectedly
disconnected from a <code>CacheServer</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/geode/management/membership/MembershipListener.html#memberCrashed-org.apache.geode.management.membership.MembershipEvent-">memberCrashed</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/geode/management/membership/MembershipListener.html" title="interface in org.apache.geode.management.membership">MembershipListener</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>event</code> - the triggering event</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="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/geode/management/membership/MembershipListener.html" title="interface in org.apache.geode.management.membership"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/geode/management/membership/UniversalMembershipListenerAdapter.AdaptedMembershipEvent.html" title="class in org.apache.geode.management.membership"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/geode/management/membership/UniversalMembershipListenerAdapter.html" target="_top">Frames</a></li>
<li><a href="UniversalMembershipListenerAdapter.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 ======= -->
</body>
</html>