blob: 4381d367f77205f09d13ec03c8f6191a420f1d49 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_101) on Thu Sep 01 13:59:14 BST 2016 -->
<title>ClientState</title>
<meta name="date" content="2016-09-01">
<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="ClientState";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/ClientState.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-files/index-1.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/eclipse/paho/client/mqttv3/internal/ClientDefaults.html" title="class in org.eclipse.paho.client.mqttv3.internal"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/eclipse/paho/client/mqttv3/internal/CommsCallback.html" title="class in org.eclipse.paho.client.mqttv3.internal"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/eclipse/paho/client/mqttv3/internal/ClientState.html" target="_top">Frames</a></li>
<li><a href="ClientState.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>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.eclipse.paho.client.mqttv3.internal</div>
<h2 title="Class ClientState" class="title">Class ClientState</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.eclipse.paho.client.mqttv3.internal.ClientState</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">ClientState</span>
extends java.lang.Object</pre>
<div class="block">The core of the client, which holds the state information for pending and
in-flight messages.
Messages that have been accepted for delivery are moved between several objects
while being delivered.
1) When the client is not running messages are stored in a persistent store that
implements the MqttClientPersistent Interface. The default is MqttDefaultFilePersistencew
which stores messages safely across failures and system restarts. If no persistence
is specified there is a fall back to MemoryPersistence which will maintain the messages
while the Mqtt client is instantiated.
2) When the client or specifically ClientState is instantiated the messages are
read from the persistent store into:
- outboundqos2 hashtable if a QoS 2 PUBLISH or PUBREL
- outboundqos1 hashtable if a QoS 1 PUBLISH
(see restoreState)
3) On Connect, copy messages from the outbound hashtables to the pendingMessages or
pendingFlows vector in messageid order.
- Initial message publish goes onto the pendingmessages buffer.
- PUBREL goes onto the pendingflows buffer
(see restoreInflightMessages)
4) Sender thread reads messages from the pendingflows and pendingmessages buffer
one at a time. The message is removed from the pendingbuffer but remains on the
outbound* hashtable. The hashtable is the place where the full set of outstanding
messages are stored in memory. (Persistence is only used at start up)
5) Receiver thread - receives wire messages:
- if QoS 1 then remove from persistence and outboundqos1
- if QoS 2 PUBREC send PUBREL. Updating the outboundqos2 entry with the PUBREL
and update persistence.
- if QoS 2 PUBCOMP remove from persistence and outboundqos2
Notes:
because of the multithreaded nature of the client it is vital that any changes to this
class take concurrency into account. For instance as soon as a flow / message is put on
the wire it is possible for the receiving thread to receive the ack and to be processing
the response before the sending side has finished processing. For instance a connect may
be sent, the conack received before the connect notify send has been processed!</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== 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><a href="../../../../../../org/eclipse/paho/client/mqttv3/MqttToken.html" title="class in org.eclipse.paho.client.mqttv3">MqttToken</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/eclipse/paho/client/mqttv3/internal/ClientState.html#checkForActivity-org.eclipse.paho.client.mqttv3.IMqttActionListener-">checkForActivity</a></span>(<a href="../../../../../../org/eclipse/paho/client/mqttv3/IMqttActionListener.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttActionListener</a>&nbsp;pingCallback)</code>
<div class="block">Check and send a ping if needed and check for ping timeout.</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/eclipse/paho/client/mqttv3/internal/ClientState.html#connected--">connected</a></span>()</code>
<div class="block">Called when the client has successfully connected to the broker</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/eclipse/paho/client/mqttv3/internal/ClientState.html#disconnected-org.eclipse.paho.client.mqttv3.MqttException-">disconnected</a></span>(<a href="../../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a>&nbsp;reason)</code>
<div class="block">Called when the client has been disconnected from the broker.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/eclipse/paho/client/mqttv3/internal/ClientState.html#getActualInFlight--">getActualInFlight</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>java.util.Properties</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/eclipse/paho/client/mqttv3/internal/ClientState.html#getDebug--">getDebug</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/eclipse/paho/client/mqttv3/internal/ClientState.html#getMaxInFlight--">getMaxInFlight</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/eclipse/paho/client/mqttv3/internal/ClientState.html#notifyQueueLock--">notifyQueueLock</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/eclipse/paho/client/mqttv3/internal/ClientState.html#notifyReceivedBytes-int-">notifyReceivedBytes</a></span>(int&nbsp;receivedBytesCount)</code>&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/eclipse/paho/client/mqttv3/internal/ClientState.html#notifySentBytes-int-">notifySentBytes</a></span>(int&nbsp;sentBytesCount)</code>
<div class="block">COMMENTED OUT AS NO LONGER USED.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/eclipse/paho/client/mqttv3/internal/ClientState.html#persistBufferedMessage-org.eclipse.paho.client.mqttv3.internal.wire.MqttWireMessage-">persistBufferedMessage</a></span>(<a href="../../../../../../org/eclipse/paho/client/mqttv3/internal/wire/MqttWireMessage.html" title="class in org.eclipse.paho.client.mqttv3.internal.wire">MqttWireMessage</a>&nbsp;message)</code>
<div class="block">Persists a buffered message to the persistence layer</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/eclipse/paho/client/mqttv3/internal/ClientState.html#quiesce-long-">quiesce</a></span>(long&nbsp;timeout)</code>
<div class="block">Quiesce the client state, preventing any new messages getting sent,
and preventing the callback on any newly received messages.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>java.util.Vector</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/eclipse/paho/client/mqttv3/internal/ClientState.html#resolveOldTokens-org.eclipse.paho.client.mqttv3.MqttException-">resolveOldTokens</a></span>(<a href="../../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a>&nbsp;reason)</code>
<div class="block">Called during shutdown to work out if there are any tokens still
to be notified and waiters to be unblocked.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/eclipse/paho/client/mqttv3/internal/ClientState.html#send-org.eclipse.paho.client.mqttv3.internal.wire.MqttWireMessage-org.eclipse.paho.client.mqttv3.MqttToken-">send</a></span>(<a href="../../../../../../org/eclipse/paho/client/mqttv3/internal/wire/MqttWireMessage.html" title="class in org.eclipse.paho.client.mqttv3.internal.wire">MqttWireMessage</a>&nbsp;message,
<a href="../../../../../../org/eclipse/paho/client/mqttv3/MqttToken.html" title="class in org.eclipse.paho.client.mqttv3">MqttToken</a>&nbsp;token)</code>
<div class="block">Submits a message for delivery.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/eclipse/paho/client/mqttv3/internal/ClientState.html#setKeepAliveInterval-long-">setKeepAliveInterval</a></span>(long&nbsp;interval)</code>&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/eclipse/paho/client/mqttv3/internal/ClientState.html#unPersistBufferedMessage-org.eclipse.paho.client.mqttv3.internal.wire.MqttWireMessage-">unPersistBufferedMessage</a></span>(<a href="../../../../../../org/eclipse/paho/client/mqttv3/internal/wire/MqttWireMessage.html" title="class in org.eclipse.paho.client.mqttv3.internal.wire">MqttWireMessage</a>&nbsp;message)</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>equals, 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">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="send-org.eclipse.paho.client.mqttv3.internal.wire.MqttWireMessage-org.eclipse.paho.client.mqttv3.MqttToken-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>send</h4>
<pre>public&nbsp;void&nbsp;send(<a href="../../../../../../org/eclipse/paho/client/mqttv3/internal/wire/MqttWireMessage.html" title="class in org.eclipse.paho.client.mqttv3.internal.wire">MqttWireMessage</a>&nbsp;message,
<a href="../../../../../../org/eclipse/paho/client/mqttv3/MqttToken.html" title="class in org.eclipse.paho.client.mqttv3">MqttToken</a>&nbsp;token)
throws <a href="../../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></pre>
<div class="block">Submits a message for delivery. This method will block until there is
room in the inFlightWindow for the message. The message is put into
persistence before returning.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>message</code> - the message to send</dd>
<dd><code>token</code> - the token that can be used to track delivery of the message</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></code></dd>
</dl>
</li>
</ul>
<a name="persistBufferedMessage-org.eclipse.paho.client.mqttv3.internal.wire.MqttWireMessage-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>persistBufferedMessage</h4>
<pre>public&nbsp;void&nbsp;persistBufferedMessage(<a href="../../../../../../org/eclipse/paho/client/mqttv3/internal/wire/MqttWireMessage.html" title="class in org.eclipse.paho.client.mqttv3.internal.wire">MqttWireMessage</a>&nbsp;message)</pre>
<div class="block">Persists a buffered message to the persistence layer</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>message</code> - </dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../../org/eclipse/paho/client/mqttv3/MqttPersistenceException.html" title="class in org.eclipse.paho.client.mqttv3">MqttPersistenceException</a></code></dd>
</dl>
</li>
</ul>
<a name="unPersistBufferedMessage-org.eclipse.paho.client.mqttv3.internal.wire.MqttWireMessage-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unPersistBufferedMessage</h4>
<pre>public&nbsp;void&nbsp;unPersistBufferedMessage(<a href="../../../../../../org/eclipse/paho/client/mqttv3/internal/wire/MqttWireMessage.html" title="class in org.eclipse.paho.client.mqttv3.internal.wire">MqttWireMessage</a>&nbsp;message)
throws <a href="../../../../../../org/eclipse/paho/client/mqttv3/MqttPersistenceException.html" title="class in org.eclipse.paho.client.mqttv3">MqttPersistenceException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../../org/eclipse/paho/client/mqttv3/MqttPersistenceException.html" title="class in org.eclipse.paho.client.mqttv3">MqttPersistenceException</a></code></dd>
</dl>
</li>
</ul>
<a name="checkForActivity-org.eclipse.paho.client.mqttv3.IMqttActionListener-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkForActivity</h4>
<pre>public&nbsp;<a href="../../../../../../org/eclipse/paho/client/mqttv3/MqttToken.html" title="class in org.eclipse.paho.client.mqttv3">MqttToken</a>&nbsp;checkForActivity(<a href="../../../../../../org/eclipse/paho/client/mqttv3/IMqttActionListener.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttActionListener</a>&nbsp;pingCallback)
throws <a href="../../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></pre>
<div class="block">Check and send a ping if needed and check for ping timeout.
Need to send a ping if nothing has been sent or received
in the last keepalive interval. It is important to check for
both sent and received packets in order to catch the case where an
app is solely sending QoS 0 messages or receiving QoS 0 messages.
QoS 0 message are not good enough for checking a connection is
alive as they are one way messages.
If a ping has been sent but no data has been received in the
last keepalive interval then the connection is deamed to be broken.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>token of ping command, null if no ping command has been sent.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></code></dd>
</dl>
</li>
</ul>
<a name="setKeepAliveInterval-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setKeepAliveInterval</h4>
<pre>public&nbsp;void&nbsp;setKeepAliveInterval(long&nbsp;interval)</pre>
</li>
</ul>
<a name="notifySentBytes-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>notifySentBytes</h4>
<pre>public&nbsp;void&nbsp;notifySentBytes(int&nbsp;sentBytesCount)</pre>
<div class="block">COMMENTED OUT AS NO LONGER USED.
Deduce how long to to wait until a ping is required.
In order to keep the connection alive the server must see activity within
the keepalive interval. If the application is not sending / receiving
any messages then the client will send a ping. This method works out
the next time that a ping must be sent in order for the server to
know the client is alive.</div>
</li>
</ul>
<a name="notifyReceivedBytes-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>notifyReceivedBytes</h4>
<pre>public&nbsp;void&nbsp;notifyReceivedBytes(int&nbsp;receivedBytesCount)</pre>
</li>
</ul>
<a name="connected--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>connected</h4>
<pre>public&nbsp;void&nbsp;connected()</pre>
<div class="block">Called when the client has successfully connected to the broker</div>
</li>
</ul>
<a name="resolveOldTokens-org.eclipse.paho.client.mqttv3.MqttException-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>resolveOldTokens</h4>
<pre>public&nbsp;java.util.Vector&nbsp;resolveOldTokens(<a href="../../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a>&nbsp;reason)</pre>
<div class="block">Called during shutdown to work out if there are any tokens still
to be notified and waiters to be unblocked. Notifying and unblocking
takes place after most shutdown processing has completed. The tokenstore
is tidied up so it only contains outstanding delivery tokens which are
valid after reconnect (if clean session is false)</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>reason</code> - The root cause of the disconnection, or null if it is a clean disconnect</dd>
</dl>
</li>
</ul>
<a name="disconnected-org.eclipse.paho.client.mqttv3.MqttException-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>disconnected</h4>
<pre>public&nbsp;void&nbsp;disconnected(<a href="../../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a>&nbsp;reason)</pre>
<div class="block">Called when the client has been disconnected from the broker.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>reason</code> - The root cause of the disconnection, or null if it is a clean disconnect</dd>
</dl>
</li>
</ul>
<a name="quiesce-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>quiesce</h4>
<pre>public&nbsp;void&nbsp;quiesce(long&nbsp;timeout)</pre>
<div class="block">Quiesce the client state, preventing any new messages getting sent,
and preventing the callback on any newly received messages.
After the timeout expires, delete any pending messages except for
outbound ACKs, and wait for those ACKs to complete.</div>
</li>
</ul>
<a name="notifyQueueLock--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>notifyQueueLock</h4>
<pre>public&nbsp;void&nbsp;notifyQueueLock()</pre>
</li>
</ul>
<a name="getActualInFlight--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getActualInFlight</h4>
<pre>public&nbsp;int&nbsp;getActualInFlight()</pre>
</li>
</ul>
<a name="getMaxInFlight--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMaxInFlight</h4>
<pre>public&nbsp;int&nbsp;getMaxInFlight()</pre>
</li>
</ul>
<a name="getDebug--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getDebug</h4>
<pre>public&nbsp;java.util.Properties&nbsp;getDebug()</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>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/ClientState.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-files/index-1.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/eclipse/paho/client/mqttv3/internal/ClientDefaults.html" title="class in org.eclipse.paho.client.mqttv3.internal"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/eclipse/paho/client/mqttv3/internal/CommsCallback.html" title="class in org.eclipse.paho.client.mqttv3.internal"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/eclipse/paho/client/mqttv3/internal/ClientState.html" target="_top">Frames</a></li>
<li><a href="ClientState.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>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>