<!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>N-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="N-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-6.html">Prev Letter</a></li>
<li><a href="index-8.html">Next Letter</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-filesindex-7.html" target="_top">Frames</a></li>
<li><a href="index-7.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="_N_">
<!--   -->
</a>
<h2 class="title">N</h2>
<dl>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MqttServiceConstants.html#NON_MQTT_EXCEPTION">NON_MQTT_EXCEPTION</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/MqttService.html#notifyClientsOffline()">notifyClientsOffline()</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">Notify clients we're offline</div>
</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MqttTokenAndroid.html#notifyComplete()">notifyComplete()</a></span> - Method in class org.eclipse.paho.android.service.<a href="../org/eclipse/paho/android/service/MqttTokenAndroid.html" title="class in org.eclipse.paho.android.service">MqttTokenAndroid</a></dt>
<dd>
<div class="block">notify successful completion of the operation</div>
</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MqttDeliveryTokenAndroid.html#notifyDelivery(org.eclipse.paho.client.mqttv3.MqttMessage)">notifyDelivery(MqttMessage)</a></span> - Method in class org.eclipse.paho.android.service.<a href="../org/eclipse/paho/android/service/MqttDeliveryTokenAndroid.html" title="class in org.eclipse.paho.android.service">MqttDeliveryTokenAndroid</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MqttTokenAndroid.html#notifyFailure(java.lang.Throwable)">notifyFailure(Throwable)</a></span> - Method in class org.eclipse.paho.android.service.<a href="../org/eclipse/paho/android/service/MqttTokenAndroid.html" title="class in org.eclipse.paho.android.service">MqttTokenAndroid</a></dt>
<dd>
<div class="block">notify unsuccessful completion of the operation</div>
</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-6.html">Prev Letter</a></li>
<li><a href="index-8.html">Next Letter</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-filesindex-7.html" target="_top">Frames</a></li>
<li><a href="index-7.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>
