<!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>G-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="G-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-3.html">Prev Letter</a></li>
<li><a href="index-5.html">Next Letter</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-filesindex-4.html" target="_top">Frames</a></li>
<li><a href="index-4.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="_G_">
<!--   -->
</a>
<h2 class="title">G</h2>
<dl>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MqttTokenAndroid.html#getActionCallback()">getActionCallback()</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>&nbsp;</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MqttServiceBinder.html#getActivityToken()">getActivityToken()</a></span> - Method in class org.eclipse.paho.android.service.<a href="../org/eclipse/paho/android/service/MqttServiceBinder.html" title="class in org.eclipse.paho.android.service">MqttServiceBinder</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/DatabaseMessageStore.html#getAllArrivedMessages(java.lang.String)">getAllArrivedMessages(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">Get an iterator over all messages stored (optionally for a specific client)</div>
</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MessageStore.html#getAllArrivedMessages(java.lang.String)">getAllArrivedMessages(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">Get all the stored messages, usually for a specific client</div>
</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MqttService.html#getClient(java.lang.String, java.lang.String, java.lang.String, org.eclipse.paho.client.mqttv3.MqttClientPersistence)">getClient(String, String, String, MqttClientPersistence)</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">Get an MqttConnection object to represent a connection to a server</div>
</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MqttTokenAndroid.html#getClient()">getClient()</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>&nbsp;</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MessageStore.StoredMessage.html#getClientHandle()">getClientHandle()</a></span> - Method in interface org.eclipse.paho.android.service.<a href="../org/eclipse/paho/android/service/MessageStore.StoredMessage.html" title="interface in org.eclipse.paho.android.service">MessageStore.StoredMessage</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MqttAndroidClient.html#getClientId()">getClientId()</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">Returns the client ID used by this client.</div>
</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MqttTokenAndroid.html#getException()">getException()</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>&nbsp;</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MessageStore.StoredMessage.html#getMessage()">getMessage()</a></span> - Method in interface org.eclipse.paho.android.service.<a href="../org/eclipse/paho/android/service/MessageStore.StoredMessage.html" title="interface in org.eclipse.paho.android.service">MessageStore.StoredMessage</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MqttDeliveryTokenAndroid.html#getMessage()">getMessage()</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/MessageStore.StoredMessage.html#getMessageId()">getMessageId()</a></span> - Method in interface org.eclipse.paho.android.service.<a href="../org/eclipse/paho/android/service/MessageStore.StoredMessage.html" title="interface in org.eclipse.paho.android.service">MessageStore.StoredMessage</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MqttTokenAndroid.html#getMessageId()">getMessageId()</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>&nbsp;</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/ParcelableMqttMessage.html#getMessageId()">getMessageId()</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>&nbsp;</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MqttAndroidClient.html#getPendingDeliveryTokens()">getPendingDeliveryTokens()</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">Returns the delivery tokens for any outstanding publish operations.</div>
</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MqttConnection.html#getPendingDeliveryTokens()">getPendingDeliveryTokens()</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">Get tokens for all outstanding deliveries for a client</div>
</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MqttService.html#getPendingDeliveryTokens(java.lang.String)">getPendingDeliveryTokens(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">Get tokens for all outstanding deliveries for a client</div>
</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MqttAndroidClient.html#getProtocolVersion()">getProtocolVersion()</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#getServerURI()">getServerURI()</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">Returns the URI address of the server used by this client.</div>
</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MqttServiceBinder.html#getService()">getService()</a></span> - Method in class org.eclipse.paho.android.service.<a href="../org/eclipse/paho/android/service/MqttServiceBinder.html" title="class in org.eclipse.paho.android.service">MqttServiceBinder</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MqttAndroidClient.html#getSSLSocketFactory(java.io.InputStream, java.lang.String)">getSSLSocketFactory(InputStream, String)</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">Get the SSLSocketFactory using SSL key store and password</div>
</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MessageStore.StoredMessage.html#getTopic()">getTopic()</a></span> - Method in interface org.eclipse.paho.android.service.<a href="../org/eclipse/paho/android/service/MessageStore.StoredMessage.html" title="interface in org.eclipse.paho.android.service">MessageStore.StoredMessage</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MqttTokenAndroid.html#getTopics()">getTopics()</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>&nbsp;</dd>
<dt><span class="strong"><a href="../org/eclipse/paho/android/service/MqttTokenAndroid.html#getUserContext()">getUserContext()</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>&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-3.html">Prev Letter</a></li>
<li><a href="index-5.html">Next Letter</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-filesindex-4.html" target="_top">Frames</a></li>
<li><a href="index-4.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>
