<!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>Reactor (Qpid Proton-J API)</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="Reactor (Qpid Proton-J API)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":38,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6,"i26":6,"i27":6,"i28":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],32:["t6","Deprecated 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/qpid/proton/reactor/Handshaker.html" title="class in org.apache.qpid.proton.reactor"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/qpid/proton/reactor/Reactor.Factory.html" title="class in org.apache.qpid.proton.reactor"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/qpid/proton/reactor/Reactor.html" target="_top">Frames</a></li>
<li><a href="Reactor.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>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&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.qpid.proton.reactor</div>
<h2 title="Interface Reactor" class="title">Interface Reactor</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../../org/apache/qpid/proton/reactor/impl/ReactorImpl.html" title="class in org.apache.qpid.proton.reactor.impl">ReactorImpl</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">Reactor</span></pre>
<div class="block">The proton reactor provides a general purpose event processing
 library for writing reactive programs. A reactive program is defined
 by a set of event handlers. An event handler is just any class or
 object that extends the Handler interface. For convenience, a class
 can extend <a href="../../../../../org/apache/qpid/proton/engine/BaseHandler.html" title="class in org.apache.qpid.proton.engine"><code>BaseHandler</code></a> and only handle the events that it cares to
 implement methods for.
 <p>
 This class is not thread safe (with the exception of the <a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#wakeup--"><code>wakeup()</code></a>
 method) and should only be used by a single thread at any given time.</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">Interface 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/qpid/proton/reactor/Reactor.Factory.html" title="class in org.apache.qpid.proton.reactor">Reactor.Factory</a></span></code>&nbsp;</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="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated 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><a href="../../../../../org/apache/qpid/proton/reactor/Acceptor.html" title="interface in org.apache.qpid.proton.reactor">Acceptor</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#acceptor-java.lang.String-int-">acceptor</a></span>(java.lang.String&nbsp;host,
        int&nbsp;port)</code>
<div class="block">Creates a new acceptor.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/qpid/proton/reactor/Acceptor.html" title="interface in org.apache.qpid.proton.reactor">Acceptor</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#acceptor-java.lang.String-int-org.apache.qpid.proton.engine.Handler-">acceptor</a></span>(java.lang.String&nbsp;host,
        int&nbsp;port,
        <a href="../../../../../org/apache/qpid/proton/engine/Handler.html" title="interface in org.apache.qpid.proton.engine">Handler</a>&nbsp;handler)</code>
<div class="block">Creates a new acceptor.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/qpid/proton/engine/Record.html" title="interface in org.apache.qpid.proton.engine">Record</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#attachments--">attachments</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>java.util.Set&lt;<a href="../../../../../org/apache/qpid/proton/reactor/ReactorChild.html" title="interface in org.apache.qpid.proton.reactor">ReactorChild</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#children--">children</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/qpid/proton/engine/Collector.html" title="interface in org.apache.qpid.proton.engine">Collector</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#collector--">collector</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/qpid/proton/engine/Connection.html" title="interface in org.apache.qpid.proton.engine">Connection</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#connection-org.apache.qpid.proton.engine.Handler-">connection</a></span>(<a href="../../../../../org/apache/qpid/proton/engine/Handler.html" title="interface in org.apache.qpid.proton.engine">Handler</a>&nbsp;handler)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Use <a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#connectionToHost-java.lang.String-int-org.apache.qpid.proton.engine.Handler-"><code>connectionToHost(String, int, Handler)</code></a> instead.</span></div>
</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/qpid/proton/engine/Connection.html" title="interface in org.apache.qpid.proton.engine">Connection</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#connectionToHost-java.lang.String-int-org.apache.qpid.proton.engine.Handler-">connectionToHost</a></span>(java.lang.String&nbsp;host,
                int&nbsp;port,
                <a href="../../../../../org/apache/qpid/proton/engine/Handler.html" title="interface in org.apache.qpid.proton.engine">Handler</a>&nbsp;handler)</code>
<div class="block">Creates a new out-bound connection to the given host and port.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#free--">free</a></span>()</code>
<div class="block">Frees any resources (such as sockets and selectors) held by the reactor
 or its children.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#getConnectionAddress-org.apache.qpid.proton.engine.Connection-">getConnectionAddress</a></span>(<a href="../../../../../org/apache/qpid/proton/engine/Connection.html" title="interface in org.apache.qpid.proton.engine">Connection</a>&nbsp;c)</code>
<div class="block">Get the address used by the connection</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/qpid/proton/engine/Handler.html" title="interface in org.apache.qpid.proton.engine">Handler</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#getGlobalHandler--">getGlobalHandler</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/qpid/proton/engine/Handler.html" title="interface in org.apache.qpid.proton.engine">Handler</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#getHandler--">getHandler</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/qpid/proton/reactor/ReactorOptions.html" title="class in org.apache.qpid.proton.reactor">ReactorOptions</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#getOptions--">getOptions</a></span>()</code>
<div class="block">Gets the reactor options.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#getTimeout--">getTimeout</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#mark--">mark</a></span>()</code>
<div class="block">Updates the last time that the reactor's state has changed, potentially
 resulting in events being generated.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#now--">now</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#process--">process</a></span>()</code>
<div class="block">Process any events pending for this reactor.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#quiesced--">quiesced</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#run--">run</a></span>()</code>
<div class="block">Simplifies the use of the reactor by wrapping the use of
 <code>start</code>, <code>run</code>, and <code>stop</code> method
 calls.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/qpid/proton/reactor/Task.html" title="interface in org.apache.qpid.proton.reactor">Task</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#schedule-int-org.apache.qpid.proton.engine.Handler-">schedule</a></span>(int&nbsp;delay,
        <a href="../../../../../org/apache/qpid/proton/engine/Handler.html" title="interface in org.apache.qpid.proton.engine">Handler</a>&nbsp;handler)</code>
<div class="block">Schedules execution of a task to take place at some point in the future.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/qpid/proton/reactor/Selectable.html" title="interface in org.apache.qpid.proton.reactor">Selectable</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#selectable--">selectable</a></span>()</code>
<div class="block">Creates a new <code>Selectable</code> as a child of this reactor.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#setConnectionHost-org.apache.qpid.proton.engine.Connection-java.lang.String-int-">setConnectionHost</a></span>(<a href="../../../../../org/apache/qpid/proton/engine/Connection.html" title="interface in org.apache.qpid.proton.engine">Connection</a>&nbsp;c,
                 java.lang.String&nbsp;host,
                 int&nbsp;port)</code>
<div class="block">Set the host address used by the connection</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#setGlobalHandler-org.apache.qpid.proton.engine.Handler-">setGlobalHandler</a></span>(<a href="../../../../../org/apache/qpid/proton/engine/Handler.html" title="interface in org.apache.qpid.proton.engine">Handler</a>&nbsp;handler)</code>
<div class="block">Sets a new global handler.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#setHandler-org.apache.qpid.proton.engine.Handler-">setHandler</a></span>(<a href="../../../../../org/apache/qpid/proton/engine/Handler.html" title="interface in org.apache.qpid.proton.engine">Handler</a>&nbsp;handler)</code>
<div class="block">Sets a new handler, that will receive any events not handled by a child
 of the reactor.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#setTimeout-long-">setTimeout</a></span>(long&nbsp;timeout)</code>
<div class="block">The value the reactor will use for <a href="../../../../../org/apache/qpid/proton/reactor/Selector.html#select-long-"><code>Selector.select(long)</code></a> that is called as part of <a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#process--"><code>process()</code></a>.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#start--">start</a></span>()</code>
<div class="block">Starts the reactor.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#stop--">stop</a></span>()</code>
<div class="block">Stops the reactor.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#update-org.apache.qpid.proton.reactor.Selectable-">update</a></span>(<a href="../../../../../org/apache/qpid/proton/reactor/Selectable.html" title="interface in org.apache.qpid.proton.reactor">Selectable</a>&nbsp;selectable)</code>
<div class="block">Updates the specified <code>Selectable</code> either emitting a
 <a href="../../../../../org/apache/qpid/proton/engine/Event.Type.html#SELECTABLE_UPDATED"><code>Event.Type.SELECTABLE_UPDATED</code></a> event if the selectable is not terminal,
 or <a href="../../../../../org/apache/qpid/proton/engine/Event.Type.html#SELECTABLE_FINAL"><code>Event.Type.SELECTABLE_FINAL</code></a> if the selectable is terminal and has
 not already emitted a <a href="../../../../../org/apache/qpid/proton/engine/Event.Type.html#SELECTABLE_FINAL"><code>Event.Type.SELECTABLE_FINAL</code></a> event.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#wakeup--">wakeup</a></span>()</code>
<div class="block">Wakes up the thread (if any) blocked in the <a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#process--"><code>process()</code></a> method.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#yield--">yield</a></span>()</code>
<div class="block">Yields, causing the next call to <a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#process--"><code>process()</code></a> to return
 successfully - without processing any events.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="mark--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>mark</h4>
<pre>long&nbsp;mark()</pre>
<div class="block">Updates the last time that the reactor's state has changed, potentially
 resulting in events being generated.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the current time in milliseconds
         <code>System.currentTimeMillis()</code>.</dd>
</dl>
</li>
</ul>
<a name="now--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>now</h4>
<pre>long&nbsp;now()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the last time that <a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#mark--"><code>mark()</code></a> was called.</dd>
</dl>
</li>
</ul>
<a name="attachments--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>attachments</h4>
<pre><a href="../../../../../org/apache/qpid/proton/engine/Record.html" title="interface in org.apache.qpid.proton.engine">Record</a>&nbsp;attachments()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an instance of <a href="../../../../../org/apache/qpid/proton/engine/Record.html" title="interface in org.apache.qpid.proton.engine"><code>Record</code></a> that can be used to associate
          other objects (attachments) with this instance of the
          Reactor class.</dd>
</dl>
</li>
</ul>
<a name="setTimeout-long-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTimeout</h4>
<pre>void&nbsp;setTimeout(long&nbsp;timeout)</pre>
<div class="block">The value the reactor will use for <a href="../../../../../org/apache/qpid/proton/reactor/Selector.html#select-long-"><code>Selector.select(long)</code></a> that is called as part of <a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#process--"><code>process()</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>timeout</code> - a timeout value in milliseconds, to associate with this instance of
        the reactor.  This can be retrieved using the
        <a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#getTimeout--"><code>getTimeout()</code></a> method</dd>
</dl>
</li>
</ul>
<a name="getTimeout--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTimeout</h4>
<pre>long&nbsp;getTimeout()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value previously set using <a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#setTimeout-long-"><code>setTimeout(long)</code></a> or
         0 if no previous value has been set.</dd>
</dl>
</li>
</ul>
<a name="getGlobalHandler--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getGlobalHandler</h4>
<pre><a href="../../../../../org/apache/qpid/proton/engine/Handler.html" title="interface in org.apache.qpid.proton.engine">Handler</a>&nbsp;getGlobalHandler()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the global handler for this reactor.  Every event the reactor
         sees is dispatched to the global handler.  To receive every
         event generated by the reactor, associate a child handler
         with the global handler.  For example:
         <pre>
            getGlobalHandler().add(yourHandler);
         </pre></dd>
</dl>
</li>
</ul>
<a name="setGlobalHandler-org.apache.qpid.proton.engine.Handler-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setGlobalHandler</h4>
<pre>void&nbsp;setGlobalHandler(<a href="../../../../../org/apache/qpid/proton/engine/Handler.html" title="interface in org.apache.qpid.proton.engine">Handler</a>&nbsp;handler)</pre>
<div class="block">Sets a new global handler.  You probably don't want to do this and
 would be better adding a handler to the value returned by the
 {<a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#getGlobalHandler--"><code>getGlobalHandler()</code></a> method.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>handler</code> - the new global handler.</dd>
</dl>
</li>
</ul>
<a name="getHandler--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getHandler</h4>
<pre><a href="../../../../../org/apache/qpid/proton/engine/Handler.html" title="interface in org.apache.qpid.proton.engine">Handler</a>&nbsp;getHandler()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the handler for this reactor.  Every event the reactor sees,
         which is not handled by a child of the reactor (such as a
         timer, connection, acceptor, or selector) is passed to this
         handler.  To receive these events, it is recommend that you
         associate a child handler with the handler returned by this
         method.  For example:
         <pre>
           getHandler().add(yourHandler);
         </pre></dd>
</dl>
</li>
</ul>
<a name="setHandler-org.apache.qpid.proton.engine.Handler-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setHandler</h4>
<pre>void&nbsp;setHandler(<a href="../../../../../org/apache/qpid/proton/engine/Handler.html" title="interface in org.apache.qpid.proton.engine">Handler</a>&nbsp;handler)</pre>
<div class="block">Sets a new handler, that will receive any events not handled by a child
 of the reactor.  Note that setting a handler via this method replaces
 the previous handler, and will result in no further events being
 dispatched to the child handlers associated with the previous handler.
 For this reason it is recommended that you do not use this method and
 instead add child handlers to the value returned by the
 <a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#getHandler--"><code>getHandler()</code></a> method.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>handler</code> - the new handler for this reactor.</dd>
</dl>
</li>
</ul>
<a name="children--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>children</h4>
<pre>java.util.Set&lt;<a href="../../../../../org/apache/qpid/proton/reactor/ReactorChild.html" title="interface in org.apache.qpid.proton.reactor">ReactorChild</a>&gt;&nbsp;children()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a set containing the child objects associated with this reactor.
         This will contain any active instances of: <a href="../../../../../org/apache/qpid/proton/reactor/Task.html" title="interface in org.apache.qpid.proton.reactor"><code>Task</code></a> -
         created using the <a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#schedule-int-org.apache.qpid.proton.engine.Handler-"><code>schedule(int, Handler)</code></a> method,
         <a href="../../../../../org/apache/qpid/proton/engine/Connection.html" title="interface in org.apache.qpid.proton.engine"><code>Connection</code></a> - created using the
         <a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#connectionToHost-java.lang.String-int-org.apache.qpid.proton.engine.Handler-"><code>connectionToHost(String, int, Handler)</code></a> method,
         <a href="../../../../../org/apache/qpid/proton/reactor/Acceptor.html" title="interface in org.apache.qpid.proton.reactor"><code>Acceptor</code></a> - created using the
         <a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#acceptor-java.lang.String-int-"><code>acceptor(String, int)</code></a> method,
         <a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#acceptor-java.lang.String-int-org.apache.qpid.proton.engine.Handler-"><code>acceptor(String, int, Handler)</code></a> method, or
         <a href="../../../../../org/apache/qpid/proton/reactor/Selectable.html" title="interface in org.apache.qpid.proton.reactor"><code>Selectable</code></a> - created using the
         <a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#selectable--"><code>selectable()</code></a> method.</dd>
</dl>
</li>
</ul>
<a name="collector--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>collector</h4>
<pre><a href="../../../../../org/apache/qpid/proton/engine/Collector.html" title="interface in org.apache.qpid.proton.engine">Collector</a>&nbsp;collector()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the Collector used to gather events generated by this reactor.</dd>
</dl>
</li>
</ul>
<a name="selectable--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>selectable</h4>
<pre><a href="../../../../../org/apache/qpid/proton/reactor/Selectable.html" title="interface in org.apache.qpid.proton.reactor">Selectable</a>&nbsp;selectable()</pre>
<div class="block">Creates a new <code>Selectable</code> as a child of this reactor.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the newly created <code>Selectable</code>.</dd>
</dl>
</li>
</ul>
<a name="update-org.apache.qpid.proton.reactor.Selectable-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>update</h4>
<pre>void&nbsp;update(<a href="../../../../../org/apache/qpid/proton/reactor/Selectable.html" title="interface in org.apache.qpid.proton.reactor">Selectable</a>&nbsp;selectable)</pre>
<div class="block">Updates the specified <code>Selectable</code> either emitting a
 <a href="../../../../../org/apache/qpid/proton/engine/Event.Type.html#SELECTABLE_UPDATED"><code>Event.Type.SELECTABLE_UPDATED</code></a> event if the selectable is not terminal,
 or <a href="../../../../../org/apache/qpid/proton/engine/Event.Type.html#SELECTABLE_FINAL"><code>Event.Type.SELECTABLE_FINAL</code></a> if the selectable is terminal and has
 not already emitted a <a href="../../../../../org/apache/qpid/proton/engine/Event.Type.html#SELECTABLE_FINAL"><code>Event.Type.SELECTABLE_FINAL</code></a> event.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>selectable</code> - </dd>
</dl>
</li>
</ul>
<a name="yield--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>yield</h4>
<pre>void&nbsp;yield()</pre>
<div class="block">Yields, causing the next call to <a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#process--"><code>process()</code></a> to return
 successfully - without processing any events.  If multiple calls
 can be made to <code>yield</code> and only the next invocation of
 <a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#process--"><code>process()</code></a> will be affected.</div>
</li>
</ul>
<a name="quiesced--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>quiesced</h4>
<pre>boolean&nbsp;quiesced()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the reactor is in quiesced state (e.g. has
         no events to process).  <code>false</code> is returned otherwise.</dd>
</dl>
</li>
</ul>
<a name="process--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>process</h4>
<pre>boolean&nbsp;process()
         throws <a href="../../../../../org/apache/qpid/proton/engine/HandlerException.html" title="class in org.apache.qpid.proton.engine">HandlerException</a></pre>
<div class="block">Process any events pending for this reactor.  Events are dispatched to
 the handlers registered with the reactor, or child objects associated
 with the reactor.  This method blocks until the reactor has no more work
 to do (and no more work pending, in terms of scheduled tasks or open
 selectors to process).</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the reactor may have more events in the
         future.  For example: if there are scheduled tasks, or open
         selectors.  <code>false</code> is returned if the reactor has
         (and will have) no more events to process.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/qpid/proton/engine/HandlerException.html" title="class in org.apache.qpid.proton.engine">HandlerException</a></code> - if an unchecked exception is thrown by one of
         the handlers - it will be re-thrown attached to an instance of
         <code>HandlerException</code>.</dd>
</dl>
</li>
</ul>
<a name="wakeup--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>wakeup</h4>
<pre>void&nbsp;wakeup()</pre>
<div class="block">Wakes up the thread (if any) blocked in the <a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#process--"><code>process()</code></a> method.
 This is the only method of this class that is thread safe, in that it
 can be used at the same time as another thread is using the reactor.</div>
</li>
</ul>
<a name="start--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>start</h4>
<pre>void&nbsp;start()</pre>
<div class="block">Starts the reactor.  This method should be invoked before the first call
 to <a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#process--"><code>process()</code></a>.</div>
</li>
</ul>
<a name="stop--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stop</h4>
<pre>void&nbsp;stop()
   throws <a href="../../../../../org/apache/qpid/proton/engine/HandlerException.html" title="class in org.apache.qpid.proton.engine">HandlerException</a></pre>
<div class="block">Stops the reactor.  This method should be invoked after the last call to
 <a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#process--"><code>process()</code></a>.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/qpid/proton/engine/HandlerException.html" title="class in org.apache.qpid.proton.engine">HandlerException</a></code></dd>
</dl>
</li>
</ul>
<a name="run--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>run</h4>
<pre>void&nbsp;run()
  throws <a href="../../../../../org/apache/qpid/proton/engine/HandlerException.html" title="class in org.apache.qpid.proton.engine">HandlerException</a></pre>
<div class="block">Simplifies the use of the reactor by wrapping the use of
 <code>start</code>, <code>run</code>, and <code>stop</code> method
 calls.
 <p>
 Logically the implementation of this method is:
 <pre>
   start();
   while(process()) {}
   stop();
 </pre></div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/qpid/proton/engine/HandlerException.html" title="class in org.apache.qpid.proton.engine">HandlerException</a></code> - if an unchecked exception is thrown by one of
         the handlers - it will be re-thrown attached to an instance of
         <code>HandlerException</code>.</dd>
</dl>
</li>
</ul>
<a name="schedule-int-org.apache.qpid.proton.engine.Handler-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>schedule</h4>
<pre><a href="../../../../../org/apache/qpid/proton/reactor/Task.html" title="interface in org.apache.qpid.proton.reactor">Task</a>&nbsp;schedule(int&nbsp;delay,
              <a href="../../../../../org/apache/qpid/proton/engine/Handler.html" title="interface in org.apache.qpid.proton.engine">Handler</a>&nbsp;handler)</pre>
<div class="block">Schedules execution of a task to take place at some point in the future.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>delay</code> - the number of milliseconds, in the future, to schedule the
              task for.</dd>
<dd><code>handler</code> - a handler to associate with the task.  This is notified
                when the deadline for the task is reached.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an object representing the task that has been scheduled.</dd>
</dl>
</li>
</ul>
<a name="connection-org.apache.qpid.proton.engine.Handler-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>connection</h4>
<pre>@Deprecated
<a href="../../../../../org/apache/qpid/proton/engine/Connection.html" title="interface in org.apache.qpid.proton.engine">Connection</a>&nbsp;connection(<a href="../../../../../org/apache/qpid/proton/engine/Handler.html" title="interface in org.apache.qpid.proton.engine">Handler</a>&nbsp;handler)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#connectionToHost-java.lang.String-int-org.apache.qpid.proton.engine.Handler-"><code>connectionToHost(String, int, Handler)</code></a> instead.</span></div>
<div class="block">Creates a new out-bound connection.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>handler</code> - a handler that is notified when events occur for the
                connection.  Typically the host and port to connect to
                would be supplied to the connection object inside the
                logic which handles the <a href="../../../../../org/apache/qpid/proton/engine/Event.Type.html#CONNECTION_INIT"><code>Event.Type.CONNECTION_INIT</code></a>
                event via
                <a href="../../../../../org/apache/qpid/proton/reactor/Reactor.html#setConnectionHost-org.apache.qpid.proton.engine.Connection-java.lang.String-int-"><code>setConnectionHost(Connection, String, int)</code></a></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the newly created connection object.</dd>
</dl>
</li>
</ul>
<a name="connectionToHost-java.lang.String-int-org.apache.qpid.proton.engine.Handler-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>connectionToHost</h4>
<pre><a href="../../../../../org/apache/qpid/proton/engine/Connection.html" title="interface in org.apache.qpid.proton.engine">Connection</a>&nbsp;connectionToHost(java.lang.String&nbsp;host,
                            int&nbsp;port,
                            <a href="../../../../../org/apache/qpid/proton/engine/Handler.html" title="interface in org.apache.qpid.proton.engine">Handler</a>&nbsp;handler)</pre>
<div class="block">Creates a new out-bound connection to the given host and port.
 <p>
 This method will cause Reactor to set up a network connection to the
 host and create a Connection for it.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>host</code> - the host to connect to (e.g. "localhost")</dd>
<dd><code>port</code> - the port used for the connection.</dd>
<dd><code>handler</code> - a handler that is notified when events occur for the
                connection.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the newly created connection object.</dd>
</dl>
</li>
</ul>
<a name="setConnectionHost-org.apache.qpid.proton.engine.Connection-java.lang.String-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setConnectionHost</h4>
<pre>void&nbsp;setConnectionHost(<a href="../../../../../org/apache/qpid/proton/engine/Connection.html" title="interface in org.apache.qpid.proton.engine">Connection</a>&nbsp;c,
                       java.lang.String&nbsp;host,
                       int&nbsp;port)</pre>
<div class="block">Set the host address used by the connection
 <p>
 This method will set/change the host address used by the Reactor to
 create an outbound network connection for the given Connection</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>c</code> - the Connection to assign the address to</dd>
<dd><code>host</code> - the address of the host to connect to (e.g. "localhost")</dd>
<dd><code>port</code> - the port to use for the connection.</dd>
</dl>
</li>
</ul>
<a name="getOptions--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOptions</h4>
<pre><a href="../../../../../org/apache/qpid/proton/reactor/ReactorOptions.html" title="class in org.apache.qpid.proton.reactor">ReactorOptions</a>&nbsp;getOptions()</pre>
<div class="block">Gets the reactor options.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the reactor options</dd>
</dl>
</li>
</ul>
<a name="getConnectionAddress-org.apache.qpid.proton.engine.Connection-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getConnectionAddress</h4>
<pre>java.lang.String&nbsp;getConnectionAddress(<a href="../../../../../org/apache/qpid/proton/engine/Connection.html" title="interface in org.apache.qpid.proton.engine">Connection</a>&nbsp;c)</pre>
<div class="block">Get the address used by the connection
 <p>
 This may be used to retrieve the remote peer address.
 Note that the returned address may be in numeric IP format.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>c</code> - the Connection</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a string containing the address in the following format:
 <pre>
   host[:port]
 </pre></dd>
</dl>
</li>
</ul>
<a name="acceptor-java.lang.String-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>acceptor</h4>
<pre><a href="../../../../../org/apache/qpid/proton/reactor/Acceptor.html" title="interface in org.apache.qpid.proton.reactor">Acceptor</a>&nbsp;acceptor(java.lang.String&nbsp;host,
                  int&nbsp;port)
           throws java.io.IOException</pre>
<div class="block">Creates a new acceptor.  This is equivalent to calling:
 <pre>
   acceptor(host, port, null);
 </pre></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>host</code> - </dd>
<dd><code>port</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the newly created acceptor object.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a name="acceptor-java.lang.String-int-org.apache.qpid.proton.engine.Handler-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>acceptor</h4>
<pre><a href="../../../../../org/apache/qpid/proton/reactor/Acceptor.html" title="interface in org.apache.qpid.proton.reactor">Acceptor</a>&nbsp;acceptor(java.lang.String&nbsp;host,
                  int&nbsp;port,
                  <a href="../../../../../org/apache/qpid/proton/engine/Handler.html" title="interface in org.apache.qpid.proton.engine">Handler</a>&nbsp;handler)
           throws java.io.IOException</pre>
<div class="block">Creates a new acceptor.  This acceptor listens for in-bound connections.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>host</code> - the host name or address of the NIC to listen on.</dd>
<dd><code>port</code> - the port number to listen on.</dd>
<dd><code>handler</code> - if non-<code>null</code> this handler is registered with
                each new connection accepted by the acceptor.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the newly created acceptor object.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a name="free--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>free</h4>
<pre>void&nbsp;free()</pre>
<div class="block">Frees any resources (such as sockets and selectors) held by the reactor
 or its children.</div>
</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/qpid/proton/reactor/Handshaker.html" title="class in org.apache.qpid.proton.reactor"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/qpid/proton/reactor/Reactor.Factory.html" title="class in org.apache.qpid.proton.reactor"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/qpid/proton/reactor/Reactor.html" target="_top">Frames</a></li>
<li><a href="Reactor.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>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&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>
