blob: ad0b9877fc101455ca378eb5e704b888e9b421ea [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>Paho C++: mqtt::token Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
$(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="pahologo.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">Paho C++
&#160;<span id="projectnumber">1.0</span>
</div>
<div id="projectbrief">The Paho MQTT C++ Client Library</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classmqtt_1_1token.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Friends</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="classmqtt_1_1token-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">mqtt::token Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Provides a mechanism for tracking the completion of an asynchronous action.
<a href="classmqtt_1_1token.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="token_8h_source.html">token.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for mqtt::token:</div>
<div class="dyncontent">
<div class="center">
<img src="classmqtt_1_1token.png" usemap="#mqtt::token_map" alt=""/>
<map id="mqtt::token_map" name="mqtt::token_map">
<area href="classmqtt_1_1delivery__token.html" title="Provides a mechanism to track the delivery progress of a message. " alt="mqtt::delivery_token" shape="rect" coords="0,56,122,80"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a352686b3df96dede1b5e296de12bc427"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a352686b3df96dede1b5e296de12bc427"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1token.html#a352686b3df96dede1b5e296de12bc427">ptr_t</a> = std::shared_ptr&lt; <a class="el" href="classmqtt_1_1token.html">token</a> &gt;</td></tr>
<tr class="memdesc:a352686b3df96dede1b5e296de12bc427"><td class="mdescLeft">&#160;</td><td class="mdescRight">Smart/shared pointer to an object of this class. <br/></td></tr>
<tr class="separator:a352686b3df96dede1b5e296de12bc427"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e42aca59ef0e7f4c44bf3f533e95158"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4e42aca59ef0e7f4c44bf3f533e95158"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1token.html#a4e42aca59ef0e7f4c44bf3f533e95158">const_ptr_t</a> = std::shared_ptr&lt; const <a class="el" href="classmqtt_1_1token.html">token</a> &gt;</td></tr>
<tr class="memdesc:a4e42aca59ef0e7f4c44bf3f533e95158"><td class="mdescLeft">&#160;</td><td class="mdescRight">Smart/shared pointer to an object of this class. <br/></td></tr>
<tr class="separator:a4e42aca59ef0e7f4c44bf3f533e95158"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abfccc1dd02644f58b55671c69c85dc19"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abfccc1dd02644f58b55671c69c85dc19"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1token.html#abfccc1dd02644f58b55671c69c85dc19">weak_ptr_t</a> = std::weak_ptr&lt; <a class="el" href="classmqtt_1_1token.html">token</a> &gt;</td></tr>
<tr class="memdesc:abfccc1dd02644f58b55671c69c85dc19"><td class="mdescLeft">&#160;</td><td class="mdescRight">Weak pointer to an object of this class. <br/></td></tr>
<tr class="separator:abfccc1dd02644f58b55671c69c85dc19"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a5d479b98ffa8efdd8e85c0d647f02a15"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1token.html#a5d479b98ffa8efdd8e85c0d647f02a15">token</a> (<a class="el" href="classmqtt_1_1iasync__client.html">iasync_client</a> &amp;cli)</td></tr>
<tr class="memdesc:a5d479b98ffa8efdd8e85c0d647f02a15"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a token object. <a href="#a5d479b98ffa8efdd8e85c0d647f02a15">More...</a><br/></td></tr>
<tr class="separator:a5d479b98ffa8efdd8e85c0d647f02a15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add91ffe20bc43450355d9d5c88f6d450"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1token.html#add91ffe20bc43450355d9d5c88f6d450">token</a> (<a class="el" href="classmqtt_1_1iasync__client.html">iasync_client</a> &amp;cli, void *userContext, <a class="el" href="classmqtt_1_1iaction__listener.html">iaction_listener</a> &amp;cb)</td></tr>
<tr class="memdesc:add91ffe20bc43450355d9d5c88f6d450"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a token object. <a href="#add91ffe20bc43450355d9d5c88f6d450">More...</a><br/></td></tr>
<tr class="separator:add91ffe20bc43450355d9d5c88f6d450"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ff49d9de3e0dd6d732f538a7b59cc63"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1token.html#a4ff49d9de3e0dd6d732f538a7b59cc63">token</a> (<a class="el" href="classmqtt_1_1iasync__client.html">iasync_client</a> &amp;cli, const string &amp;<a class="el" href="classmqtt_1_1topic.html">topic</a>)</td></tr>
<tr class="memdesc:a4ff49d9de3e0dd6d732f538a7b59cc63"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a token object. <a href="#a4ff49d9de3e0dd6d732f538a7b59cc63">More...</a><br/></td></tr>
<tr class="separator:a4ff49d9de3e0dd6d732f538a7b59cc63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af94b2cddb786d2f5211060a1cb052342"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1token.html#af94b2cddb786d2f5211060a1cb052342">token</a> (<a class="el" href="classmqtt_1_1iasync__client.html">iasync_client</a> &amp;cli, const string &amp;<a class="el" href="classmqtt_1_1topic.html">topic</a>, void *userContext, <a class="el" href="classmqtt_1_1iaction__listener.html">iaction_listener</a> &amp;cb)</td></tr>
<tr class="memdesc:af94b2cddb786d2f5211060a1cb052342"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a token object. <a href="#af94b2cddb786d2f5211060a1cb052342">More...</a><br/></td></tr>
<tr class="separator:af94b2cddb786d2f5211060a1cb052342"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1a7d5b29453a4c8cc7848740ae12fd3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1token.html#ac1a7d5b29453a4c8cc7848740ae12fd3">token</a> (<a class="el" href="classmqtt_1_1iasync__client.html">iasync_client</a> &amp;cli, const_string_collection_ptr topics)</td></tr>
<tr class="memdesc:ac1a7d5b29453a4c8cc7848740ae12fd3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a token object. <a href="#ac1a7d5b29453a4c8cc7848740ae12fd3">More...</a><br/></td></tr>
<tr class="separator:ac1a7d5b29453a4c8cc7848740ae12fd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:affdbe71191af1120af97bb77a19a7edf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1token.html#affdbe71191af1120af97bb77a19a7edf">token</a> (<a class="el" href="classmqtt_1_1iasync__client.html">iasync_client</a> &amp;cli, const_string_collection_ptr topics, void *userContext, <a class="el" href="classmqtt_1_1iaction__listener.html">iaction_listener</a> &amp;cb)</td></tr>
<tr class="memdesc:affdbe71191af1120af97bb77a19a7edf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a token object. <a href="#affdbe71191af1120af97bb77a19a7edf">More...</a><br/></td></tr>
<tr class="separator:affdbe71191af1120af97bb77a19a7edf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7462c0eaef923aa48806760ab7b0b745"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1token.html#a7462c0eaef923aa48806760ab7b0b745">token</a> (<a class="el" href="classmqtt_1_1iasync__client.html">iasync_client</a> &amp;cli, MQTTAsync_token tok)</td></tr>
<tr class="memdesc:a7462c0eaef923aa48806760ab7b0b745"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a token object. <a href="#a7462c0eaef923aa48806760ab7b0b745">More...</a><br/></td></tr>
<tr class="separator:a7462c0eaef923aa48806760ab7b0b745"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abae53e34b7509096d75cc8385b04ec73"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abae53e34b7509096d75cc8385b04ec73"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1token.html#abae53e34b7509096d75cc8385b04ec73">~token</a> ()</td></tr>
<tr class="memdesc:abae53e34b7509096d75cc8385b04ec73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual destructor. <br/></td></tr>
<tr class="separator:abae53e34b7509096d75cc8385b04ec73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad3c92d4e1be659101e118fc11daf963"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classmqtt_1_1iaction__listener.html">iaction_listener</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1token.html#aad3c92d4e1be659101e118fc11daf963">get_action_callback</a> () const </td></tr>
<tr class="memdesc:aad3c92d4e1be659101e118fc11daf963"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the action listener for this token. <a href="#aad3c92d4e1be659101e118fc11daf963">More...</a><br/></td></tr>
<tr class="separator:aad3c92d4e1be659101e118fc11daf963"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab23933fa6d8db2501c976b79df91d1cb"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classmqtt_1_1iasync__client.html">iasync_client</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1token.html#ab23933fa6d8db2501c976b79df91d1cb">get_client</a> () const </td></tr>
<tr class="memdesc:ab23933fa6d8db2501c976b79df91d1cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the MQTT client that is responsible for processing the asynchronous action. <a href="#ab23933fa6d8db2501c976b79df91d1cb">More...</a><br/></td></tr>
<tr class="separator:ab23933fa6d8db2501c976b79df91d1cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5bab8b8df3d9f04e75e9c57a6c36e93c"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1token.html#a5bab8b8df3d9f04e75e9c57a6c36e93c">get_message_id</a> () const </td></tr>
<tr class="memdesc:a5bab8b8df3d9f04e75e9c57a6c36e93c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the ID of the message that is associated with the token. <a href="#a5bab8b8df3d9f04e75e9c57a6c36e93c">More...</a><br/></td></tr>
<tr class="separator:a5bab8b8df3d9f04e75e9c57a6c36e93c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e55f1c5ab63552a7c958bfb77369f9a"><td class="memItemLeft" align="right" valign="top">virtual const_string_collection_ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1token.html#a9e55f1c5ab63552a7c958bfb77369f9a">get_topics</a> () const </td></tr>
<tr class="memdesc:a9e55f1c5ab63552a7c958bfb77369f9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the topic string(s) for the action being tracked by this token. <a href="#a9e55f1c5ab63552a7c958bfb77369f9a">More...</a><br/></td></tr>
<tr class="separator:a9e55f1c5ab63552a7c958bfb77369f9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8fb4c13db17d0861b17cbe220b0696de"><td class="memItemLeft" align="right" valign="top">virtual void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1token.html#a8fb4c13db17d0861b17cbe220b0696de">get_user_context</a> () const </td></tr>
<tr class="memdesc:a8fb4c13db17d0861b17cbe220b0696de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the context associated with an action. <a href="#a8fb4c13db17d0861b17cbe220b0696de">More...</a><br/></td></tr>
<tr class="separator:a8fb4c13db17d0861b17cbe220b0696de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a57c8c9e1f7c404a023022eba9dbcc0c2"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1token.html#a57c8c9e1f7c404a023022eba9dbcc0c2">is_complete</a> () const </td></tr>
<tr class="memdesc:a57c8c9e1f7c404a023022eba9dbcc0c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether or not the action has finished. <a href="#a57c8c9e1f7c404a023022eba9dbcc0c2">More...</a><br/></td></tr>
<tr class="separator:a57c8c9e1f7c404a023022eba9dbcc0c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a8604eeeae72d211e1b20dd85ede11a"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1token.html#a9a8604eeeae72d211e1b20dd85ede11a">get_return_code</a> () const </td></tr>
<tr class="memdesc:a9a8604eeeae72d211e1b20dd85ede11a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the return code from the action. <a href="#a9a8604eeeae72d211e1b20dd85ede11a">More...</a><br/></td></tr>
<tr class="separator:a9a8604eeeae72d211e1b20dd85ede11a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad916dc92354e24c17969334d84a119d6"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1token.html#ad916dc92354e24c17969334d84a119d6">set_action_callback</a> (<a class="el" href="classmqtt_1_1iaction__listener.html">iaction_listener</a> &amp;listener)</td></tr>
<tr class="memdesc:ad916dc92354e24c17969334d84a119d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a listener to be notified when an action completes. <a href="#ad916dc92354e24c17969334d84a119d6">More...</a><br/></td></tr>
<tr class="separator:ad916dc92354e24c17969334d84a119d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5faa55b04ee75f18df7b019bf443b1a0"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1token.html#a5faa55b04ee75f18df7b019bf443b1a0">set_user_context</a> (void *userContext)</td></tr>
<tr class="memdesc:a5faa55b04ee75f18df7b019bf443b1a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store some context associated with an action. <a href="#a5faa55b04ee75f18df7b019bf443b1a0">More...</a><br/></td></tr>
<tr class="separator:a5faa55b04ee75f18df7b019bf443b1a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0df41558fac781b754bebf924c332830"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0df41558fac781b754bebf924c332830"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1token.html#a0df41558fac781b754bebf924c332830">wait</a> ()</td></tr>
<tr class="memdesc:a0df41558fac781b754bebf924c332830"><td class="mdescLeft">&#160;</td><td class="mdescRight">Blocks the current thread until the action this token is associated with has completed. <br/></td></tr>
<tr class="separator:a0df41558fac781b754bebf924c332830"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba82e469a4fe1a08d6f0daf40d087358"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1token.html#aba82e469a4fe1a08d6f0daf40d087358">try_wait</a> ()</td></tr>
<tr class="memdesc:aba82e469a4fe1a08d6f0daf40d087358"><td class="mdescLeft">&#160;</td><td class="mdescRight">Non-blocking check to see if the action has completed. <a href="#aba82e469a4fe1a08d6f0daf40d087358">More...</a><br/></td></tr>
<tr class="separator:aba82e469a4fe1a08d6f0daf40d087358"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a542cf05d67441392a5642eeb95b93df2"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1token.html#a542cf05d67441392a5642eeb95b93df2">wait_for</a> (long timeout)</td></tr>
<tr class="memdesc:a542cf05d67441392a5642eeb95b93df2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Blocks the current thread until the action this token is associated with has completed. <a href="#a542cf05d67441392a5642eeb95b93df2">More...</a><br/></td></tr>
<tr class="separator:a542cf05d67441392a5642eeb95b93df2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc834b6a55d17e401066f91a8030213f"><td class="memTemplParams" colspan="2">template&lt;class Rep , class Period &gt; </td></tr>
<tr class="memitem:afc834b6a55d17e401066f91a8030213f"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmqtt_1_1token.html#afc834b6a55d17e401066f91a8030213f">wait_for</a> (const std::chrono::duration&lt; Rep, Period &gt; &amp;relTime)</td></tr>
<tr class="memdesc:afc834b6a55d17e401066f91a8030213f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Waits a relative amount of time for the action to complete. <a href="#afc834b6a55d17e401066f91a8030213f">More...</a><br/></td></tr>
<tr class="separator:afc834b6a55d17e401066f91a8030213f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b1258df66e5b2aa628affd4ced47bea"><td class="memTemplParams" colspan="2">template&lt;class Clock , class Duration &gt; </td></tr>
<tr class="memitem:a8b1258df66e5b2aa628affd4ced47bea"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmqtt_1_1token.html#a8b1258df66e5b2aa628affd4ced47bea">wait_until</a> (const std::chrono::time_point&lt; Clock, Duration &gt; &amp;absTime)</td></tr>
<tr class="memdesc:a8b1258df66e5b2aa628affd4ced47bea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Waits until an absolute time for the action to complete. <a href="#a8b1258df66e5b2aa628affd4ced47bea">More...</a><br/></td></tr>
<tr class="separator:a8b1258df66e5b2aa628affd4ced47bea"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a1fcb5574beac4792a6f55b09b1f8879a"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classmqtt_1_1token.html#a352686b3df96dede1b5e296de12bc427">ptr_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1token.html#a1fcb5574beac4792a6f55b09b1f8879a">create</a> (<a class="el" href="classmqtt_1_1iasync__client.html">iasync_client</a> &amp;cli)</td></tr>
<tr class="memdesc:a1fcb5574beac4792a6f55b09b1f8879a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a token object. <a href="#a1fcb5574beac4792a6f55b09b1f8879a">More...</a><br/></td></tr>
<tr class="separator:a1fcb5574beac4792a6f55b09b1f8879a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56cb81a58dceb3f00790b0a59b9488dc"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classmqtt_1_1token.html#a352686b3df96dede1b5e296de12bc427">ptr_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1token.html#a56cb81a58dceb3f00790b0a59b9488dc">create</a> (<a class="el" href="classmqtt_1_1iasync__client.html">iasync_client</a> &amp;cli, void *userContext, <a class="el" href="classmqtt_1_1iaction__listener.html">iaction_listener</a> &amp;cb)</td></tr>
<tr class="memdesc:a56cb81a58dceb3f00790b0a59b9488dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a token object. <a href="#a56cb81a58dceb3f00790b0a59b9488dc">More...</a><br/></td></tr>
<tr class="separator:a56cb81a58dceb3f00790b0a59b9488dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d9277478b2b27824633ea0e1f6fdf05"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classmqtt_1_1token.html#a352686b3df96dede1b5e296de12bc427">ptr_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1token.html#a5d9277478b2b27824633ea0e1f6fdf05">create</a> (<a class="el" href="classmqtt_1_1iasync__client.html">iasync_client</a> &amp;cli, const string &amp;<a class="el" href="classmqtt_1_1topic.html">topic</a>)</td></tr>
<tr class="memdesc:a5d9277478b2b27824633ea0e1f6fdf05"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a token object. <a href="#a5d9277478b2b27824633ea0e1f6fdf05">More...</a><br/></td></tr>
<tr class="separator:a5d9277478b2b27824633ea0e1f6fdf05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1de9decccf7e64439e4de8171579013a"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classmqtt_1_1token.html#a352686b3df96dede1b5e296de12bc427">ptr_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1token.html#a1de9decccf7e64439e4de8171579013a">create</a> (<a class="el" href="classmqtt_1_1iasync__client.html">iasync_client</a> &amp;cli, const string &amp;<a class="el" href="classmqtt_1_1topic.html">topic</a>, void *userContext, <a class="el" href="classmqtt_1_1iaction__listener.html">iaction_listener</a> &amp;cb)</td></tr>
<tr class="memdesc:a1de9decccf7e64439e4de8171579013a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a token object. <a href="#a1de9decccf7e64439e4de8171579013a">More...</a><br/></td></tr>
<tr class="separator:a1de9decccf7e64439e4de8171579013a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af13c2c1fb5da76e4ad1cd4169640592b"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classmqtt_1_1token.html#a352686b3df96dede1b5e296de12bc427">ptr_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1token.html#af13c2c1fb5da76e4ad1cd4169640592b">create</a> (<a class="el" href="classmqtt_1_1iasync__client.html">iasync_client</a> &amp;cli, const_string_collection_ptr topics)</td></tr>
<tr class="memdesc:af13c2c1fb5da76e4ad1cd4169640592b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a token object. <a href="#af13c2c1fb5da76e4ad1cd4169640592b">More...</a><br/></td></tr>
<tr class="separator:af13c2c1fb5da76e4ad1cd4169640592b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e200399740bd130720d482e2d98f188"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classmqtt_1_1token.html#a352686b3df96dede1b5e296de12bc427">ptr_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1token.html#a2e200399740bd130720d482e2d98f188">create</a> (<a class="el" href="classmqtt_1_1iasync__client.html">iasync_client</a> &amp;cli, const_string_collection_ptr topics, void *userContext, <a class="el" href="classmqtt_1_1iaction__listener.html">iaction_listener</a> &amp;cb)</td></tr>
<tr class="memdesc:a2e200399740bd130720d482e2d98f188"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a token object. <a href="#a2e200399740bd130720d482e2d98f188">More...</a><br/></td></tr>
<tr class="separator:a2e200399740bd130720d482e2d98f188"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:ac39954340d8b15edaa883af1bcfcf7ae"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac39954340d8b15edaa883af1bcfcf7ae"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1token.html#ac39954340d8b15edaa883af1bcfcf7ae">async_client</a></td></tr>
<tr class="memdesc:ac39954340d8b15edaa883af1bcfcf7ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Client and token-related options have special access. <br/></td></tr>
<tr class="separator:ac39954340d8b15edaa883af1bcfcf7ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac3c9b5f286a77bfa3dd9f557441bfb17"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac3c9b5f286a77bfa3dd9f557441bfb17"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>token_test</b></td></tr>
<tr class="separator:ac3c9b5f286a77bfa3dd9f557441bfb17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5e824c91a65212d9b79c704c6ae6f29"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab5e824c91a65212d9b79c704c6ae6f29"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>connect_options</b></td></tr>
<tr class="separator:ab5e824c91a65212d9b79c704c6ae6f29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af40c5fd229bbe3052fcc4fb182317454"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af40c5fd229bbe3052fcc4fb182317454"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>response_options</b></td></tr>
<tr class="separator:af40c5fd229bbe3052fcc4fb182317454"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba1efbb4a505542860c80226beb7de6f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aba1efbb4a505542860c80226beb7de6f"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>delivery_response_options</b></td></tr>
<tr class="separator:aba1efbb4a505542860c80226beb7de6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12b5b17ff7c5432f649f010528e2f949"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a12b5b17ff7c5432f649f010528e2f949"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>disconnect_options</b></td></tr>
<tr class="separator:a12b5b17ff7c5432f649f010528e2f949"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Provides a mechanism for tracking the completion of an asynchronous action. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a5d479b98ffa8efdd8e85c0d647f02a15"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">mqtt::token::token </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classmqtt_1_1iasync__client.html">iasync_client</a> &amp;&#160;</td>
<td class="paramname"><em>cli</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs a token object. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cli</td><td>The client that created the token. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="add91ffe20bc43450355d9d5c88f6d450"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">mqtt::token::token </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classmqtt_1_1iasync__client.html">iasync_client</a> &amp;&#160;</td>
<td class="paramname"><em>cli</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>userContext</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classmqtt_1_1iaction__listener.html">iaction_listener</a> &amp;&#160;</td>
<td class="paramname"><em>cb</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs a token object. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cli</td><td>The client that created the token. </td></tr>
<tr><td class="paramname">userContext</td><td>optional object used to pass context to the callback. Use <em>nullptr</em> if not required. </td></tr>
<tr><td class="paramname">cb</td><td>callback listener that will be notified when subscribe has completed </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a4ff49d9de3e0dd6d732f538a7b59cc63"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">mqtt::token::token </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classmqtt_1_1iasync__client.html">iasync_client</a> &amp;&#160;</td>
<td class="paramname"><em>cli</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const string &amp;&#160;</td>
<td class="paramname"><em>topic</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs a token object. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cli</td><td>The client that created the token. </td></tr>
<tr><td class="paramname">topic</td><td>The topic assiciated with the token </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="af94b2cddb786d2f5211060a1cb052342"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">mqtt::token::token </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classmqtt_1_1iasync__client.html">iasync_client</a> &amp;&#160;</td>
<td class="paramname"><em>cli</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const string &amp;&#160;</td>
<td class="paramname"><em>topic</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>userContext</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classmqtt_1_1iaction__listener.html">iaction_listener</a> &amp;&#160;</td>
<td class="paramname"><em>cb</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs a token object. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cli</td><td>The client that created the token. </td></tr>
<tr><td class="paramname">topic</td><td>The topic assiciated with the token </td></tr>
<tr><td class="paramname">userContext</td><td>optional object used to pass context to the callback. Use <em>nullptr</em> if not required. </td></tr>
<tr><td class="paramname">cb</td><td>callback listener that will be notified when subscribe has completed </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ac1a7d5b29453a4c8cc7848740ae12fd3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">mqtt::token::token </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classmqtt_1_1iasync__client.html">iasync_client</a> &amp;&#160;</td>
<td class="paramname"><em>cli</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const_string_collection_ptr&#160;</td>
<td class="paramname"><em>topics</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs a token object. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cli</td><td>The client that created the token. </td></tr>
<tr><td class="paramname">topics</td><td>The topics associated with the token </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="affdbe71191af1120af97bb77a19a7edf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">mqtt::token::token </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classmqtt_1_1iasync__client.html">iasync_client</a> &amp;&#160;</td>
<td class="paramname"><em>cli</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const_string_collection_ptr&#160;</td>
<td class="paramname"><em>topics</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>userContext</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classmqtt_1_1iaction__listener.html">iaction_listener</a> &amp;&#160;</td>
<td class="paramname"><em>cb</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs a token object. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cli</td><td>The client that created the token. </td></tr>
<tr><td class="paramname">topics</td><td>The topics associated with the token </td></tr>
<tr><td class="paramname">userContext</td><td>optional object used to pass context to the callback. Use <em>nullptr</em> if not required. </td></tr>
<tr><td class="paramname">cb</td><td>callback listener that will be notified when subscribe has completed </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a7462c0eaef923aa48806760ab7b0b745"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">mqtt::token::token </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classmqtt_1_1iasync__client.html">iasync_client</a> &amp;&#160;</td>
<td class="paramname"><em>cli</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">MQTTAsync_token&#160;</td>
<td class="paramname"><em>tok</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs a token object. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cli</td><td>The client that created the token. </td></tr>
<tr><td class="paramname">tok</td><td>The message ID </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a1fcb5574beac4792a6f55b09b1f8879a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="classmqtt_1_1token.html#a352686b3df96dede1b5e296de12bc427">ptr_t</a> mqtt::token::create </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classmqtt_1_1iasync__client.html">iasync_client</a> &amp;&#160;</td>
<td class="paramname"><em>cli</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs a token object. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cli</td><td>The client that created the token. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A smart/shared pointer to a token. </dd></dl>
</div>
</div>
<a class="anchor" id="a56cb81a58dceb3f00790b0a59b9488dc"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="classmqtt_1_1token.html#a352686b3df96dede1b5e296de12bc427">ptr_t</a> mqtt::token::create </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classmqtt_1_1iasync__client.html">iasync_client</a> &amp;&#160;</td>
<td class="paramname"><em>cli</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>userContext</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classmqtt_1_1iaction__listener.html">iaction_listener</a> &amp;&#160;</td>
<td class="paramname"><em>cb</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs a token object. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cli</td><td>The client that created the token. </td></tr>
<tr><td class="paramname">userContext</td><td>optional object used to pass context to the callback. Use <em>nullptr</em> if not required. </td></tr>
<tr><td class="paramname">cb</td><td>callback listener that will be notified when subscribe has completed </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a5d9277478b2b27824633ea0e1f6fdf05"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="classmqtt_1_1token.html#a352686b3df96dede1b5e296de12bc427">ptr_t</a> mqtt::token::create </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classmqtt_1_1iasync__client.html">iasync_client</a> &amp;&#160;</td>
<td class="paramname"><em>cli</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const string &amp;&#160;</td>
<td class="paramname"><em>topic</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs a token object. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cli</td><td>The client that created the token. </td></tr>
<tr><td class="paramname">topic</td><td>The topic assiciated with the token </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a1de9decccf7e64439e4de8171579013a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="classmqtt_1_1token.html#a352686b3df96dede1b5e296de12bc427">ptr_t</a> mqtt::token::create </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classmqtt_1_1iasync__client.html">iasync_client</a> &amp;&#160;</td>
<td class="paramname"><em>cli</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const string &amp;&#160;</td>
<td class="paramname"><em>topic</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>userContext</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classmqtt_1_1iaction__listener.html">iaction_listener</a> &amp;&#160;</td>
<td class="paramname"><em>cb</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs a token object. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cli</td><td>The client that created the token. </td></tr>
<tr><td class="paramname">topic</td><td>The topic assiciated with the token </td></tr>
<tr><td class="paramname">userContext</td><td>optional object used to pass context to the callback. Use <em>nullptr</em> if not required. </td></tr>
<tr><td class="paramname">cb</td><td>callback listener that will be notified when subscribe has completed </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="af13c2c1fb5da76e4ad1cd4169640592b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="classmqtt_1_1token.html#a352686b3df96dede1b5e296de12bc427">ptr_t</a> mqtt::token::create </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classmqtt_1_1iasync__client.html">iasync_client</a> &amp;&#160;</td>
<td class="paramname"><em>cli</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const_string_collection_ptr&#160;</td>
<td class="paramname"><em>topics</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs a token object. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cli</td><td>The client that created the token. </td></tr>
<tr><td class="paramname">topics</td><td>The topics associated with the token </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a2e200399740bd130720d482e2d98f188"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="classmqtt_1_1token.html#a352686b3df96dede1b5e296de12bc427">ptr_t</a> mqtt::token::create </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classmqtt_1_1iasync__client.html">iasync_client</a> &amp;&#160;</td>
<td class="paramname"><em>cli</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const_string_collection_ptr&#160;</td>
<td class="paramname"><em>topics</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>userContext</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classmqtt_1_1iaction__listener.html">iaction_listener</a> &amp;&#160;</td>
<td class="paramname"><em>cb</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs a token object. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cli</td><td>The client that created the token. </td></tr>
<tr><td class="paramname">topics</td><td>The topics associated with the token</td></tr>
<tr><td class="paramname">userContext</td><td>optional object used to pass context to the callback. Use <em>nullptr</em> if not required. </td></tr>
<tr><td class="paramname">cb</td><td>callback listener that will be notified when subscribe has </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="aad3c92d4e1be659101e118fc11daf963"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="classmqtt_1_1iaction__listener.html">iaction_listener</a>* mqtt::token::get_action_callback </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the action listener for this token. </p>
<dl class="section return"><dt>Returns</dt><dd>The action listener for this token. </dd></dl>
</div>
</div>
<a class="anchor" id="ab23933fa6d8db2501c976b79df91d1cb"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="classmqtt_1_1iasync__client.html">iasync_client</a>* mqtt::token::get_client </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the MQTT client that is responsible for processing the asynchronous action. </p>
<dl class="section return"><dt>Returns</dt><dd>The client to which this token is connected. </dd></dl>
</div>
</div>
<a class="anchor" id="a5bab8b8df3d9f04e75e9c57a6c36e93c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual int mqtt::token::get_message_id </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the ID of the message that is associated with the token. </p>
<dl class="section return"><dt>Returns</dt><dd>The message ID of the transaction being tracked. </dd></dl>
</div>
</div>
<a class="anchor" id="a9a8604eeeae72d211e1b20dd85ede11a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual int mqtt::token::get_return_code </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the return code from the action. </p>
<p>This is only valid after the action has completed (i.e. if <a class="el" href="classmqtt_1_1token.html#a57c8c9e1f7c404a023022eba9dbcc0c2">is_complete()</a> returns <em>true</em>). </p>
<dl class="section return"><dt>Returns</dt><dd>The return code from the action. </dd></dl>
</div>
</div>
<a class="anchor" id="a9e55f1c5ab63552a7c958bfb77369f9a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual const_string_collection_ptr mqtt::token::get_topics </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the topic string(s) for the action being tracked by this token. </p>
<dl class="section return"><dt>Returns</dt><dd>A const pointer to the collection of topics being tracked by the token. </dd></dl>
</div>
</div>
<a class="anchor" id="a8fb4c13db17d0861b17cbe220b0696de"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void* mqtt::token::get_user_context </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Retrieve the context associated with an action. </p>
<dl class="section return"><dt>Returns</dt><dd>The context associated with an action. </dd></dl>
</div>
</div>
<a class="anchor" id="a57c8c9e1f7c404a023022eba9dbcc0c2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual bool mqtt::token::is_complete </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns whether or not the action has finished. </p>
<dl class="section return"><dt>Returns</dt><dd><em>true</em> if the transaction has completed, <em>false</em> if not. </dd></dl>
</div>
</div>
<a class="anchor" id="ad916dc92354e24c17969334d84a119d6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void mqtt::token::set_action_callback </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classmqtt_1_1iaction__listener.html">iaction_listener</a> &amp;&#160;</td>
<td class="paramname"><em>listener</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Register a listener to be notified when an action completes. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">listener</td><td>The callback to be notified when actions complete. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a5faa55b04ee75f18df7b019bf443b1a0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void mqtt::token::set_user_context </td>
<td>(</td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>userContext</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Store some context associated with an action. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">userContext</td><td>optional object used to pass context to the callback. Use <em>nullptr</em> if not required. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="aba82e469a4fe1a08d6f0daf40d087358"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual bool mqtt::token::try_wait </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Non-blocking check to see if the action has completed. </p>
<dl class="section return"><dt>Returns</dt><dd><em>true</em> if the wait finished successfully, <em>false</em> if the action has not completed yet. </dd></dl>
</div>
</div>
<a class="anchor" id="a542cf05d67441392a5642eeb95b93df2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual bool mqtt::token::wait_for </td>
<td>(</td>
<td class="paramtype">long&#160;</td>
<td class="paramname"><em>timeout</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Blocks the current thread until the action this token is associated with has completed. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">timeout</td><td>The timeout (in milliseconds) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><em>true</em> if the wait finished successfully, <em>false</em> if a timeout occurred. </dd></dl>
</div>
</div>
<a class="anchor" id="afc834b6a55d17e401066f91a8030213f"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Rep , class Period &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool mqtt::token::wait_for </td>
<td>(</td>
<td class="paramtype">const std::chrono::duration&lt; Rep, Period &gt; &amp;&#160;</td>
<td class="paramname"><em>relTime</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Waits a relative amount of time for the action to complete. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">relTime</td><td>The amount of time to wait for the event. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><em>true</em> if the event gets signaled in the specified time, <em>false</em> on a timeout. </dd></dl>
</div>
</div>
<a class="anchor" id="a8b1258df66e5b2aa628affd4ced47bea"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Clock , class Duration &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool mqtt::token::wait_until </td>
<td>(</td>
<td class="paramtype">const std::chrono::time_point&lt; Clock, Duration &gt; &amp;&#160;</td>
<td class="paramname"><em>absTime</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Waits until an absolute time for the action to complete. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">absTime</td><td>The absolute time to wait for the event. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><em>true</em> if the event gets signaled in the specified time, <em>false</em> on a timeout. </dd></dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/mqtt/<a class="el" href="token_8h_source.html">token.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><b>mqtt</b></li><li class="navelem"><a class="el" href="classmqtt_1_1token.html">token</a></li>
<li class="footer">Generated on Sun Jul 23 2017 10:24:30 for Paho C++ by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
</ul>
</div>
</body>
</html>