<!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_13) on Wed Apr 23 18:07:53 CST 2014 -->
<title>D-Index</title>
<meta name="date" content="2014-04-23">
<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="D-Index";
    }
//-->
</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="../org/eclipse/paho/android/service/package-summary.html">Package</a></li>
<li>Class</li>
<li>Use</li>
<li><a href="../overview-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li class="navBarCell1Rev">Index</li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-2.html">Prev Letter</a></li>
<li><a href="index-4.html">Next Letter</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-filesindex-3.html" target="_top">Frames</a></li>
<li><a href="index-3.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>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="contentContainer"><a href="index-1.html">A</a>&nbsp;<a href="index-2.html">C</a>&nbsp;<a href="index-3.html">D</a>&nbsp;<a href="index-4.html">G</a>&nbsp;<a href="index-5.html">I</a>&nbsp;<a href="index-6.html">M</a>&nbsp;<a href="index-7.html">N</a>&nbsp;<a href="index-8.html">O</a>&nbsp;<a href="index-9.html">P</a>&nbsp;<a href="index-10.html">Q</a>&nbsp;<a href="index-11.html">R</a>&nbsp;<a href="index-12.html">S</a>&nbsp;<a href="index-13.html">T</a>&nbsp;<a href="index-14.html">U</a>&nbsp;<a href="index-15.html">V</a>&nbsp;<a href="index-16.html">W</a>&nbsp;<a name="_D_">
<!--   -->
</a>
<h2 class="title">D</h2>
<dl>
<dt><a href="../org/eclipse/paho/android/service/DatabaseMessageStore.html" title="class in org.eclipse.paho.android.service"><span class="strong">DatabaseMessageStore</span></a> - Class in <a href="../org/eclipse/paho/android/service/package-summary.html">org.eclipse.paho.android.service</a></dt>
<dd>
<div class="block">Implementation of the <a href="../org/eclipse/paho/android/service/MessageStore.html" title="interface in org.eclipse.paho.android.service"><code>MessageStore</code></a> interface, using a SQLite database</div>
</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/DatabaseMessageStore.html#DatabaseMessageStore(org.eclipse.paho.android.service.MqttService, Context)">DatabaseMessageStore(MqttService, Context)</a></span> - Constructor for class org.eclipse.paho.android.service.<a href="../org/eclipse/paho/android/service/DatabaseMessageStore.html" title="class in org.eclipse.paho.android.service">DatabaseMessageStore</a></dt>
<dd>
<div class="block">Constructor - create a DatabaseMessageStore to store arrived MQTT message</div>
</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MqttConnection.html#deliveryComplete(org.eclipse.paho.client.mqttv3.IMqttDeliveryToken)">deliveryComplete(IMqttDeliveryToken)</a></span> - Method in class org.eclipse.paho.android.service.<a href="../org/eclipse/paho/android/service/MqttConnection.html" title="class in org.eclipse.paho.android.service">MqttConnection</a></dt>
<dd>
<div class="block">Callback to indicate a message has been delivered (the exact meaning of
 "has been delivered" is dependent on the QOS value)</div>
</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/ParcelableMqttMessage.html#describeContents()">describeContents()</a></span> - Method in class org.eclipse.paho.android.service.<a href="../org/eclipse/paho/android/service/ParcelableMqttMessage.html" title="class in org.eclipse.paho.android.service">ParcelableMqttMessage</a></dt>
<dd>
<div class="block">Describes the contents of this object</div>
</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MqttServiceConstants.html#DESTINATION_NAME">DESTINATION_NAME</a></span> - Static variable in interface org.eclipse.paho.android.service.<a href="../org/eclipse/paho/android/service/MqttServiceConstants.html" title="interface in org.eclipse.paho.android.service">MqttServiceConstants</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/DatabaseMessageStore.html#discardArrived(java.lang.String, java.lang.String)">discardArrived(String, String)</a></span> - Method in class org.eclipse.paho.android.service.<a href="../org/eclipse/paho/android/service/DatabaseMessageStore.html" title="class in org.eclipse.paho.android.service">DatabaseMessageStore</a></dt>
<dd>
<div class="block">Delete an MQTT message.</div>
</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MessageStore.html#discardArrived(java.lang.String, java.lang.String)">discardArrived(String, String)</a></span> - Method in interface org.eclipse.paho.android.service.<a href="../org/eclipse/paho/android/service/MessageStore.html" title="interface in org.eclipse.paho.android.service">MessageStore</a></dt>
<dd>
<div class="block">Discard a message - called when we are certain that an arrived message
 has reached the application.</div>
</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MqttAndroidClient.html#disconnect()">disconnect()</a></span> - Method in class org.eclipse.paho.android.service.<a href="../org/eclipse/paho/android/service/MqttAndroidClient.html" title="class in org.eclipse.paho.android.service">MqttAndroidClient</a></dt>
<dd>
<div class="block">Disconnects from the server.</div>
</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MqttAndroidClient.html#disconnect(long)">disconnect(long)</a></span> - Method in class org.eclipse.paho.android.service.<a href="../org/eclipse/paho/android/service/MqttAndroidClient.html" title="class in org.eclipse.paho.android.service">MqttAndroidClient</a></dt>
<dd>
<div class="block">Disconnects from the server.</div>
</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MqttAndroidClient.html#disconnect(java.lang.Object, org.eclipse.paho.client.mqttv3.IMqttActionListener)">disconnect(Object, IMqttActionListener)</a></span> - Method in class org.eclipse.paho.android.service.<a href="../org/eclipse/paho/android/service/MqttAndroidClient.html" title="class in org.eclipse.paho.android.service">MqttAndroidClient</a></dt>
<dd>
<div class="block">Disconnects from the server.</div>
</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MqttAndroidClient.html#disconnect(long, java.lang.Object, org.eclipse.paho.client.mqttv3.IMqttActionListener)">disconnect(long, Object, IMqttActionListener)</a></span> - Method in class org.eclipse.paho.android.service.<a href="../org/eclipse/paho/android/service/MqttAndroidClient.html" title="class in org.eclipse.paho.android.service">MqttAndroidClient</a></dt>
<dd>
<div class="block">Disconnects from the server.</div>
</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MqttConnection.html#disconnect(long, java.lang.String, java.lang.String)">disconnect(long, String, String)</a></span> - Method in class org.eclipse.paho.android.service.<a href="../org/eclipse/paho/android/service/MqttConnection.html" title="class in org.eclipse.paho.android.service">MqttConnection</a></dt>
<dd>
<div class="block">Disconnect from the server</div>
</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MqttConnection.html#disconnect(java.lang.String, java.lang.String)">disconnect(String, String)</a></span> - Method in class org.eclipse.paho.android.service.<a href="../org/eclipse/paho/android/service/MqttConnection.html" title="class in org.eclipse.paho.android.service">MqttConnection</a></dt>
<dd>
<div class="block">Disconnect from the server</div>
</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MqttService.html#disconnect(java.lang.String, java.lang.String, java.lang.String)">disconnect(String, String, String)</a></span> - Method in class org.eclipse.paho.android.service.<a href="../org/eclipse/paho/android/service/MqttService.html" title="class in org.eclipse.paho.android.service">MqttService</a></dt>
<dd>
<div class="block">Disconnect from the server</div>
</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MqttService.html#disconnect(java.lang.String, long, java.lang.String, java.lang.String)">disconnect(String, long, String, String)</a></span> - Method in class org.eclipse.paho.android.service.<a href="../org/eclipse/paho/android/service/MqttService.html" title="class in org.eclipse.paho.android.service">MqttService</a></dt>
<dd>
<div class="block">Disconnect from the server</div>
</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MqttServiceConstants.html#DISCONNECT_ACTION">DISCONNECT_ACTION</a></span> - Static variable in interface org.eclipse.paho.android.service.<a href="../org/eclipse/paho/android/service/MqttServiceConstants.html" title="interface in org.eclipse.paho.android.service">MqttServiceConstants</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MqttAndroidClient.html#disconnectForcibly()">disconnectForcibly()</a></span> - Method in class org.eclipse.paho.android.service.<a href="../org/eclipse/paho/android/service/MqttAndroidClient.html" title="class in org.eclipse.paho.android.service">MqttAndroidClient</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MqttAndroidClient.html#disconnectForcibly(long)">disconnectForcibly(long)</a></span> - Method in class org.eclipse.paho.android.service.<a href="../org/eclipse/paho/android/service/MqttAndroidClient.html" title="class in org.eclipse.paho.android.service">MqttAndroidClient</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MqttAndroidClient.html#disconnectForcibly(long, long)">disconnectForcibly(long, long)</a></span> - Method in class org.eclipse.paho.android.service.<a href="../org/eclipse/paho/android/service/MqttAndroidClient.html" title="class in org.eclipse.paho.android.service">MqttAndroidClient</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MqttServiceConstants.html#DUPLICATE">DUPLICATE</a></span> - Static variable in interface org.eclipse.paho.android.service.<a href="../org/eclipse/paho/android/service/MqttServiceConstants.html" title="interface in org.eclipse.paho.android.service">MqttServiceConstants</a></dt>
<dd>&nbsp;</dd>
</dl>
<a href="index-1.html">A</a>&nbsp;<a href="index-2.html">C</a>&nbsp;<a href="index-3.html">D</a>&nbsp;<a href="index-4.html">G</a>&nbsp;<a href="index-5.html">I</a>&nbsp;<a href="index-6.html">M</a>&nbsp;<a href="index-7.html">N</a>&nbsp;<a href="index-8.html">O</a>&nbsp;<a href="index-9.html">P</a>&nbsp;<a href="index-10.html">Q</a>&nbsp;<a href="index-11.html">R</a>&nbsp;<a href="index-12.html">S</a>&nbsp;<a href="index-13.html">T</a>&nbsp;<a href="index-14.html">U</a>&nbsp;<a href="index-15.html">V</a>&nbsp;<a href="index-16.html">W</a>&nbsp;</div>
<!-- ======= 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="../org/eclipse/paho/android/service/package-summary.html">Package</a></li>
<li>Class</li>
<li>Use</li>
<li><a href="../overview-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li class="navBarCell1Rev">Index</li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-2.html">Prev Letter</a></li>
<li><a href="index-4.html">Next Letter</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-filesindex-3.html" target="_top">Frames</a></li>
<li><a href="index-3.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>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
