<!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 (version 1.7.0_40) on Fri Oct 18 06:47:24 UTC 2013 --> <title>DefaultRemoteNotificationServerHandler (MX4J API)</title> <meta name="date" content="2013-10-18"> <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style"> </head> <body> <script type="text/javascript"><!-- if (location.href.indexOf('is-external=true') == -1) { parent.document.title="DefaultRemoteNotificationServerHandler (MX4J API)"; } //--> </script> <noscript> <div>JavaScript is disabled on your browser.</div> </noscript> <!-- ========= START OF TOP NAVBAR ======= --> <div class="topNav"><a name="navbar_top"> <!-- --> </a><a href="#skip-navbar_top" title="Skip navigation links"></a><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/DefaultRemoteNotificationServerHandler.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="../../mx4j/remote/ConnectionResolver.html" title="class in mx4j.remote"><span class="strong">Prev Class</span></a></li> <li><a href="../../mx4j/remote/HeartBeat.html" title="interface in mx4j.remote"><span class="strong">Next Class</span></a></li> </ul> <ul class="navList"> <li><a href="../../index.html?mx4j/remote/DefaultRemoteNotificationServerHandler.html" target="_top">Frames</a></li> <li><a href="DefaultRemoteNotificationServerHandler.html" target="_top">No Frames</a></li> </ul> <ul class="navList" id="allclasses_navbar_top"> <li><a href="../../allclasses-noframe.html">All 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: </li> <li>Nested | </li> <li>Field | </li> <li><a href="#constructor_summary">Constr</a> | </li> <li><a href="#method_summary">Method</a></li> </ul> <ul class="subNavList"> <li>Detail: </li> <li>Field | </li> <li><a href="#constructor_detail">Constr</a> | </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">mx4j.remote</div> <h2 title="Class DefaultRemoteNotificationServerHandler" class="title">Class DefaultRemoteNotificationServerHandler</h2> </div> <div class="contentContainer"> <ul class="inheritance"> <li>java.lang.Object</li> <li> <ul class="inheritance"> <li>mx4j.remote.DefaultRemoteNotificationServerHandler</li> </ul> </li> </ul> <div class="description"> <ul class="blockList"> <li class="blockList"> <dl> <dt>All Implemented Interfaces:</dt> <dd><a href="../../mx4j/remote/RemoteNotificationServerHandler.html" title="interface in mx4j.remote">RemoteNotificationServerHandler</a></dd> </dl> <hr> <br> <pre>public class <span class="strong">DefaultRemoteNotificationServerHandler</span> extends java.lang.Object implements <a href="../../mx4j/remote/RemoteNotificationServerHandler.html" title="interface in mx4j.remote">RemoteNotificationServerHandler</a></pre> <div class="block">Base implementation of the RemoteNotificationServerHandler interface.</div> <dl><dt><span class="strong">Version:</span></dt> <dd>$Revision: 1.12 $</dd></dl> </li> </ul> </div> <div class="summary"> <ul class="blockList"> <li class="blockList"> <!-- ======== CONSTRUCTOR SUMMARY ======== --> <ul class="blockList"> <li class="blockList"><a name="constructor_summary"> <!-- --> </a> <h3>Constructor Summary</h3> <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> <caption><span>Constructors</span><span class="tabEnd"> </span></caption> <tr> <th class="colOne" scope="col">Constructor and Description</th> </tr> <tr class="altColor"> <td class="colOne"><code><strong><a href="../../mx4j/remote/DefaultRemoteNotificationServerHandler.html#DefaultRemoteNotificationServerHandler(java.util.Map)">DefaultRemoteNotificationServerHandler</a></strong>(java.util.Map environment)</code> <div class="block">Creates a new remote notification server handler.</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="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> <caption><span>Methods</span><span class="tabEnd"> </span></caption> <tr> <th class="colFirst" scope="col">Modifier and Type</th> <th class="colLast" scope="col">Method and Description</th> </tr> <tr class="altColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../mx4j/remote/DefaultRemoteNotificationServerHandler.html#addNotificationListener(java.lang.Integer, mx4j.remote.NotificationTuple)">addNotificationListener</a></strong>(java.lang.Integer id, <a href="../../mx4j/remote/NotificationTuple.html" title="class in mx4j.remote">NotificationTuple</a> tuple)</code> <div class="block">Adds the given tuple with the given listener ID to this handler</div> </td> </tr> <tr class="rowColor"> <td class="colFirst"><code><a href="../../mx4j/remote/NotificationTuple.html" title="class in mx4j.remote">NotificationTuple</a>[]</code></td> <td class="colLast"><code><strong><a href="../../mx4j/remote/DefaultRemoteNotificationServerHandler.html#close()">close</a></strong>()</code> <div class="block">Closes this handler, that will not accept anymore add or removal of listeners</div> </td> </tr> <tr class="altColor"> <td class="colFirst"><code>javax.management.remote.NotificationResult</code></td> <td class="colLast"><code><strong><a href="../../mx4j/remote/DefaultRemoteNotificationServerHandler.html#fetchNotifications(long, int, long)">fetchNotifications</a></strong>(long sequenceNumber, int maxNotifications, long timeout)</code> <div class="block">Fetches notifications from the notification buffer in order to send them to the client side</div> </td> </tr> <tr class="rowColor"> <td class="colFirst"><code>protected javax.management.remote.TargetedNotification[]</code></td> <td class="colLast"><code><strong><a href="../../mx4j/remote/DefaultRemoteNotificationServerHandler.html#filterNotifications(javax.management.remote.TargetedNotification[])">filterNotifications</a></strong>(javax.management.remote.TargetedNotification[] notifications)</code> <div class="block">This method filters the given notification array and returns a possibly smaller array containing only notifications that passed successfully the filtering.</div> </td> </tr> <tr class="altColor"> <td class="colFirst"><code>java.lang.Integer</code></td> <td class="colLast"><code><strong><a href="../../mx4j/remote/DefaultRemoteNotificationServerHandler.html#generateListenerID(javax.management.ObjectName, javax.management.NotificationFilter)">generateListenerID</a></strong>(javax.management.ObjectName name, javax.management.NotificationFilter filter)</code> <div class="block">Returns a unique ID for a client-side NotificationListener</div> </td> </tr> <tr class="rowColor"> <td class="colFirst"><code>protected <a href="../../mx4j/log/Logger.html" title="class in mx4j.log">Logger</a></code></td> <td class="colLast"><code><strong><a href="../../mx4j/remote/DefaultRemoteNotificationServerHandler.html#getLogger()">getLogger</a></strong>()</code> </td> </tr> <tr class="altColor"> <td class="colFirst"><code>javax.management.NotificationListener</code></td> <td class="colLast"><code><strong><a href="../../mx4j/remote/DefaultRemoteNotificationServerHandler.html#getServerNotificationListener()">getServerNotificationListener</a></strong>()</code> <div class="block">Returns the unique server side listener that will represent client-side listeners on MBeans.</div> </td> </tr> <tr class="rowColor"> <td class="colFirst"><code><a href="../../mx4j/remote/NotificationTuple.html" title="class in mx4j.remote">NotificationTuple</a></code></td> <td class="colLast"><code><strong><a href="../../mx4j/remote/DefaultRemoteNotificationServerHandler.html#removeNotificationListener(java.lang.Integer)">removeNotificationListener</a></strong>(java.lang.Integer id)</code> <div class="block">Removes the listener with the given ID from this handler</div> </td> </tr> <tr class="altColor"> <td class="colFirst"><code>protected boolean</code></td> <td class="colLast"><code><strong><a href="../../mx4j/remote/DefaultRemoteNotificationServerHandler.html#waitForNotifications(java.lang.Object, long)">waitForNotifications</a></strong>(java.lang.Object lock, long timeout)</code> <div class="block">Called when there are no notifications to send to the client.</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 java.lang.Object</h3> <code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li> </ul> </li> </ul> </li> </ul> </div> <div class="details"> <ul class="blockList"> <li class="blockList"> <!-- ========= CONSTRUCTOR DETAIL ======== --> <ul class="blockList"> <li class="blockList"><a name="constructor_detail"> <!-- --> </a> <h3>Constructor Detail</h3> <a name="DefaultRemoteNotificationServerHandler(java.util.Map)"> <!-- --> </a> <ul class="blockListLast"> <li class="blockList"> <h4>DefaultRemoteNotificationServerHandler</h4> <pre>public DefaultRemoteNotificationServerHandler(java.util.Map environment)</pre> <div class="block">Creates a new remote notification server handler.</div> <dl><dt><span class="strong">Parameters:</span></dt><dd><code>environment</code> - Contains environment variables used to configure this handler</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../mx4j/remote/MX4JRemoteConstants.html#NOTIFICATION_BUFFER_CAPACITY"><code>MX4JRemoteConstants.NOTIFICATION_BUFFER_CAPACITY</code></a>, <a href="../../mx4j/remote/MX4JRemoteConstants.html#NOTIFICATION_PURGE_DISTANCE"><code>MX4JRemoteConstants.NOTIFICATION_PURGE_DISTANCE</code></a></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="generateListenerID(javax.management.ObjectName, javax.management.NotificationFilter)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>generateListenerID</h4> <pre>public java.lang.Integer generateListenerID(javax.management.ObjectName name, javax.management.NotificationFilter filter)</pre> <div class="block"><strong>Description copied from interface: <code><a href="../../mx4j/remote/RemoteNotificationServerHandler.html#generateListenerID(javax.management.ObjectName, javax.management.NotificationFilter)">RemoteNotificationServerHandler</a></code></strong></div> <div class="block">Returns a unique ID for a client-side NotificationListener</div> <dl> <dt><strong>Specified by:</strong></dt> <dd><code><a href="../../mx4j/remote/RemoteNotificationServerHandler.html#generateListenerID(javax.management.ObjectName, javax.management.NotificationFilter)">generateListenerID</a></code> in interface <code><a href="../../mx4j/remote/RemoteNotificationServerHandler.html" title="interface in mx4j.remote">RemoteNotificationServerHandler</a></code></dd> <dt><span class="strong">See Also:</span></dt><dd><a href="../../mx4j/remote/RemoteNotificationServerHandler.html#addNotificationListener(java.lang.Integer, mx4j.remote.NotificationTuple)"><code>RemoteNotificationServerHandler.addNotificationListener(java.lang.Integer, mx4j.remote.NotificationTuple)</code></a></dd></dl> </li> </ul> <a name="getServerNotificationListener()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>getServerNotificationListener</h4> <pre>public javax.management.NotificationListener getServerNotificationListener()</pre> <div class="block"><strong>Description copied from interface: <code><a href="../../mx4j/remote/RemoteNotificationServerHandler.html#getServerNotificationListener()">RemoteNotificationServerHandler</a></code></strong></div> <div class="block">Returns the unique server side listener that will represent client-side listeners on MBeans.</div> <dl> <dt><strong>Specified by:</strong></dt> <dd><code><a href="../../mx4j/remote/RemoteNotificationServerHandler.html#getServerNotificationListener()">getServerNotificationListener</a></code> in interface <code><a href="../../mx4j/remote/RemoteNotificationServerHandler.html" title="interface in mx4j.remote">RemoteNotificationServerHandler</a></code></dd> </dl> </li> </ul> <a name="addNotificationListener(java.lang.Integer, mx4j.remote.NotificationTuple)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>addNotificationListener</h4> <pre>public void addNotificationListener(java.lang.Integer id, <a href="../../mx4j/remote/NotificationTuple.html" title="class in mx4j.remote">NotificationTuple</a> tuple)</pre> <div class="block"><strong>Description copied from interface: <code><a href="../../mx4j/remote/RemoteNotificationServerHandler.html#addNotificationListener(java.lang.Integer, mx4j.remote.NotificationTuple)">RemoteNotificationServerHandler</a></code></strong></div> <div class="block">Adds the given tuple with the given listener ID to this handler</div> <dl> <dt><strong>Specified by:</strong></dt> <dd><code><a href="../../mx4j/remote/RemoteNotificationServerHandler.html#addNotificationListener(java.lang.Integer, mx4j.remote.NotificationTuple)">addNotificationListener</a></code> in interface <code><a href="../../mx4j/remote/RemoteNotificationServerHandler.html" title="interface in mx4j.remote">RemoteNotificationServerHandler</a></code></dd> <dt><span class="strong">See Also:</span></dt><dd><a href="../../mx4j/remote/RemoteNotificationServerHandler.html#removeNotificationListener(java.lang.Integer)"><code>RemoteNotificationServerHandler.removeNotificationListener(java.lang.Integer)</code></a></dd></dl> </li> </ul> <a name="removeNotificationListener(java.lang.Integer)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>removeNotificationListener</h4> <pre>public <a href="../../mx4j/remote/NotificationTuple.html" title="class in mx4j.remote">NotificationTuple</a> removeNotificationListener(java.lang.Integer id)</pre> <div class="block"><strong>Description copied from interface: <code><a href="../../mx4j/remote/RemoteNotificationServerHandler.html#removeNotificationListener(java.lang.Integer)">RemoteNotificationServerHandler</a></code></strong></div> <div class="block">Removes the listener with the given ID from this handler</div> <dl> <dt><strong>Specified by:</strong></dt> <dd><code><a href="../../mx4j/remote/RemoteNotificationServerHandler.html#removeNotificationListener(java.lang.Integer)">removeNotificationListener</a></code> in interface <code><a href="../../mx4j/remote/RemoteNotificationServerHandler.html" title="interface in mx4j.remote">RemoteNotificationServerHandler</a></code></dd> <dt><span class="strong">See Also:</span></dt><dd><a href="../../mx4j/remote/RemoteNotificationServerHandler.html#addNotificationListener(java.lang.Integer, mx4j.remote.NotificationTuple)"><code>RemoteNotificationServerHandler.addNotificationListener(java.lang.Integer, mx4j.remote.NotificationTuple)</code></a></dd></dl> </li> </ul> <a name="fetchNotifications(long, int, long)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>fetchNotifications</h4> <pre>public javax.management.remote.NotificationResult fetchNotifications(long sequenceNumber, int maxNotifications, long timeout) throws java.io.IOException</pre> <div class="block"><strong>Description copied from interface: <code><a href="../../mx4j/remote/RemoteNotificationServerHandler.html#fetchNotifications(long, int, long)">RemoteNotificationServerHandler</a></code></strong></div> <div class="block">Fetches notifications from the notification buffer in order to send them to the client side</div> <dl> <dt><strong>Specified by:</strong></dt> <dd><code><a href="../../mx4j/remote/RemoteNotificationServerHandler.html#fetchNotifications(long, int, long)">fetchNotifications</a></code> in interface <code><a href="../../mx4j/remote/RemoteNotificationServerHandler.html" title="interface in mx4j.remote">RemoteNotificationServerHandler</a></code></dd> <dt><span class="strong">Throws:</span></dt> <dd><code>java.io.IOException</code> - If this handler has already been closed</dd></dl> </li> </ul> <a name="close()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>close</h4> <pre>public <a href="../../mx4j/remote/NotificationTuple.html" title="class in mx4j.remote">NotificationTuple</a>[] close()</pre> <div class="block"><strong>Description copied from interface: <code><a href="../../mx4j/remote/RemoteNotificationServerHandler.html#close()">RemoteNotificationServerHandler</a></code></strong></div> <div class="block">Closes this handler, that will not accept anymore add or removal of listeners</div> <dl> <dt><strong>Specified by:</strong></dt> <dd><code><a href="../../mx4j/remote/RemoteNotificationServerHandler.html#close()">close</a></code> in interface <code><a href="../../mx4j/remote/RemoteNotificationServerHandler.html" title="interface in mx4j.remote">RemoteNotificationServerHandler</a></code></dd> <dt><span class="strong">Returns:</span></dt><dd>The NotificationTuples currently held</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../mx4j/remote/RemoteNotificationServerHandler.html#fetchNotifications(long, int, long)"><code>RemoteNotificationServerHandler.fetchNotifications(long, int, long)</code></a></dd></dl> </li> </ul> <a name="waitForNotifications(java.lang.Object, long)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>waitForNotifications</h4> <pre>protected boolean waitForNotifications(java.lang.Object lock, long timeout)</pre> <div class="block">Called when there are no notifications to send to the client. It is guaranteed that no notification can be added before this method waits on the given lock. It should wait on the given lock for the specified timeout, and return true to send notifications (if no notifications arrived, an empty notification array will be returned to the client), or false if no notifications should be sent to the client.</div> <dl><dt><span class="strong">Parameters:</span></dt><dd><code>lock</code> - The object on which <code>Object.wait(long)</code> should be called</dd><dd><code>timeout</code> - The amount of time to wait (guaranteed to be strictly greater than 0)</dd></dl> </li> </ul> <a name="filterNotifications(javax.management.remote.TargetedNotification[])"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>filterNotifications</h4> <pre>protected javax.management.remote.TargetedNotification[] filterNotifications(javax.management.remote.TargetedNotification[] notifications)</pre> <div class="block">This method filters the given notification array and returns a possibly smaller array containing only notifications that passed successfully the filtering. Default behavior is no filtering, but subclasses may choose to change this bahavior. For example, for RMI, one can assure that all notifications are truly serializable, and log those that are not.</div> </li> </ul> <a name="getLogger()"> <!-- --> </a> <ul class="blockListLast"> <li class="blockList"> <h4>getLogger</h4> <pre>protected <a href="../../mx4j/log/Logger.html" title="class in mx4j.log">Logger</a> getLogger()</pre> </li> </ul> </li> </ul> </li> </ul> </div> </div> <!-- ========= END OF CLASS DATA ========= --> <!-- ======= START OF BOTTOM NAVBAR ====== --> <div class="bottomNav"><a name="navbar_bottom"> <!-- --> </a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><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/DefaultRemoteNotificationServerHandler.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="../../mx4j/remote/ConnectionResolver.html" title="class in mx4j.remote"><span class="strong">Prev Class</span></a></li> <li><a href="../../mx4j/remote/HeartBeat.html" title="interface in mx4j.remote"><span class="strong">Next Class</span></a></li> </ul> <ul class="navList"> <li><a href="../../index.html?mx4j/remote/DefaultRemoteNotificationServerHandler.html" target="_top">Frames</a></li> <li><a href="DefaultRemoteNotificationServerHandler.html" target="_top">No Frames</a></li> </ul> <ul class="navList" id="allclasses_navbar_bottom"> <li><a href="../../allclasses-noframe.html">All 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: </li> <li>Nested | </li> <li>Field | </li> <li><a href="#constructor_summary">Constr</a> | </li> <li><a href="#method_summary">Method</a></li> </ul> <ul class="subNavList"> <li>Detail: </li> <li>Field | </li> <li><a href="#constructor_detail">Constr</a> | </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><center><small>Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.</small></center></small></p> </body> </html>