Commit 7f32b0c4 authored by Ian Craggs's avatar Ian Craggs

version change and add html doc

parent b3241963
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
<!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"/>
<title>MQTT Client: Data Structures</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.3 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>Data Structures</h1>Here are the data structures with brief descriptions:<table>
<tr><td class="indexkey"><a class="el" href="struct_m_q_t_t_client__connect_options.html">MQTTClient_connectOptions</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><a class="el" href="struct_m_q_t_t_client__message.html">MQTTClient_message</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><a class="el" href="struct_m_q_t_t_client__persistence.html">MQTTClient_persistence</a></td><td class="indexvalue">A structure containing the function pointers to a persistence implementation and the context or state that will be shared across all the persistence functions </td></tr>
<tr><td class="indexkey"><a class="el" href="struct_m_q_t_t_client__will_options.html">MQTTClient_willOptions</a></td><td class="indexvalue"></td></tr>
</table>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue Jul 3 15:17:14 2012 for MQTT Client by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>
<!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"/>
<title>MQTT Client: Asynchronous vs synchronous client applications</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.3 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1><a class="anchor" id="async">Asynchronous vs synchronous client applications </a></h1><p>The client library supports two modes of operation. These are referred to as <b>synchronous</b> and <b>asynchronous</b> modes. If your application calls <a class="el" href="_m_q_t_t_client_8h.html#aad27d07782991a4937ebf2f39a021f83">MQTTClient_setCallbacks()</a>, this puts the client into asynchronous mode, otherwise it operates in synchronous mode.</p>
<p>In synchronous mode, the client application runs on a single thread. Messages are published using the <a class="el" href="_m_q_t_t_client_8h.html#aa061f83fbed3a23177cca8714780ffbd">MQTTClient_publish()</a> and <a class="el" href="_m_q_t_t_client_8h.html#a288d6c8d4919f06e991be2435f649676">MQTTClient_publishMessage()</a> functions. To determine that a QoS1 or QoS2 (see <a class="el" href="qos.html">Quality of service</a>) message has been successfully delivered, the application must call the <a class="el" href="_m_q_t_t_client_8h.html#a83807ec81fe8c3941e368ab329d43067">MQTTClient_waitForCompletion()</a> function. An example showing synchronous publication is shown in <a class="el" href="pubsync.html">Synchronous publication example</a>. Receiving messages in synchronous mode uses the <a class="el" href="_m_q_t_t_client_8h.html#a4c2df88d00a3dadd510a8cb774739366">MQTTClient_receive()</a> function. Client applicaitons must call either <a class="el" href="_m_q_t_t_client_8h.html#a4c2df88d00a3dadd510a8cb774739366">MQTTClient_receive()</a> or <a class="el" href="_m_q_t_t_client_8h.html#a8ad3d29864a9ca08202b0832e0f6678e">MQTTClient_yield()</a> relatively frequently in order to allow processing of acknowledgements and the MQTT "pings" that keep the network connection to the server alive.</p>
<p>In asynchronous mode, the client application runs on several threads. The main program calls functions in the client library to publish and subscribe, just as for the synchronous mode. Processing of handshaking and maintaining the network connection is performed in the background, however. Notifications of status and message reception are provided to the client application using callbacks registered with the library by the call to <a class="el" href="_m_q_t_t_client_8h.html#aad27d07782991a4937ebf2f39a021f83">MQTTClient_setCallbacks()</a> (see <a class="el" href="_m_q_t_t_client_8h.html#aa42130dd069e7e949bcab37b6dce64a5">MQTTClient_messageArrived()</a>, <a class="el" href="_m_q_t_t_client_8h.html#a6bb253f16754e7cc81798c9fda0e36cf">MQTTClient_connectionLost()</a> and <a class="el" href="_m_q_t_t_client_8h.html#abef83794d8252551ed248cde6eb845a6">MQTTClient_deliveryComplete()</a>). </p>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue Jul 3 15:17:14 2012 for MQTT Client by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>
<!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"/>
<title>MQTT Client: Alphabetical List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.3 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>Data Structure Index</h1><div class="qindex"><a class="qindex" href="#letter_M">M</a></div>
<table align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
<tr><td><a name="letter_M"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;M&nbsp;&nbsp;</div></td></tr></table>
</td><td><a class="el" href="struct_m_q_t_t_client__connect_options.html">MQTTClient_connectOptions</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="struct_m_q_t_t_client__message.html">MQTTClient_message</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="struct_m_q_t_t_client__persistence.html">MQTTClient_persistence</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="struct_m_q_t_t_client__will_options.html">MQTTClient_willOptions</a>&nbsp;&nbsp;&nbsp;</td></tr></table><div class="qindex"><a class="qindex" href="#letter_M">M</a></div>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue Jul 3 15:17:14 2012 for MQTT Client by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>
/* The standard CSS for doxygen */
body, table, div, p, dl {
font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
font-size: 12px;
}
/* @group Heading Levels */
h1 {
text-align: center;
font-size: 150%;
}
h2 {
font-size: 120%;
}
h3 {
font-size: 100%;
}
dt {
font-weight: bold;
}
div.multicol {
-moz-column-gap: 1em;
-webkit-column-gap: 1em;
-moz-column-count: 3;
-webkit-column-count: 3;
}
p.startli, p.startdd, p.starttd {
margin-top: 2px;
}
p.endli {
margin-bottom: 0px;
}
p.enddd {
margin-bottom: 4px;
}
p.endtd {
margin-bottom: 2px;
}
/* @end */
caption {
font-weight: bold;
}
span.legend {
font-size: 70%;
text-align: center;
}
h3.version {
font-size: 90%;
text-align: center;
}
div.qindex, div.navtab{
background-color: #e8eef2;
border: 1px solid #84b0c7;
text-align: center;
margin: 2px;
padding: 2px;
}
div.qindex, div.navpath {
width: 100%;
line-height: 140%;
}
div.navtab {
margin-right: 15px;
}
/* @group Link Styling */
a {
color: #153788;
font-weight: normal;
text-decoration: none;
}
.contents a:visited {
color: #1b77c5;
}
a:hover {
text-decoration: underline;
}
a.qindex {
font-weight: bold;
}
a.qindexHL {
font-weight: bold;
background-color: #6666cc;
color: #ffffff;
border: 1px double #9295C2;
}
.contents a.qindexHL:visited {
color: #ffffff;
}
a.el {
font-weight: bold;
}
a.elRef {
}
a.code {
color: #3030f0;
}
a.codeRef {
color: #3030f0;
}
/* @end */
dl.el {
margin-left: -1cm;
}
.fragment {
font-family: monospace, fixed;
font-size: 105%;
}
pre.fragment {
border: 1px solid #CCCCCC;
background-color: #f5f5f5;
padding: 4px 6px;
margin: 4px 8px 4px 2px;
overflow: auto;
word-wrap: break-word;
font-size: 9pt;
line-height: 125%;
}
div.ah {
background-color: black;
font-weight: bold;
color: #ffffff;
margin-bottom: 3px;
margin-top: 3px
}
div.groupHeader {
margin-left: 16px;
margin-top: 12px;
margin-bottom: 6px;
font-weight: bold;
}
div.groupText {
margin-left: 16px;
font-style: italic;
}
body {
background: white;
color: black;
margin-right: 20px;
margin-left: 20px;
}
td.indexkey {
background-color: #e8eef2;
font-weight: bold;
border: 1px solid #CCCCCC;
margin: 2px 0px 2px 0;
padding: 2px 10px;
}
td.indexvalue {
background-color: #e8eef2;
border: 1px solid #CCCCCC;
padding: 2px 10px;
margin: 2px 0px;
}
tr.memlist {
background-color: #f0f0f0;
}
p.formulaDsp {
text-align: center;
}
img.formulaDsp {
}
img.formulaInl {
vertical-align: middle;
}
div.center {
text-align: center;
margin-top: 0px;
margin-bottom: 0px;
padding: 0px;
}
div.center img {
border: 0px;
}
img.footer {
border: 0px;
vertical-align: middle;
}
/* @group Code Colorization */
span.keyword {
color: #008000
}
span.keywordtype {
color: #604020
}
span.keywordflow {
color: #e08000
}
span.comment {
color: #800000
}
span.preprocessor {
color: #806020
}
span.stringliteral {
color: #002080
}
span.charliteral {
color: #008080
}
span.vhdldigit {
color: #ff00ff
}
span.vhdlchar {
color: #000000
}
span.vhdlkeyword {
color: #700070
}
span.vhdllogic {
color: #ff0000
}
/* @end */
.search {
color: #003399;
font-weight: bold;
}
form.search {
margin-bottom: 0px;
margin-top: 0px;
}
input.search {
font-size: 75%;
color: #000080;
font-weight: normal;
background-color: #e8eef2;
}
td.tiny {
font-size: 75%;
}
.dirtab {
padding: 4px;
border-collapse: collapse;
border: 1px solid #84b0c7;
}
th.dirtab {
background: #e8eef2;
font-weight: bold;
}
hr {
height: 0px;
border: none;
border-top: 1px solid #666;
}
hr.footer {
height: 1px;
}
/* @group Member Descriptions */
.mdescLeft, .mdescRight,
.memItemLeft, .memItemRight,
.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
background-color: #FAFAFA;
border: none;
margin: 4px;
padding: 1px 0 0 8px;
}
.mdescLeft, .mdescRight {
padding: 0px 8px 4px 8px;
color: #555;
}
.memItemLeft, .memItemRight, .memTemplParams {
border-top: 1px solid #ccc;
}
.memItemLeft, .memTemplItemLeft {
white-space: nowrap;
}
.memTemplParams {
color: #606060;
white-space: nowrap;
}
/* @end */
/* @group Member Details */
/* Styles for detailed member documentation */
.memtemplate {
font-size: 80%;
color: #606060;
font-weight: normal;
margin-left: 3px;
}
.memnav {
background-color: #e8eef2;
border: 1px solid #84b0c7;
text-align: center;
margin: 2px;
margin-right: 15px;
padding: 2px;
}
.memitem {
padding: 0;
margin-bottom: 10px;
}
.memname {
white-space: nowrap;
font-weight: bold;
margin-left: 6px;
}
.memproto {
border-top: 1px solid #84b0c7;
border-left: 1px solid #84b0c7;
border-right: 1px solid #84b0c7;
padding: 0;
background-color: #d5e1e8;
font-weight: bold;
/* firefox specific markup */
background-image: -moz-linear-gradient(rgba(228, 233, 245, 1.0) 0%, rgba(193, 205, 232, 1.0) 100%);
-moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
-moz-border-radius-topright: 8px;
-moz-border-radius-topleft: 8px;
/* webkit specific markup */
background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(228, 233, 245, 1.0)), to(rgba(193, 205, 232, 1.0)));
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
-webkit-border-top-right-radius: 8px;
-webkit-border-top-left-radius: 8px;
}
.memdoc {
border-bottom: 1px solid #84b0c7;
border-left: 1px solid #84b0c7;
border-right: 1px solid #84b0c7;
padding: 2px 5px;
background-color: #eef3f5;
border-top-width: 0;
/* firefox specific markup */
-moz-border-radius-bottomleft: 8px;
-moz-border-radius-bottomright: 8px;
-moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
/* webkit specific markup */
-webkit-border-bottom-left-radius: 8px;
-webkit-border-bottom-right-radius: 8px;
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
}
.paramkey {
text-align: right;
}
.paramtype {
white-space: nowrap;
}
.paramname {
color: #602020;
white-space: nowrap;
}
.paramname em {
font-style: normal;
}
/* @end */
/* @group Directory (tree) */
/* for the tree view */
.ftvtree {
font-family: sans-serif;
margin: 0.5em;
}
/* these are for tree view when used as main index */
.directory {
font-size: 9pt;
font-weight: bold;
}
.directory h3 {
margin: 0px;
margin-top: 1em;
font-size: 11pt;
}
/*
The following two styles can be used to replace the root node title
with an image of your choice. Simply uncomment the next two styles,
specify the name of your image and be sure to set 'height' to the
proper pixel height of your image.
*/
/*
.directory h3.swap {
height: 61px;
background-repeat: no-repeat;
background-image: url("yourimage.gif");
}
.directory h3.swap span {
display: none;
}
*/
.directory > h3 {
margin-top: 0;
}
.directory p {
margin: 0px;
white-space: nowrap;
}
.directory div {
display: none;
margin: 0px;
}
.directory img {
vertical-align: -30%;
}
/* these are for tree view when not used as main index */
.directory-alt {
font-size: 100%;
font-weight: bold;
}
.directory-alt h3 {
margin: 0px;
margin-top: 1em;
font-size: 11pt;
}
.directory-alt > h3 {
margin-top: 0;
}
.directory-alt p {
margin: 0px;
white-space: nowrap;
}
.directory-alt div {
display: none;
margin: 0px;
}
.directory-alt img {
vertical-align: -30%;
}
/* @end */
address {
font-style: normal;
color: #333;
}
table.doxtable {
border-collapse:collapse;
}
table.doxtable td, table.doxtable th {
border: 1px solid #153788;
padding: 3px 7px 2px;
}
table.doxtable th {
background-color: #254798;
color: #FFFFFF;
font-size: 110%;
padding-bottom: 4px;
padding-top: 5px;
text-align:left;
}
<!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"/>
<title>MQTT Client: File Index</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.3 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li class="current"><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>File List</h1>Here is a list of all files with brief descriptions:<table>
<tr><td class="indexkey"><a class="el" href="_m_q_t_t_client_8h.html">MQTTClient.h</a> <a href="_m_q_t_t_client_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><a class="el" href="_m_q_t_t_client_persistence_8h.html">MQTTClientPersistence.h</a> <a href="_m_q_t_t_client_persistence_8h_source.html">[code]</a></td><td class="indexvalue">This structure represents a persistent data store, used to store outbound and inbound messages, in order to achieve reliable messaging </td></tr>
</table>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue Jul 3 15:17:14 2012 for MQTT Client by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>
<!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"/>
<title>MQTT Client: Data Fields</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.3 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li class="current"><a href="functions.html"><span>All</span></a></li>
<li><a href="functions_vars.html"><span>Variables</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="#index_c"><span>c</span></a></li>
<li><a href="#index_d"><span>d</span></a></li>
<li><a href="#index_k"><span>k</span></a></li>
<li><a href="#index_m"><span>m</span></a></li>
<li><a href="#index_p"><span>p</span></a></li>
<li><a href="#index_q"><span>q</span></a></li>
<li><a href="#index_r"><span>r</span></a></li>
<li><a href="#index_s"><span>s</span></a></li>
<li><a href="#index_t"><span>t</span></a></li>
<li><a href="#index_u"><span>u</span></a></li>
<li><a href="#index_w"><span>w</span></a></li>
</ul>
</div>
</div>
<div class="contents">
Here is a list of all struct and union fields with links to the structures/unions they belong to:
<h3><a class="anchor" id="index_c">- c -</a></h3><ul>
<li>cleansession
: <a class="el" href="struct_m_q_t_t_client__connect_options.html#a036c36a2a4d3a3ffae9ab4dd8b3e7f7b">MQTTClient_connectOptions</a>
</li>
<li>connectTimeout
: <a class="el" href="struct_m_q_t_t_client__connect_options.html#a38c6aa24b36d981c49405db425c24db0">MQTTClient_connectOptions</a>
</li>
<li>context
: <a class="el" href="struct_m_q_t_t_client__persistence.html#ae376f130b17d169ee51be68077a89ed0">MQTTClient_persistence</a>
</li>
</ul>
<h3><a class="anchor" id="index_d">- d -</a></h3><ul>
<li>dup
: <a class="el" href="struct_m_q_t_t_client__message.html#adc4cf3f551bb367858644559d69cfdf5">MQTTClient_message</a>
</li>
</ul>
<h3><a class="anchor" id="index_k">- k -</a></h3><ul>
<li>keepAliveInterval
: <a class="el" href="struct_m_q_t_t_client__connect_options.html#ac8dd0930672a9c7d71fc645aa1f0521d">MQTTClient_connectOptions</a>
</li>
</ul>
<h3><a class="anchor" id="index_m">- m -</a></h3><ul>
<li>message
: <a class="el" href="struct_m_q_t_t_client__will_options.html#a0b2e8c7f76df48129f994ecc46d5c66c">MQTTClient_willOptions</a>
</li>
<li>msgid
: <a class="el" href="struct_m_q_t_t_client__message.html#a6174c42da8c55c86e7255be2848dc4ac">MQTTClient_message</a>
</li>
</ul>
<h3><a class="anchor" id="index_p">- p -</a></h3><ul>
<li>password
: <a class="el" href="struct_m_q_t_t_client__connect_options.html#a59460a3ff2c12443d1022e5cc0fba85c">MQTTClient_connectOptions</a>
</li>
<li>payload
: <a class="el" href="struct_m_q_t_t_client__message.html#a9eff55064941fb604452abb0050ea99d">MQTTClient_message</a>
</li>
<li>payloadlen
: <a class="el" href="struct_m_q_t_t_client__message.html#aa3cb44feb3ae6d11b3a4cad2d94cb33a">MQTTClient_message</a>
</li>
<li>pclear
: <a class="el" href="struct_m_q_t_t_client__persistence.html#abc192dc88113c7d933b29d3561badbf5">MQTTClient_persistence</a>
</li>
<li>pclose
: <a class="el" href="struct_m_q_t_t_client__persistence.html#a7e50506912d2ec0e014cc25ec28fb402">MQTTClient_persistence</a>
</li>
<li>pcontainskey
: <a class="el" href="struct_m_q_t_t_client__persistence.html#ac103711576267f791325f2b70b6dc49d">MQTTClient_persistence</a>
</li>
<li>pget
: <a class="el" href="struct_m_q_t_t_client__persistence.html#a49155000b82a28ac3b3cb878f3a092d4">MQTTClient_persistence</a>
</li>
<li>pkeys
: <a class="el" href="struct_m_q_t_t_client__persistence.html#a407e86a809e4b0b098a8c158f53b9606">MQTTClient_persistence</a>
</li>
<li>popen
: <a class="el" href="struct_m_q_t_t_client__persistence.html#a1bae211b32415e6b349d5ae71599f9f4">MQTTClient_persistence</a>
</li>
<li>pput
: <a class="el" href="struct_m_q_t_t_client__persistence.html#a4114d9b9971cee18d7e4b9dd5736a608">MQTTClient_persistence</a>
</li>
<li>premove
: <a class="el" href="struct_m_q_t_t_client__persistence.html#a53150e443ca721b8623689371c2fbdb9">MQTTClient_persistence</a>
</li>
</ul>
<h3><a class="anchor" id="index_q">- q -</a></h3><ul>
<li>qos
: <a class="el" href="struct_m_q_t_t_client__message.html#a35738099155a0e4f54050da474bab2e7">MQTTClient_message</a>
, <a class="el" href="struct_m_q_t_t_client__will_options.html#a35738099155a0e4f54050da474bab2e7">MQTTClient_willOptions</a>
</li>
</ul>
<h3><a class="anchor" id="index_r">- r -</a></h3><ul>
<li>reliable
: <a class="el" href="struct_m_q_t_t_client__connect_options.html#a9f1cdffc99659fd4e2d20e6de3c64df0">MQTTClient_connectOptions</a>
</li>
<li>retained
: <a class="el" href="struct_m_q_t_t_client__message.html#a6a4904c112507a43e7dc8495b62cc0fc">MQTTClient_message</a>
, <a class="el" href="struct_m_q_t_t_client__will_options.html#a6a4904c112507a43e7dc8495b62cc0fc">MQTTClient_willOptions</a>
</li>
<li>retryInterval
: <a class="el" href="struct_m_q_t_t_client__connect_options.html#ac73f57846c42bcaa9a47e6721a957748">MQTTClient_connectOptions</a>
</li>
</ul>
<h3><a class="anchor" id="index_s">- s -</a></h3><ul>
<li>struct_id
: <a class="el" href="struct_m_q_t_t_client__message.html#aa5326df180cb23c59afbcab711a06479">MQTTClient_message</a>
, <a class="el" href="struct_m_q_t_t_client__will_options.html#aa5326df180cb23c59afbcab711a06479">MQTTClient_willOptions</a>
, <a class="el" href="struct_m_q_t_t_client__connect_options.html#aa5326df180cb23c59afbcab711a06479">MQTTClient_connectOptions</a>
</li>
<li>struct_version
: <a class="el" href="struct_m_q_t_t_client__message.html#a0761a5e5be0383882e42924de8e51f82">MQTTClient_message</a>
, <a class="el" href="struct_m_q_t_t_client__will_options.html#a0761a5e5be0383882e42924de8e51f82">MQTTClient_willOptions</a>
, <a class="el" href="struct_m_q_t_t_client__connect_options.html#a0761a5e5be0383882e42924de8e51f82">MQTTClient_connectOptions</a>
</li>
</ul>
<h3><a class="anchor" id="index_t">- t -</a></h3><ul>
<li>topicName
: <a class="el" href="struct_m_q_t_t_client__will_options.html#ac0aaa2cc04921489bbddaf101f03b961">MQTTClient_willOptions</a>
</li>
</ul>
<h3><a class="anchor" id="index_u">- u -</a></h3><ul>
<li>username
: <a class="el" href="struct_m_q_t_t_client__connect_options.html#a9b20c006bd90a09e1465fb668700e81d">MQTTClient_connectOptions</a>
</li>
</ul>
<h3><a class="anchor" id="index_w">- w -</a></h3><ul>
<li>will
: <a class="el" href="struct_m_q_t_t_client__connect_options.html#a0a880e99d47eb2efe552abe5079bdc9d">MQTTClient_connectOptions</a>
</li>
</ul>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue Jul 3 15:17:14 2012 for MQTT Client by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>
<!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"/>
<title>MQTT Client: Data Fields - Variables</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.3 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="functions.html"><span>All</span></a></li>
<li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="#index_c"><span>c</span></a></li>
<li><a href="#index_d"><span>d</span></a></li>
<li><a href="#index_k"><span>k</span></a></li>
<li><a href="#index_m"><span>m</span></a></li>
<li><a href="#index_p"><span>p</span></a></li>
<li><a href="#index_q"><span>q</span></a></li>
<li><a href="#index_r"><span>r</span></a></li>
<li><a href="#index_s"><span>s</span></a></li>
<li><a href="#index_t"><span>t</span></a></li>
<li><a href="#index_u"><span>u</span></a></li>
<li><a href="#index_w"><span>w</span></a></li>
</ul>
</div>
</div>
<div class="contents">
&nbsp;
<h3><a class="anchor" id="index_c">- c -</a></h3><ul>
<li>cleansession
: <a class="el" href="struct_m_q_t_t_client__connect_options.html#a036c36a2a4d3a3ffae9ab4dd8b3e7f7b">MQTTClient_connectOptions</a>
</li>
<li>connectTimeout
: <a class="el" href="struct_m_q_t_t_client__connect_options.html#a38c6aa24b36d981c49405db425c24db0">MQTTClient_connectOptions</a>
</li>
<li>context
: <a class="el" href="struct_m_q_t_t_client__persistence.html#ae376f130b17d169ee51be68077a89ed0">MQTTClient_persistence</a>
</li>
</ul>
<h3><a class="anchor" id="index_d">- d -</a></h3><ul>
<li>dup
: <a class="el" href="struct_m_q_t_t_client__message.html#adc4cf3f551bb367858644559d69cfdf5">MQTTClient_message</a>
</li>
</ul>
<h3><a class="anchor" id="index_k">- k -</a></h3><ul>
<li>keepAliveInterval
: <a class="el" href="struct_m_q_t_t_client__connect_options.html#ac8dd0930672a9c7d71fc645aa1f0521d">MQTTClient_connectOptions</a>
</li>
</ul>
<h3><a class="anchor" id="index_m">- m -</a></h3><ul>
<li>message
: <a class="el" href="struct_m_q_t_t_client__will_options.html#a0b2e8c7f76df48129f994ecc46d5c66c">MQTTClient_willOptions</a>
</li>
<li>msgid
: <a class="el" href="struct_m_q_t_t_client__message.html#a6174c42da8c55c86e7255be2848dc4ac">MQTTClient_message</a>
</li>
</ul>
<h3><a class="anchor" id="index_p">- p -</a></h3><ul>
<li>password
: <a class="el" href="struct_m_q_t_t_client__connect_options.html#a59460a3ff2c12443d1022e5cc0fba85c">MQTTClient_connectOptions</a>
</li>
<li>payload
: <a class="el" href="struct_m_q_t_t_client__message.html#a9eff55064941fb604452abb0050ea99d">MQTTClient_message</a>
</li>
<li>payloadlen
: <a class="el" href="struct_m_q_t_t_client__message.html#aa3cb44feb3ae6d11b3a4cad2d94cb33a">MQTTClient_message</a>
</li>
<li>pclear
: <a class="el" href="struct_m_q_t_t_client__persistence.html#abc192dc88113c7d933b29d3561badbf5">MQTTClient_persistence</a>
</li>
<li>pclose
: <a class="el" href="struct_m_q_t_t_client__persistence.html#a7e50506912d2ec0e014cc25ec28fb402">MQTTClient_persistence</a>
</li>
<li>pcontainskey
: <a class="el" href="struct_m_q_t_t_client__persistence.html#ac103711576267f791325f2b70b6dc49d">MQTTClient_persistence</a>
</li>
<li>pget
: <a class="el" href="struct_m_q_t_t_client__persistence.html#a49155000b82a28ac3b3cb878f3a092d4">MQTTClient_persistence</a>
</li>
<li>pkeys
: <a class="el" href="struct_m_q_t_t_client__persistence.html#a407e86a809e4b0b098a8c158f53b9606">MQTTClient_persistence</a>
</li>
<li>popen
: <a class="el" href="struct_m_q_t_t_client__persistence.html#a1bae211b32415e6b349d5ae71599f9f4">MQTTClient_persistence</a>
</li>
<li>pput
: <a class="el" href="struct_m_q_t_t_client__persistence.html#a4114d9b9971cee18d7e4b9dd5736a608">MQTTClient_persistence</a>
</li>
<li>premove
: <a class="el" href="struct_m_q_t_t_client__persistence.html#a53150e443ca721b8623689371c2fbdb9">MQTTClient_persistence</a>
</li>
</ul>
<h3><a class="anchor" id="index_q">- q -</a></h3><ul>
<li>qos
: <a class="el" href="struct_m_q_t_t_client__message.html#a35738099155a0e4f54050da474bab2e7">MQTTClient_message</a>
, <a class="el" href="struct_m_q_t_t_client__will_options.html#a35738099155a0e4f54050da474bab2e7">MQTTClient_willOptions</a>
</li>
</ul>
<h3><a class="anchor" id="index_r">- r -</a></h3><ul>
<li>reliable
: <a class="el" href="struct_m_q_t_t_client__connect_options.html#a9f1cdffc99659fd4e2d20e6de3c64df0">MQTTClient_connectOptions</a>
</li>
<li>retained
: <a class="el" href="struct_m_q_t_t_client__message.html#a6a4904c112507a43e7dc8495b62cc0fc">MQTTClient_message</a>
, <a class="el" href="struct_m_q_t_t_client__will_options.html#a6a4904c112507a43e7dc8495b62cc0fc">MQTTClient_willOptions</a>
</li>
<li>retryInterval
: <a class="el" href="struct_m_q_t_t_client__connect_options.html#ac73f57846c42bcaa9a47e6721a957748">MQTTClient_connectOptions</a>
</li>
</ul>
<h3><a class="anchor" id="index_s">- s -</a></h3><ul>
<li>struct_id
: <a class="el" href="struct_m_q_t_t_client__message.html#aa5326df180cb23c59afbcab711a06479">MQTTClient_message</a>
, <a class="el" href="struct_m_q_t_t_client__will_options.html#aa5326df180cb23c59afbcab711a06479">MQTTClient_willOptions</a>
, <a class="el" href="struct_m_q_t_t_client__connect_options.html#aa5326df180cb23c59afbcab711a06479">MQTTClient_connectOptions</a>
</li>
<li>struct_version
: <a class="el" href="struct_m_q_t_t_client__message.html#a0761a5e5be0383882e42924de8e51f82">MQTTClient_message</a>
, <a class="el" href="struct_m_q_t_t_client__will_options.html#a0761a5e5be0383882e42924de8e51f82">MQTTClient_willOptions</a>
, <a class="el" href="struct_m_q_t_t_client__connect_options.html#a0761a5e5be0383882e42924de8e51f82">MQTTClient_connectOptions</a>
</li>
</ul>
<h3><a class="anchor" id="index_t">- t -</a></h3><ul>
<li>topicName
: <a class="el" href="struct_m_q_t_t_client__will_options.html#ac0aaa2cc04921489bbddaf101f03b961">MQTTClient_willOptions</a>
</li>
</ul>
<h3><a class="anchor" id="index_u">- u -</a></h3><ul>
<li>username
: <a class="el" href="struct_m_q_t_t_client__connect_options.html#a9b20c006bd90a09e1465fb668700e81d">MQTTClient_connectOptions</a>
</li>
</ul>
<h3><a class="anchor" id="index_w">- w -</a></h3><ul>
<li>will
: <a class="el" href="struct_m_q_t_t_client__connect_options.html#a0a880e99d47eb2efe552abe5079bdc9d">MQTTClient_connectOptions</a>
</li>
</ul>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue Jul 3 15:17:14 2012 for MQTT Client by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>
<!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"/>
<title>MQTT Client: Data Fields</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.3 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li class="current"><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="#index_m"><span>m</span></a></li>
<li><a href="#index_p"><span>p</span></a></li>
</ul>
</div>
</div>
<div class="contents">
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
<h3><a class="anchor" id="index_m">- m -</a></h3><ul>
<li>MQTTClient
: <a class="el" href="_m_q_t_t_client_8h.html#a7649e3913f9a216424d296f88a969c59">MQTTClient.h</a>
</li>
<li>MQTTCLIENT_BAD_STRUCTURE
: <a class="el" href="_m_q_t_t_client_8h.html#a747615d8064e3fe024ae5565ec63e1ce">MQTTClient.h</a>
</li>
<li>MQTTCLIENT_BAD_UTF8_STRING
: <a class="el" href="_m_q_t_t_client_8h.html#a678a4744192de9c8dca220d9965809dd">MQTTClient.h</a>
</li>
<li>MQTTClient_connect()
: <a class="el" href="_m_q_t_t_client_8h.html#aaa8ae61cd65c9dc0846df10122d7bd4e">MQTTClient.h</a>
</li>
<li>MQTTClient_connectionLost
: <a class="el" href="_m_q_t_t_client_8h.html#a6bb253f16754e7cc81798c9fda0e36cf">MQTTClient.h</a>
</li>
<li>MQTTClient_connectOptions_initializer
: <a class="el" href="_m_q_t_t_client_8h.html#aefd7c865f2641c8155b763fdf3061c25">MQTTClient.h</a>
</li>
<li>MQTTClient_create()
: <a class="el" href="_m_q_t_t_client_8h.html#a5cb44bc0e06bcc95a314d51320a0cd1b">MQTTClient.h</a>
</li>
<li>MQTTClient_deliveryComplete
: <a class="el" href="_m_q_t_t_client_8h.html#abef83794d8252551ed248cde6eb845a6">MQTTClient.h</a>
</li>
<li>MQTTClient_deliveryToken
: <a class="el" href="_m_q_t_t_client_8h.html#a73e49030fd8b7074aa1aa45669b7fe8d">MQTTClient.h</a>
</li>
<li>MQTTClient_destroy()
: <a class="el" href="_m_q_t_t_client_8h.html#ae700c3f5cfea3813264ce95e7c8cf498">MQTTClient.h</a>
</li>
<li>MQTTClient_disconnect()
: <a class="el" href="_m_q_t_t_client_8h.html#a1e4d90c13a3c0705bc4a13bfe64e6525">MQTTClient.h</a>
</li>
<li>MQTTCLIENT_DISCONNECTED
: <a class="el" href="_m_q_t_t_client_8h.html#a561d053311cb492cf7226f419ee0d516">MQTTClient.h</a>
</li>
<li>MQTTCLIENT_FAILURE
: <a class="el" href="_m_q_t_t_client_8h.html#af33a6d6c0e8a6a747bf39638e0bba36b">MQTTClient.h</a>
</li>
<li>MQTTClient_free()
: <a class="el" href="_m_q_t_t_client_8h.html#a203b545c999beb6b825ec99b6aea79ab">MQTTClient.h</a>
</li>
<li>MQTTClient_freeMessage()
: <a class="el" href="_m_q_t_t_client_8h.html#abd8abde4f39d3e689029de27f7a98a65">MQTTClient.h</a>
</li>
<li>MQTTClient_getPendingDeliveryTokens()
: <a class="el" href="_m_q_t_t_client_8h.html#a2a617c6b0492c04a4ddea592f5e53604">MQTTClient.h</a>
</li>
<li>MQTTClient_isConnected()
: <a class="el" href="_m_q_t_t_client_8h.html#a6e8231e8c47f6f67f7ebbb5dcb4c69c0">MQTTClient.h</a>
</li>
<li>MQTTCLIENT_MAX_MESSAGES_INFLIGHT
: <a class="el" href="_m_q_t_t_client_8h.html#a8fc442fc2e9dfb422a163ab1fa02e0cb">MQTTClient.h</a>
</li>
<li>MQTTClient_message_initializer
: <a class="el" href="_m_q_t_t_client_8h.html#aa1fd995924d3df75959fcf57e87aefac">MQTTClient.h</a>
</li>
<li>MQTTClient_messageArrived
: <a class="el" href="_m_q_t_t_client_8h.html#aa42130dd069e7e949bcab37b6dce64a5">MQTTClient.h</a>
</li>
<li>MQTTCLIENT_NULL_PARAMETER
: <a class="el" href="_m_q_t_t_client_8h.html#ac3232abd7f86bbba26faea0e2b132c3c">MQTTClient.h</a>
</li>
<li>MQTTCLIENT_PERSISTENCE_DEFAULT
: <a class="el" href="_m_q_t_t_client_persistence_8h.html#aaa948291718a9c06369b854b0f64bc32">MQTTClientPersistence.h</a>
</li>
<li>MQTTCLIENT_PERSISTENCE_ERROR
: <a class="el" href="_m_q_t_t_client_persistence_8h.html#ab716e21e53c84a5ad62aa962a2a8f7db">MQTTClientPersistence.h</a>
</li>
<li>MQTTCLIENT_PERSISTENCE_NONE
: <a class="el" href="_m_q_t_t_client_persistence_8h.html#ae01e089313a65ac4661ed216b6ac00fa">MQTTClientPersistence.h</a>
</li>
<li>MQTTCLIENT_PERSISTENCE_USER
: <a class="el" href="_m_q_t_t_client_persistence_8h.html#a5dc68b8616e4041e037bad94ce07681b">MQTTClientPersistence.h</a>
</li>
<li>MQTTClient_publish()
: <a class="el" href="_m_q_t_t_client_8h.html#aa061f83fbed3a23177cca8714780ffbd">MQTTClient.h</a>
</li>
<li>MQTTClient_publishMessage()
: <a class="el" href="_m_q_t_t_client_8h.html#a288d6c8d4919f06e991be2435f649676">MQTTClient.h</a>
</li>
<li>MQTTClient_receive()
: <a class="el" href="_m_q_t_t_client_8h.html#a4c2df88d00a3dadd510a8cb774739366">MQTTClient.h</a>
</li>
<li>MQTTClient_setCallbacks()
: <a class="el" href="_m_q_t_t_client_8h.html#aad27d07782991a4937ebf2f39a021f83">MQTTClient.h</a>
</li>
<li>MQTTClient_subscribe()
: <a class="el" href="_m_q_t_t_client_8h.html#a326fb0ba7a16613ab7fc861f78232ccf">MQTTClient.h</a>
</li>
<li>MQTTClient_subscribeMany()
: <a class="el" href="_m_q_t_t_client_8h.html#ad125c07aad06ca085b5fff40c333b533">MQTTClient.h</a>
</li>
<li>MQTTCLIENT_SUCCESS
: <a class="el" href="_m_q_t_t_client_8h.html#acba095704d79e5a1996389fa26203f73">MQTTClient.h</a>
</li>
<li>MQTTCLIENT_TOPICNAME_TRUNCATED
: <a class="el" href="_m_q_t_t_client_8h.html#a29afebfce0bdf6cda1e37abc0c4b6690">MQTTClient.h</a>
</li>
<li>MQTTClient_unsubscribe()
: <a class="el" href="_m_q_t_t_client_8h.html#adc79908187e9dd8d96ddc9536aa9d0c7">MQTTClient.h</a>
</li>
<li>MQTTClient_unsubscribeMany()
: <a class="el" href="_m_q_t_t_client_8h.html#a4966145fdc008afc6aa90d7030f73b51">MQTTClient.h</a>
</li>
<li>MQTTClient_waitForCompletion()
: <a class="el" href="_m_q_t_t_client_8h.html#a83807ec81fe8c3941e368ab329d43067">MQTTClient.h</a>
</li>
<li>MQTTClient_willOptions_initializer
: <a class="el" href="_m_q_t_t_client_8h.html#aae0811659c59f5dad0467544f91645eb">MQTTClient.h</a>
</li>
<li>MQTTClient_yield()
: <a class="el" href="_m_q_t_t_client_8h.html#a8ad3d29864a9ca08202b0832e0f6678e">MQTTClient.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_p">- p -</a></h3><ul>
<li>Persistence_clear
: <a class="el" href="_m_q_t_t_client_persistence_8h.html#a40523890e58ebe47bd34db6a6d1b47d1">MQTTClientPersistence.h</a>
</li>
<li>Persistence_close
: <a class="el" href="_m_q_t_t_client_persistence_8h.html#a23648571a3f4cd47ef18fdb821a990a4">MQTTClientPersistence.h</a>
</li>
<li>Persistence_containskey
: <a class="el" href="_m_q_t_t_client_persistence_8h.html#ad92081c4da5e242934f0b13c0279d0af">MQTTClientPersistence.h</a>
</li>
<li>Persistence_get
: <a class="el" href="_m_q_t_t_client_persistence_8h.html#a4fd91e00c8fc2ddff4b4d54e9c5a1d48">MQTTClientPersistence.h</a>
</li>
<li>Persistence_keys
: <a class="el" href="_m_q_t_t_client_persistence_8h.html#ad6295da2bee2a65722a9e0c1e12474c2">MQTTClientPersistence.h</a>
</li>
<li>Persistence_open
: <a class="el" href="_m_q_t_t_client_persistence_8h.html#a3c418c1cb963a76d9fae5c3219eeb8ce">MQTTClientPersistence.h</a>
</li>
<li>Persistence_put
: <a class="el" href="_m_q_t_t_client_persistence_8h.html#a0b95acfdfff547e3a539f229b1cf6e41">MQTTClientPersistence.h</a>
</li>
<li>Persistence_remove
: <a class="el" href="_m_q_t_t_client_persistence_8h.html#adfeea3989b64d626003086636f6585de">MQTTClientPersistence.h</a>
</li>
</ul>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue Jul 3 15:17:14 2012 for MQTT Client by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>
<!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"/>
<title>MQTT Client: Data Fields</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.3 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li class="current"><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
</div>
<div class="contents">
&nbsp;<ul>
<li>MQTTCLIENT_BAD_STRUCTURE
: <a class="el" href="_m_q_t_t_client_8h.html#a747615d8064e3fe024ae5565ec63e1ce">MQTTClient.h</a>
</li>
<li>MQTTCLIENT_BAD_UTF8_STRING
: <a class="el" href="_m_q_t_t_client_8h.html#a678a4744192de9c8dca220d9965809dd">MQTTClient.h</a>
</li>
<li>MQTTClient_connectOptions_initializer
: <a class="el" href="_m_q_t_t_client_8h.html#aefd7c865f2641c8155b763fdf3061c25">MQTTClient.h</a>
</li>
<li>MQTTCLIENT_DISCONNECTED
: <a class="el" href="_m_q_t_t_client_8h.html#a561d053311cb492cf7226f419ee0d516">MQTTClient.h</a>
</li>
<li>MQTTCLIENT_FAILURE
: <a class="el" href="_m_q_t_t_client_8h.html#af33a6d6c0e8a6a747bf39638e0bba36b">MQTTClient.h</a>
</li>
<li>MQTTCLIENT_MAX_MESSAGES_INFLIGHT
: <a class="el" href="_m_q_t_t_client_8h.html#a8fc442fc2e9dfb422a163ab1fa02e0cb">MQTTClient.h</a>
</li>
<li>MQTTClient_message_initializer
: <a class="el" href="_m_q_t_t_client_8h.html#aa1fd995924d3df75959fcf57e87aefac">MQTTClient.h</a>
</li>
<li>MQTTCLIENT_NULL_PARAMETER
: <a class="el" href="_m_q_t_t_client_8h.html#ac3232abd7f86bbba26faea0e2b132c3c">MQTTClient.h</a>
</li>
<li>MQTTCLIENT_PERSISTENCE_DEFAULT
: <a class="el" href="_m_q_t_t_client_persistence_8h.html#aaa948291718a9c06369b854b0f64bc32">MQTTClientPersistence.h</a>
</li>
<li>MQTTCLIENT_PERSISTENCE_ERROR
: <a class="el" href="_m_q_t_t_client_persistence_8h.html#ab716e21e53c84a5ad62aa962a2a8f7db">MQTTClientPersistence.h</a>
</li>
<li>MQTTCLIENT_PERSISTENCE_NONE
: <a class="el" href="_m_q_t_t_client_persistence_8h.html#ae01e089313a65ac4661ed216b6ac00fa">MQTTClientPersistence.h</a>
</li>
<li>MQTTCLIENT_PERSISTENCE_USER
: <a class="el" href="_m_q_t_t_client_persistence_8h.html#a5dc68b8616e4041e037bad94ce07681b">MQTTClientPersistence.h</a>
</li>
<li>MQTTCLIENT_SUCCESS
: <a class="el" href="_m_q_t_t_client_8h.html#acba095704d79e5a1996389fa26203f73">MQTTClient.h</a>
</li>
<li>MQTTCLIENT_TOPICNAME_TRUNCATED
: <a class="el" href="_m_q_t_t_client_8h.html#a29afebfce0bdf6cda1e37abc0c4b6690">MQTTClient.h</a>
</li>
<li>MQTTClient_willOptions_initializer
: <a class="el" href="_m_q_t_t_client_8h.html#aae0811659c59f5dad0467544f91645eb">MQTTClient.h</a>
</li>
</ul>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue Jul 3 15:17:14 2012 for MQTT Client by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>
<!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"/>
<title>MQTT Client: Data Fields</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.3 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="globals.html"><span>All</span></a></li>
<li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
</div>
<div class="contents">
&nbsp;<ul>
<li>MQTTClient_connect()
: <a class="el" href="_m_q_t_t_client_8h.html#aaa8ae61cd65c9dc0846df10122d7bd4e">MQTTClient.h</a>
</li>
<li>MQTTClient_create()
: <a class="el" href="_m_q_t_t_client_8h.html#a5cb44bc0e06bcc95a314d51320a0cd1b">MQTTClient.h</a>
</li>
<li>MQTTClient_destroy()
: <a class="el" href="_m_q_t_t_client_8h.html#ae700c3f5cfea3813264ce95e7c8cf498">MQTTClient.h</a>
</li>
<li>MQTTClient_disconnect()
: <a class="el" href="_m_q_t_t_client_8h.html#a1e4d90c13a3c0705bc4a13bfe64e6525">MQTTClient.h</a>
</li>
<li>MQTTClient_free()
: <a class="el" href="_m_q_t_t_client_8h.html#a203b545c999beb6b825ec99b6aea79ab">MQTTClient.h</a>
</li>
<li>MQTTClient_freeMessage()
: <a class="el" href="_m_q_t_t_client_8h.html#abd8abde4f39d3e689029de27f7a98a65">MQTTClient.h</a>
</li>
<li>MQTTClient_getPendingDeliveryTokens()
: <a class="el" href="_m_q_t_t_client_8h.html#a2a617c6b0492c04a4ddea592f5e53604">MQTTClient.h</a>
</li>
<li>MQTTClient_isConnected()
: <a class="el" href="_m_q_t_t_client_8h.html#a6e8231e8c47f6f67f7ebbb5dcb4c69c0">MQTTClient.h</a>
</li>
<li>MQTTClient_publish()
: <a class="el" href="_m_q_t_t_client_8h.html#aa061f83fbed3a23177cca8714780ffbd">MQTTClient.h</a>
</li>
<li>MQTTClient_publishMessage()
: <a class="el" href="_m_q_t_t_client_8h.html#a288d6c8d4919f06e991be2435f649676">MQTTClient.h</a>
</li>
<li>MQTTClient_receive()
: <a class="el" href="_m_q_t_t_client_8h.html#a4c2df88d00a3dadd510a8cb774739366">MQTTClient.h</a>
</li>
<li>MQTTClient_setCallbacks()
: <a class="el" href="_m_q_t_t_client_8h.html#aad27d07782991a4937ebf2f39a021f83">MQTTClient.h</a>
</li>
<li>MQTTClient_subscribe()
: <a class="el" href="_m_q_t_t_client_8h.html#a326fb0ba7a16613ab7fc861f78232ccf">MQTTClient.h</a>
</li>
<li>MQTTClient_subscribeMany()
: <a class="el" href="_m_q_t_t_client_8h.html#ad125c07aad06ca085b5fff40c333b533">MQTTClient.h</a>
</li>
<li>MQTTClient_unsubscribe()
: <a class="el" href="_m_q_t_t_client_8h.html#adc79908187e9dd8d96ddc9536aa9d0c7">MQTTClient.h</a>
</li>
<li>MQTTClient_unsubscribeMany()
: <a class="el" href="_m_q_t_t_client_8h.html#a4966145fdc008afc6aa90d7030f73b51">MQTTClient.h</a>
</li>
<li>MQTTClient_waitForCompletion()
: <a class="el" href="_m_q_t_t_client_8h.html#a83807ec81fe8c3941e368ab329d43067">MQTTClient.h</a>
</li>
<li>MQTTClient_yield()
: <a class="el" href="_m_q_t_t_client_8h.html#a8ad3d29864a9ca08202b0832e0f6678e">MQTTClient.h</a>
</li>
</ul>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue Jul 3 15:17:14 2012 for MQTT Client by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>
<!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"/>
<title>MQTT Client: Data Fields</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.3 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li class="current"><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
</div>
<div class="contents">
&nbsp;<ul>
<li>MQTTClient
: <a class="el" href="_m_q_t_t_client_8h.html#a7649e3913f9a216424d296f88a969c59">MQTTClient.h</a>
</li>
<li>MQTTClient_connectionLost
: <a class="el" href="_m_q_t_t_client_8h.html#a6bb253f16754e7cc81798c9fda0e36cf">MQTTClient.h</a>
</li>
<li>MQTTClient_deliveryComplete
: <a class="el" href="_m_q_t_t_client_8h.html#abef83794d8252551ed248cde6eb845a6">MQTTClient.h</a>
</li>
<li>MQTTClient_deliveryToken
: <a class="el" href="_m_q_t_t_client_8h.html#a73e49030fd8b7074aa1aa45669b7fe8d">MQTTClient.h</a>
</li>
<li>MQTTClient_messageArrived
: <a class="el" href="_m_q_t_t_client_8h.html#aa42130dd069e7e949bcab37b6dce64a5">MQTTClient.h</a>
</li>
<li>Persistence_clear
: <a class="el" href="_m_q_t_t_client_persistence_8h.html#a40523890e58ebe47bd34db6a6d1b47d1">MQTTClientPersistence.h</a>
</li>
<li>Persistence_close
: <a class="el" href="_m_q_t_t_client_persistence_8h.html#a23648571a3f4cd47ef18fdb821a990a4">MQTTClientPersistence.h</a>
</li>
<li>Persistence_containskey
: <a class="el" href="_m_q_t_t_client_persistence_8h.html#ad92081c4da5e242934f0b13c0279d0af">MQTTClientPersistence.h</a>
</li>
<li>Persistence_get
: <a class="el" href="_m_q_t_t_client_persistence_8h.html#a4fd91e00c8fc2ddff4b4d54e9c5a1d48">MQTTClientPersistence.h</a>
</li>
<li>Persistence_keys
: <a class="el" href="_m_q_t_t_client_persistence_8h.html#ad6295da2bee2a65722a9e0c1e12474c2">MQTTClientPersistence.h</a>
</li>
<li>Persistence_open
: <a class="el" href="_m_q_t_t_client_persistence_8h.html#a3c418c1cb963a76d9fae5c3219eeb8ce">MQTTClientPersistence.h</a>
</li>
<li>Persistence_put
: <a class="el" href="_m_q_t_t_client_persistence_8h.html#a0b95acfdfff547e3a539f229b1cf6e41">MQTTClientPersistence.h</a>
</li>
<li>Persistence_remove
: <a class="el" href="_m_q_t_t_client_persistence_8h.html#adfeea3989b64d626003086636f6585de">MQTTClientPersistence.h</a>
</li>
</ul>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue Jul 3 15:17:14 2012 for MQTT Client by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>
<!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"/>
<title>MQTT Client: MQTT Client library for C</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.3 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li class="current"><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>MQTT Client library for C </h1><p>An MQTT client library in C. &copy; Copyright IBM Corp. 2009, 2011</p>
<p>An MQTT client application connects to MQTT-capable servers. A typical client is responsible for collecting information from a telemetry device and publishing the information to the server. It can also subscribe to topics, receive messages, and use this information to control the telemetry device. MQTT clients implement the published MQTT v3 protocol.</p>
<p><b>Using the client</b><br/>
Applications that use the client library typically use a similar structure: </p>
<ul>
<li>
Create a clent </li>
<li>
Set the options to connect to an MQTT server </li>
<li>
Set up callback functions if multi-threaded (asynchronous mode) operation is being used (see <a class="el" href="async.html">Asynchronous vs synchronous client applications</a>). </li>
<li>
Subscribe to any topics the client needs to receive </li>
<li>
Repeat until finished: <ul>
<li>
Publish any messages the client needs to </li>
<li>
Handle any incoming messages </li>
</ul>
</li>
<li>
Disconnect the client </li>
<li>
Free any memory being used by the client </li>
</ul>
<p>Some simple examples are shown here: </p>
<ul>
<li>
<a class="el" href="pubsync.html">Synchronous publication example</a> </li>
<li>
<a class="el" href="pubasync.html">Asynchronous publication example</a> </li>
<li>
<a class="el" href="subasync.html">Asynchronous subscription example</a> </li>
</ul>
<p>Additional information about important concepts is provided here: </p>
<ul>
<li>
<a class="el" href="async.html">Asynchronous vs synchronous client applications</a> </li>
<li>
<a class="el" href="wildcard.html">Subscription wildcards</a> </li>
<li>
<a class="el" href="qos.html">Quality of service</a> </li>
</ul>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue Jul 3 15:17:14 2012 for MQTT Client by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>
<!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"/>
<title>MQTT Client: Page Index</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.3 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>Related Pages</h1>Here is a list of all related documentation pages:<ul>
<li><a class="el" href="async.html">Asynchronous vs synchronous client applications</a>
</li>
<li><a class="el" href="wildcard.html">Subscription wildcards</a>
</li>
<li><a class="el" href="qos.html">Quality of service</a>
</li>
<li><a class="el" href="pubsync.html">Synchronous publication example</a>
</li>
<li><a class="el" href="pubasync.html">Asynchronous publication example</a>
</li>
<li><a class="el" href="subasync.html">Asynchronous subscription example</a>
</li>
</ul>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue Jul 3 15:17:14 2012 for MQTT Client by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>
<!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"/>
<title>MQTT Client: Asynchronous publication example</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.3 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1><a class="anchor" id="pubasync">Asynchronous publication example </a></h1><div class="fragment"><pre class="fragment"><span class="preprocessor">#include &quot;stdio.h&quot;</span>
<span class="preprocessor">#include &quot;stdlib.h&quot;</span>
<span class="preprocessor">#include &quot;string.h&quot;</span>
<span class="preprocessor">#include &quot;<a class="code" href="_m_q_t_t_client_8h.html">MQTTClient.h</a>&quot;</span>
<span class="preprocessor">#define ADDRESS &quot;tcp://localhost:1883&quot;</span>
<span class="preprocessor"></span><span class="preprocessor">#define CLIENTID &quot;ExampleClientPub&quot;</span>
<span class="preprocessor"></span><span class="preprocessor">#define TOPIC &quot;MQTT Examples&quot;</span>
<span class="preprocessor"></span><span class="preprocessor">#define PAYLOAD &quot;Hello World!&quot;</span>
<span class="preprocessor"></span><span class="preprocessor">#define QOS 1</span>
<span class="preprocessor"></span><span class="preprocessor">#define TIMEOUT 10000L</span>
<span class="preprocessor"></span>
<span class="keyword">volatile</span> <a class="code" href="_m_q_t_t_client_8h.html#a73e49030fd8b7074aa1aa45669b7fe8d">MQTTClient_deliveryToken</a> deliveredtoken;
<span class="keywordtype">void</span> delivered(<span class="keywordtype">void</span> *context, <a class="code" href="_m_q_t_t_client_8h.html#a73e49030fd8b7074aa1aa45669b7fe8d">MQTTClient_deliveryToken</a> dt)
{
printf(<span class="stringliteral">&quot;Message with token value %d delivery confirmed\n&quot;</span>, dt);
deliveredtoken = dt;
}
<span class="keywordtype">int</span> msgarrvd(<span class="keywordtype">void</span> *context, <span class="keywordtype">char</span> *topicName, <span class="keywordtype">int</span> topicLen, <a class="code" href="struct_m_q_t_t_client__message.html">MQTTClient_message</a> *message)
{
<span class="keywordtype">int</span> i;
<span class="keywordtype">char</span>* payloadptr;
printf(<span class="stringliteral">&quot;Message arrived\n&quot;</span>);
printf(<span class="stringliteral">&quot; topic: %s\n&quot;</span>, topicName);
printf(<span class="stringliteral">&quot; message: &quot;</span>);
payloadptr = message-&gt;<a class="code" href="struct_m_q_t_t_client__message.html#a9eff55064941fb604452abb0050ea99d">payload</a>;
<span class="keywordflow">for</span>(i=0; i&lt;message-&gt;<a class="code" href="struct_m_q_t_t_client__message.html#aa3cb44feb3ae6d11b3a4cad2d94cb33a">payloadlen</a>; i++)
{
putchar(*payloadptr++);
}
putchar(<span class="charliteral">&#39;\n&#39;</span>);
<a class="code" href="_m_q_t_t_client_8h.html#abd8abde4f39d3e689029de27f7a98a65">MQTTClient_freeMessage</a>(&amp;message);
<a class="code" href="_m_q_t_t_client_8h.html#a203b545c999beb6b825ec99b6aea79ab">MQTTClient_free</a>(topicName);
<span class="keywordflow">return</span> 1;
}
<span class="keywordtype">void</span> connlost(<span class="keywordtype">void</span> *context, <span class="keywordtype">char</span> *cause)
{
printf(<span class="stringliteral">&quot;\nConnection lost\n&quot;</span>);
printf(<span class="stringliteral">&quot; cause: %s\n&quot;</span>, cause);
}
<span class="keywordtype">int</span> main(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>* argv[])
{
<a class="code" href="_m_q_t_t_client_8h.html#a7649e3913f9a216424d296f88a969c59">MQTTClient</a> client;
<a class="code" href="struct_m_q_t_t_client__connect_options.html">MQTTClient_connectOptions</a> conn_opts = <a class="code" href="_m_q_t_t_client_8h.html#aefd7c865f2641c8155b763fdf3061c25">MQTTClient_connectOptions_initializer</a>;
<a class="code" href="struct_m_q_t_t_client__message.html">MQTTClient_message</a> pubmsg = <a class="code" href="_m_q_t_t_client_8h.html#aa1fd995924d3df75959fcf57e87aefac">MQTTClient_message_initializer</a>;
<a class="code" href="_m_q_t_t_client_8h.html#a73e49030fd8b7074aa1aa45669b7fe8d">MQTTClient_deliveryToken</a> token;
<span class="keywordtype">int</span> rc;
<a class="code" href="_m_q_t_t_client_8h.html#a5cb44bc0e06bcc95a314d51320a0cd1b">MQTTClient_create</a>(&amp;client, ADDRESS, CLIENTID,
<a class="code" href="_m_q_t_t_client_persistence_8h.html#ae01e089313a65ac4661ed216b6ac00fa">MQTTCLIENT_PERSISTENCE_NONE</a>, NULL);
conn_opts.<a class="code" href="struct_m_q_t_t_client__connect_options.html#ac8dd0930672a9c7d71fc645aa1f0521d">keepAliveInterval</a> = 20;
conn_opts.<a class="code" href="struct_m_q_t_t_client__connect_options.html#a036c36a2a4d3a3ffae9ab4dd8b3e7f7b">cleansession</a> = 1;
<a class="code" href="_m_q_t_t_client_8h.html#aad27d07782991a4937ebf2f39a021f83">MQTTClient_setCallbacks</a>(client, NULL, connlost, msgarrvd, delivered);
<span class="keywordflow">if</span> ((rc = <a class="code" href="_m_q_t_t_client_8h.html#aaa8ae61cd65c9dc0846df10122d7bd4e">MQTTClient_connect</a>(client, &amp;conn_opts)) != <a class="code" href="_m_q_t_t_client_8h.html#acba095704d79e5a1996389fa26203f73">MQTTCLIENT_SUCCESS</a>)
{
printf(<span class="stringliteral">&quot;Failed to connect, return code %d\n&quot;</span>, rc);
exit(-1);
}
pubmsg.<a class="code" href="struct_m_q_t_t_client__message.html#a9eff55064941fb604452abb0050ea99d">payload</a> = PAYLOAD;
pubmsg.<a class="code" href="struct_m_q_t_t_client__message.html#aa3cb44feb3ae6d11b3a4cad2d94cb33a">payloadlen</a> = strlen(PAYLOAD);
pubmsg.<a class="code" href="struct_m_q_t_t_client__message.html#a35738099155a0e4f54050da474bab2e7">qos</a> = QOS;
pubmsg.<a class="code" href="struct_m_q_t_t_client__message.html#a6a4904c112507a43e7dc8495b62cc0fc">retained</a> = 0;
deliveredtoken = 0;
<a class="code" href="_m_q_t_t_client_8h.html#a288d6c8d4919f06e991be2435f649676">MQTTClient_publishMessage</a>(client, TOPIC, &amp;pubmsg, &amp;token);
printf(<span class="stringliteral">&quot;Waiting for publication of %s\n&quot;</span>
<span class="stringliteral">&quot;on topic %s for client with ClientID: %s\n&quot;</span>,
PAYLOAD, TOPIC, CLIENTID);
<span class="keywordflow">while</span>(deliveredtoken != token);
<a class="code" href="_m_q_t_t_client_8h.html#a1e4d90c13a3c0705bc4a13bfe64e6525">MQTTClient_disconnect</a>(client, 10000);
<a class="code" href="_m_q_t_t_client_8h.html#ae700c3f5cfea3813264ce95e7c8cf498">MQTTClient_destroy</a>(&amp;client);
<span class="keywordflow">return</span> rc;
}
</pre></div> </div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue Jul 3 15:17:14 2012 for MQTT Client by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>
<!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"/>
<title>MQTT Client: Synchronous publication example</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.3 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1><a class="anchor" id="pubsync">Synchronous publication example </a></h1><div class="fragment"><pre class="fragment"><span class="preprocessor">#include &quot;stdio.h&quot;</span>
<span class="preprocessor">#include &quot;stdlib.h&quot;</span>
<span class="preprocessor">#include &quot;string.h&quot;</span>
<span class="preprocessor">#include &quot;<a class="code" href="_m_q_t_t_client_8h.html">MQTTClient.h</a>&quot;</span>
<span class="preprocessor">#define ADDRESS &quot;tcp://localhost:1883&quot;</span>
<span class="preprocessor"></span><span class="preprocessor">#define CLIENTID &quot;ExampleClientPub&quot;</span>
<span class="preprocessor"></span><span class="preprocessor">#define TOPIC &quot;MQTT Examples&quot;</span>
<span class="preprocessor"></span><span class="preprocessor">#define PAYLOAD &quot;Hello World!&quot;</span>
<span class="preprocessor"></span><span class="preprocessor">#define QOS 1</span>
<span class="preprocessor"></span><span class="preprocessor">#define TIMEOUT 10000L</span>
<span class="preprocessor"></span>
<span class="keywordtype">int</span> main(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>* argv[])
{
<a class="code" href="_m_q_t_t_client_8h.html#a7649e3913f9a216424d296f88a969c59">MQTTClient</a> client;
<a class="code" href="struct_m_q_t_t_client__connect_options.html">MQTTClient_connectOptions</a> conn_opts = <a class="code" href="_m_q_t_t_client_8h.html#aefd7c865f2641c8155b763fdf3061c25">MQTTClient_connectOptions_initializer</a>;
<a class="code" href="struct_m_q_t_t_client__message.html">MQTTClient_message</a> pubmsg = <a class="code" href="_m_q_t_t_client_8h.html#aa1fd995924d3df75959fcf57e87aefac">MQTTClient_message_initializer</a>;
<a class="code" href="_m_q_t_t_client_8h.html#a73e49030fd8b7074aa1aa45669b7fe8d">MQTTClient_deliveryToken</a> token;
<span class="keywordtype">int</span> rc;
<a class="code" href="_m_q_t_t_client_8h.html#a5cb44bc0e06bcc95a314d51320a0cd1b">MQTTClient_create</a>(&amp;client, ADDRESS, CLIENTID,
<a class="code" href="_m_q_t_t_client_persistence_8h.html#ae01e089313a65ac4661ed216b6ac00fa">MQTTCLIENT_PERSISTENCE_NONE</a>, NULL);
conn_opts.<a class="code" href="struct_m_q_t_t_client__connect_options.html#ac8dd0930672a9c7d71fc645aa1f0521d">keepAliveInterval</a> = 20;
conn_opts.<a class="code" href="struct_m_q_t_t_client__connect_options.html#a036c36a2a4d3a3ffae9ab4dd8b3e7f7b">cleansession</a> = 1;
<span class="keywordflow">if</span> ((rc = <a class="code" href="_m_q_t_t_client_8h.html#aaa8ae61cd65c9dc0846df10122d7bd4e">MQTTClient_connect</a>(client, &amp;conn_opts)) != <a class="code" href="_m_q_t_t_client_8h.html#acba095704d79e5a1996389fa26203f73">MQTTCLIENT_SUCCESS</a>)
{
printf(<span class="stringliteral">&quot;Failed to connect, return code %d\n&quot;</span>, rc);
exit(-1);
}
pubmsg.<a class="code" href="struct_m_q_t_t_client__message.html#a9eff55064941fb604452abb0050ea99d">payload</a> = PAYLOAD;
pubmsg.<a class="code" href="struct_m_q_t_t_client__message.html#aa3cb44feb3ae6d11b3a4cad2d94cb33a">payloadlen</a> = strlen(PAYLOAD);
pubmsg.<a class="code" href="struct_m_q_t_t_client__message.html#a35738099155a0e4f54050da474bab2e7">qos</a> = QOS;
pubmsg.<a class="code" href="struct_m_q_t_t_client__message.html#a6a4904c112507a43e7dc8495b62cc0fc">retained</a> = 0;
<a class="code" href="_m_q_t_t_client_8h.html#a288d6c8d4919f06e991be2435f649676">MQTTClient_publishMessage</a>(client, TOPIC, &amp;pubmsg, &amp;token);
printf(<span class="stringliteral">&quot;Waiting for up to %d seconds for publication of %s\n&quot;</span>
<span class="stringliteral">&quot;on topic %s for client with ClientID: %s\n&quot;</span>,
(<span class="keywordtype">int</span>)(TIMEOUT/1000), PAYLOAD, TOPIC, CLIENTID);
rc = <a class="code" href="_m_q_t_t_client_8h.html#a83807ec81fe8c3941e368ab329d43067">MQTTClient_waitForCompletion</a>(client, token, TIMEOUT);
printf(<span class="stringliteral">&quot;Message with delivery token %d delivered\n&quot;</span>, token);
<a class="code" href="_m_q_t_t_client_8h.html#a1e4d90c13a3c0705bc4a13bfe64e6525">MQTTClient_disconnect</a>(client, 10000);
<a class="code" href="_m_q_t_t_client_8h.html#ae700c3f5cfea3813264ce95e7c8cf498">MQTTClient_destroy</a>(&amp;client);
<span class="keywordflow">return</span> rc;
}
</pre></div> </div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue Jul 3 15:17:14 2012 for MQTT Client by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>
<!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"/>
<title>MQTT Client: Quality of service</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.3 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1><a class="anchor" id="qos">Quality of service </a></h1><p>The MQTT protocol provides three qualities of service for delivering messages between clients and servers: "at most once", "at least once" and "exactly once".</p>
<p>Quality of service (QoS) is an attribute of an individual message being published. An application sets the QoS for a specific message by setting the <a class="el" href="struct_m_q_t_t_client__message.html#a35738099155a0e4f54050da474bab2e7">MQTTClient_message.qos</a> field to the required value.</p>
<p>A subscribing client can set the maximum quality of service a server uses to send messages that match the client subscriptions. The <a class="el" href="_m_q_t_t_client_8h.html#a326fb0ba7a16613ab7fc861f78232ccf">MQTTClient_subscribe()</a> and <a class="el" href="_m_q_t_t_client_8h.html#ad125c07aad06ca085b5fff40c333b533">MQTTClient_subscribeMany()</a> functions set this maximum. The QoS of a message forwarded to a subscriber thus might be different to the QoS given to the message by the original publisher. The lower of the two values is used to forward a message.</p>
<p>The three levels are:</p>
<p><b>QoS0, At most once:</b> The message is delivered at most once, or it may not be delivered at all. Its delivery across the network is not acknowledged. The message is not stored. The message could be lost if the client is disconnected, or if the server fails. QoS0 is the fastest mode of transfer. It is sometimes called "fire and forget".</p>
<p>The MQTT protocol does not require servers to forward publications at QoS0 to a client. If the client is disconnected at the time the server receives the publication, the publication might be discarded, depending on the server implementation.</p>
<p><b>QoS1, At least once:</b> The message is always delivered at least once. It might be delivered multiple times if there is a failure before an acknowledgment is received by the sender. The message must be stored locally at the sender, until the sender receives confirmation that the message has been published by the receiver. The message is stored in case the message must be sent again.</p>
<p><b>QoS2, Exactly once:</b> The message is always delivered exactly once. The message must be stored locally at the sender, until the sender receives confirmation that the message has been published by the receiver. The message is stored in case the message must be sent again. QoS2 is the safest, but slowest mode of transfer. A more sophisticated handshaking and acknowledgement sequence is used than for QoS1 to ensure no duplication of messages occurs. </p>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue Jul 3 15:17:14 2012 for MQTT Client by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>
This diff is collapsed.
<!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"/>
<title>MQTT Client: MQTTClient_message Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.3 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>MQTTClient_message Struct Reference</h1><!-- doxytag: class="MQTTClient_message" -->
<p><code>#include &lt;<a class="el" href="_m_q_t_t_client_8h_source.html">MQTTClient.h</a>&gt;</code></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Data Fields</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_m_q_t_t_client__message.html#aa5326df180cb23c59afbcab711a06479">struct_id</a> [4]</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_m_q_t_t_client__message.html#a0761a5e5be0383882e42924de8e51f82">struct_version</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_m_q_t_t_client__message.html#aa3cb44feb3ae6d11b3a4cad2d94cb33a">payloadlen</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_m_q_t_t_client__message.html#a9eff55064941fb604452abb0050ea99d">payload</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_m_q_t_t_client__message.html#a35738099155a0e4f54050da474bab2e7">qos</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_m_q_t_t_client__message.html#a6a4904c112507a43e7dc8495b62cc0fc">retained</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_m_q_t_t_client__message.html#adc4cf3f551bb367858644559d69cfdf5">dup</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_m_q_t_t_client__message.html#a6174c42da8c55c86e7255be2848dc4ac">msgid</a></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>A structure representing the payload and attributes of an MQTT message. The message topic is not part of this structure (see <a class="el" href="_m_q_t_t_client_8h.html#a288d6c8d4919f06e991be2435f649676">MQTTClient_publishMessage()</a>, <a class="el" href="_m_q_t_t_client_8h.html#aa061f83fbed3a23177cca8714780ffbd">MQTTClient_publish()</a>, <a class="el" href="_m_q_t_t_client_8h.html#a4c2df88d00a3dadd510a8cb774739366">MQTTClient_receive()</a>, <a class="el" href="_m_q_t_t_client_8h.html#abd8abde4f39d3e689029de27f7a98a65">MQTTClient_freeMessage()</a> and <a class="el" href="_m_q_t_t_client_8h.html#aa42130dd069e7e949bcab37b6dce64a5">MQTTClient_messageArrived()</a>). </p>
<hr/><h2>Field Documentation</h2>
<a class="anchor" id="aa5326df180cb23c59afbcab711a06479"></a><!-- doxytag: member="MQTTClient_message::struct_id" ref="aa5326df180cb23c59afbcab711a06479" args="[4]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char <a class="el" href="struct_m_q_t_t_client__message.html#aa5326df180cb23c59afbcab711a06479">struct_id</a>[4]</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The eyecatcher for this structure. must be MQTM. </p>
</div>
</div>
<a class="anchor" id="a0761a5e5be0383882e42924de8e51f82"></a><!-- doxytag: member="MQTTClient_message::struct_version" ref="a0761a5e5be0383882e42924de8e51f82" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="struct_m_q_t_t_client__message.html#a0761a5e5be0383882e42924de8e51f82">struct_version</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The version number of this structure. Must be 0 </p>
</div>
</div>
<a class="anchor" id="aa3cb44feb3ae6d11b3a4cad2d94cb33a"></a><!-- doxytag: member="MQTTClient_message::payloadlen" ref="aa3cb44feb3ae6d11b3a4cad2d94cb33a" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="struct_m_q_t_t_client__message.html#aa3cb44feb3ae6d11b3a4cad2d94cb33a">payloadlen</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The length of the MQTT message payload in bytes. </p>
</div>
</div>
<a class="anchor" id="a9eff55064941fb604452abb0050ea99d"></a><!-- doxytag: member="MQTTClient_message::payload" ref="a9eff55064941fb604452abb0050ea99d" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* <a class="el" href="struct_m_q_t_t_client__message.html#a9eff55064941fb604452abb0050ea99d">payload</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>A pointer to the payload of the MQTT message. </p>
</div>
</div>
<a class="anchor" id="a35738099155a0e4f54050da474bab2e7"></a><!-- doxytag: member="MQTTClient_message::qos" ref="a35738099155a0e4f54050da474bab2e7" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="struct_m_q_t_t_client__message.html#a35738099155a0e4f54050da474bab2e7">qos</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The quality of service (QoS) assigned to the message. There are three levels of QoS: </p>
<dl>
<dt><b>QoS0</b> </dt>
<dd>Fire and forget - the message may not be delivered </dd>
<dt><b>QoS1</b> </dt>
<dd>At least once - the message will be delivered, but may be delivered more than once in some circumstances. </dd>
<dt><b>QoS2</b> </dt>
<dd>Once and one only - the message will be delivered exactly once. </dd>
</dl>
</div>
</div>
<a class="anchor" id="a6a4904c112507a43e7dc8495b62cc0fc"></a><!-- doxytag: member="MQTTClient_message::retained" ref="a6a4904c112507a43e7dc8495b62cc0fc" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="struct_m_q_t_t_client__message.html#a6a4904c112507a43e7dc8495b62cc0fc">retained</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The retained flag serves two purposes depending on whether the message it is associated with is being published or received.</p>
<p><b>retained = true</b><br/>
For messages being published, a true setting indicates that the MQTT server should retain a copy of the message. The message will then be transmitted to new subscribers to a topic that matches the message topic. For subscribers registering a new subscription, the flag being true indicates that the received message is not a new one, but one that has been retained by the MQTT server.</p>
<p><b>retained = false</b> <br/>
For publishers, this ndicates that this message should not be retained by the MQTT server. For subscribers, a false setting indicates this is a normal message, received as a result of it being published to the server. </p>
</div>
</div>
<a class="anchor" id="adc4cf3f551bb367858644559d69cfdf5"></a><!-- doxytag: member="MQTTClient_message::dup" ref="adc4cf3f551bb367858644559d69cfdf5" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="struct_m_q_t_t_client__message.html#adc4cf3f551bb367858644559d69cfdf5">dup</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The dup flag indicates whether or not this message is a duplicate. It is only meaningful when receiving QoS1 messages. When true, the client application should take appropriate action to deal with the duplicate message. </p>
</div>
</div>
<a class="anchor" id="a6174c42da8c55c86e7255be2848dc4ac"></a><!-- doxytag: member="MQTTClient_message::msgid" ref="a6174c42da8c55c86e7255be2848dc4ac" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="struct_m_q_t_t_client__message.html#a6174c42da8c55c86e7255be2848dc4ac">msgid</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The message identifier is normally reserved for internal use by the MQTT client and server. </p>
</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="_m_q_t_t_client_8h_source.html">MQTTClient.h</a></li>
</ul>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue Jul 3 15:17:14 2012 for MQTT Client by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>
This diff is collapsed.
<!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"/>
<title>MQTT Client: MQTTClient_willOptions Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.3 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>MQTTClient_willOptions Struct Reference</h1><!-- doxytag: class="MQTTClient_willOptions" -->
<p><code>#include &lt;<a class="el" href="_m_q_t_t_client_8h_source.html">MQTTClient.h</a>&gt;</code></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Data Fields</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_m_q_t_t_client__will_options.html#aa5326df180cb23c59afbcab711a06479">struct_id</a> [4]</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_m_q_t_t_client__will_options.html#a0761a5e5be0383882e42924de8e51f82">struct_version</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_m_q_t_t_client__will_options.html#ac0aaa2cc04921489bbddaf101f03b961">topicName</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_m_q_t_t_client__will_options.html#a0b2e8c7f76df48129f994ecc46d5c66c">message</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_m_q_t_t_client__will_options.html#a6a4904c112507a43e7dc8495b62cc0fc">retained</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_m_q_t_t_client__will_options.html#a35738099155a0e4f54050da474bab2e7">qos</a></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p><a class="el" href="struct_m_q_t_t_client__will_options.html">MQTTClient_willOptions</a> defines the MQTT "Last Will and Testament" (LWT) settings for the client. In the event that a client unexpectedly loses its connection to the server, the server publishes the LWT message to the LWT topic on behalf of the client. This allows other clients (subscribed to the LWT topic) to be made aware that the client has disconnected. To enable the LWT function for a specific client, a valid pointer to an <a class="el" href="struct_m_q_t_t_client__will_options.html">MQTTClient_willOptions</a> structure is passed in the <a class="el" href="struct_m_q_t_t_client__connect_options.html">MQTTClient_connectOptions</a> structure used in the <a class="el" href="_m_q_t_t_client_8h.html#aaa8ae61cd65c9dc0846df10122d7bd4e">MQTTClient_connect()</a> call that connects the client to the server. The pointer to <a class="el" href="struct_m_q_t_t_client__will_options.html">MQTTClient_willOptions</a> can be set to NULL if the LWT function is not required. </p>
<hr/><h2>Field Documentation</h2>
<a class="anchor" id="aa5326df180cb23c59afbcab711a06479"></a><!-- doxytag: member="MQTTClient_willOptions::struct_id" ref="aa5326df180cb23c59afbcab711a06479" args="[4]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char <a class="el" href="struct_m_q_t_t_client__will_options.html#aa5326df180cb23c59afbcab711a06479">struct_id</a>[4]</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The eyecatcher for this structure. must be MQTW. </p>
</div>
</div>
<a class="anchor" id="a0761a5e5be0383882e42924de8e51f82"></a><!-- doxytag: member="MQTTClient_willOptions::struct_version" ref="a0761a5e5be0383882e42924de8e51f82" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="struct_m_q_t_t_client__will_options.html#a0761a5e5be0383882e42924de8e51f82">struct_version</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The version number of this structure. Must be 0 </p>
</div>
</div>
<a class="anchor" id="ac0aaa2cc04921489bbddaf101f03b961"></a><!-- doxytag: member="MQTTClient_willOptions::topicName" ref="ac0aaa2cc04921489bbddaf101f03b961" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char* <a class="el" href="struct_m_q_t_t_client__will_options.html#ac0aaa2cc04921489bbddaf101f03b961">topicName</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The LWT topic to which the LWT message will be published. </p>
</div>
</div>
<a class="anchor" id="a0b2e8c7f76df48129f994ecc46d5c66c"></a><!-- doxytag: member="MQTTClient_willOptions::message" ref="a0b2e8c7f76df48129f994ecc46d5c66c" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char* <a class="el" href="struct_m_q_t_t_client__will_options.html#a0b2e8c7f76df48129f994ecc46d5c66c">message</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The LWT payload. </p>
</div>
</div>
<a class="anchor" id="a6a4904c112507a43e7dc8495b62cc0fc"></a><!-- doxytag: member="MQTTClient_willOptions::retained" ref="a6a4904c112507a43e7dc8495b62cc0fc" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="struct_m_q_t_t_client__will_options.html#a6a4904c112507a43e7dc8495b62cc0fc">retained</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The retained flag for the LWT message (see <a class="el" href="struct_m_q_t_t_client__message.html#a6a4904c112507a43e7dc8495b62cc0fc">MQTTClient_message.retained</a>). </p>
</div>
</div>
<a class="anchor" id="a35738099155a0e4f54050da474bab2e7"></a><!-- doxytag: member="MQTTClient_willOptions::qos" ref="a35738099155a0e4f54050da474bab2e7" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="struct_m_q_t_t_client__will_options.html#a35738099155a0e4f54050da474bab2e7">qos</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The quality of service setting for the LWT message (see <a class="el" href="struct_m_q_t_t_client__message.html#a35738099155a0e4f54050da474bab2e7">MQTTClient_message.qos</a> and <a class="el" href="qos.html">Quality of service</a>). </p>
</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="_m_q_t_t_client_8h_source.html">MQTTClient.h</a></li>
</ul>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue Jul 3 15:17:14 2012 for MQTT Client by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>
<!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"/>
<title>MQTT Client: Asynchronous subscription example</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.3 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1><a class="anchor" id="subasync">Asynchronous subscription example </a></h1><div class="fragment"><pre class="fragment"><span class="preprocessor">#include &quot;stdio.h&quot;</span>
<span class="preprocessor">#include &quot;stdlib.h&quot;</span>
<span class="preprocessor">#include &quot;string.h&quot;</span>
<span class="preprocessor">#include &quot;<a class="code" href="_m_q_t_t_client_8h.html">MQTTClient.h</a>&quot;</span>
<span class="preprocessor">#define ADDRESS &quot;tcp://localhost:1883&quot;</span>
<span class="preprocessor"></span><span class="preprocessor">#define CLIENTID &quot;ExampleClientSub&quot;</span>
<span class="preprocessor"></span><span class="preprocessor">#define TOPIC &quot;MQTT Examples&quot;</span>
<span class="preprocessor"></span><span class="preprocessor">#define PAYLOAD &quot;Hello World!&quot;</span>
<span class="preprocessor"></span><span class="preprocessor">#define QOS 1</span>
<span class="preprocessor"></span><span class="preprocessor">#define TIMEOUT 10000L</span>
<span class="preprocessor"></span>
<span class="keyword">volatile</span> <a class="code" href="_m_q_t_t_client_8h.html#a73e49030fd8b7074aa1aa45669b7fe8d">MQTTClient_deliveryToken</a> deliveredtoken;
<span class="keywordtype">void</span> delivered(<span class="keywordtype">void</span> *context, <a class="code" href="_m_q_t_t_client_8h.html#a73e49030fd8b7074aa1aa45669b7fe8d">MQTTClient_deliveryToken</a> dt)
{
printf(<span class="stringliteral">&quot;Message with token value %d delivery confirmed\n&quot;</span>, dt);
deliveredtoken = dt;
}
<span class="keywordtype">int</span> msgarrvd(<span class="keywordtype">void</span> *context, <span class="keywordtype">char</span> *topicName, <span class="keywordtype">int</span> topicLen, <a class="code" href="struct_m_q_t_t_client__message.html">MQTTClient_message</a> *message)
{
<span class="keywordtype">int</span> i;
<span class="keywordtype">char</span>* payloadptr;
printf(<span class="stringliteral">&quot;Message arrived\n&quot;</span>);
printf(<span class="stringliteral">&quot; topic: %s\n&quot;</span>, topicName);
printf(<span class="stringliteral">&quot; message: &quot;</span>);
payloadptr = message-&gt;<a class="code" href="struct_m_q_t_t_client__message.html#a9eff55064941fb604452abb0050ea99d">payload</a>;
<span class="keywordflow">for</span>(i=0; i&lt;message-&gt;<a class="code" href="struct_m_q_t_t_client__message.html#aa3cb44feb3ae6d11b3a4cad2d94cb33a">payloadlen</a>; i++)
{
putchar(*payloadptr++);
}
putchar(<span class="charliteral">&#39;\n&#39;</span>);
<a class="code" href="_m_q_t_t_client_8h.html#abd8abde4f39d3e689029de27f7a98a65">MQTTClient_freeMessage</a>(&amp;message);
<a class="code" href="_m_q_t_t_client_8h.html#a203b545c999beb6b825ec99b6aea79ab">MQTTClient_free</a>(topicName);
<span class="keywordflow">return</span> 1;
}
<span class="keywordtype">void</span> connlost(<span class="keywordtype">void</span> *context, <span class="keywordtype">char</span> *cause)
{
printf(<span class="stringliteral">&quot;\nConnection lost\n&quot;</span>);
printf(<span class="stringliteral">&quot; cause: %s\n&quot;</span>, cause);
}
<span class="keywordtype">int</span> main(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>* argv[])
{
<a class="code" href="_m_q_t_t_client_8h.html#a7649e3913f9a216424d296f88a969c59">MQTTClient</a> client;
<a class="code" href="struct_m_q_t_t_client__connect_options.html">MQTTClient_connectOptions</a> conn_opts = <a class="code" href="_m_q_t_t_client_8h.html#aefd7c865f2641c8155b763fdf3061c25">MQTTClient_connectOptions_initializer</a>;
<span class="keywordtype">int</span> rc;
<span class="keywordtype">int</span> ch;
<a class="code" href="_m_q_t_t_client_8h.html#a5cb44bc0e06bcc95a314d51320a0cd1b">MQTTClient_create</a>(&amp;client, ADDRESS, CLIENTID,
<a class="code" href="_m_q_t_t_client_persistence_8h.html#ae01e089313a65ac4661ed216b6ac00fa">MQTTCLIENT_PERSISTENCE_NONE</a>, NULL);
conn_opts.<a class="code" href="struct_m_q_t_t_client__connect_options.html#ac8dd0930672a9c7d71fc645aa1f0521d">keepAliveInterval</a> = 20;
conn_opts.<a class="code" href="struct_m_q_t_t_client__connect_options.html#a036c36a2a4d3a3ffae9ab4dd8b3e7f7b">cleansession</a> = 1;
<a class="code" href="_m_q_t_t_client_8h.html#aad27d07782991a4937ebf2f39a021f83">MQTTClient_setCallbacks</a>(client, NULL, connlost, msgarrvd, delivered);
<span class="keywordflow">if</span> ((rc = <a class="code" href="_m_q_t_t_client_8h.html#aaa8ae61cd65c9dc0846df10122d7bd4e">MQTTClient_connect</a>(client, &amp;conn_opts)) != <a class="code" href="_m_q_t_t_client_8h.html#acba095704d79e5a1996389fa26203f73">MQTTCLIENT_SUCCESS</a>)
{
printf(<span class="stringliteral">&quot;Failed to connect, return code %d\n&quot;</span>, rc);
exit(-1);
}
printf(<span class="stringliteral">&quot;Subscribing to topic %s\nfor client %s using QoS%d\n\n&quot;</span>
<span class="stringliteral">&quot;Press Q&lt;Enter&gt; to quit\n\n&quot;</span>, TOPIC, CLIENTID, QOS);
<a class="code" href="_m_q_t_t_client_8h.html#a326fb0ba7a16613ab7fc861f78232ccf">MQTTClient_subscribe</a>(client, TOPIC, QOS);
<span class="keywordflow">do</span>
{
ch = getchar();
} <span class="keywordflow">while</span>(ch!=<span class="charliteral">&#39;Q&#39;</span> &amp;&amp; ch != <span class="charliteral">&#39;q&#39;</span>);
<a class="code" href="_m_q_t_t_client_8h.html#a1e4d90c13a3c0705bc4a13bfe64e6525">MQTTClient_disconnect</a>(client, 10000);
<a class="code" href="_m_q_t_t_client_8h.html#ae700c3f5cfea3813264ce95e7c8cf498">MQTTClient_destroy</a>(&amp;client);
<span class="keywordflow">return</span> rc;
}
</pre></div> </div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue Jul 3 15:17:14 2012 for MQTT Client by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>
/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */
DIV.tabs
{
float : left;
width : 100%;
background : url("tab_b.gif") repeat-x bottom;
margin-bottom : 4px;
}
DIV.tabs UL
{
margin : 0px;
padding-left : 10px;
list-style : none;
}
DIV.tabs LI, DIV.tabs FORM
{
display : inline;
margin : 0px;
padding : 0px;
}
DIV.tabs FORM
{
float : right;
}
DIV.tabs A
{
float : left;
background : url("tab_r.gif") no-repeat right top;
border-bottom : 1px solid #84B0C7;
font-size : 80%;
font-weight : bold;
text-decoration : none;
}
DIV.tabs A:hover
{
background-position: 100% -150px;
}
DIV.tabs A:link, DIV.tabs A:visited,
DIV.tabs A:active, DIV.tabs A:hover
{
color: #1A419D;
}
DIV.tabs SPAN
{
float : left;
display : block;
background : url("tab_l.gif") no-repeat left top;
padding : 5px 9px;
white-space : nowrap;
}
DIV.tabs #MSearchBox
{
float : right;
display : inline;
font-size : 1em;
}
DIV.tabs TD
{
font-size : 80%;
font-weight : bold;
text-decoration : none;
}
/* Commented Backslash Hack hides rule from IE5-Mac \*/
DIV.tabs SPAN {float : none;}
/* End IE5-Mac hack */
DIV.tabs A:hover SPAN
{
background-position: 0% -150px;
}
DIV.tabs LI.current A
{
background-position: 100% -150px;
border-width : 0px;
}
DIV.tabs LI.current SPAN
{
background-position: 0% -150px;
padding-bottom : 6px;
}
DIV.navpath
{
background : none;
border : none;
border-bottom : 1px solid #84B0C7;
text-align : center;
margin : 2px;
padding : 2px;
}
<!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"/>
<title>MQTT Client: Subscription wildcards</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.3 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1><a class="anchor" id="wildcard">Subscription wildcards </a></h1><p>Every MQTT message includes a topic that classifies it. MQTT servers use topics to determine which subscribers should receive messages published to the server.</p>
<p>Consider the server receiving messages from several environmental sensors. Each sensor publishes its measurement data as a message with an associated topic. Subscribing applications need to know which sensor originally published each received message. A unique topic is thus used to identify each sensor and measurement type. Topics such as SENSOR1TEMP, SENSOR1HUMIDITY, SENSOR2TEMP and so on achieve this but are not very flexible. If additional sensors are added to the system at a later date, subscribing applications must be modified to receive them.</p>
<p>To provide more flexibility, MQTT supports a hierarchical topic namespace. This allows application designers to organize topics to simplify their management. Levels in the hierarchy are delimited by the '/' character, such as SENSOR/1/HUMIDITY. Publishers and subscribers use these hierarchical topics as already described.</p>
<p>For subscriptions, two wildcard characters are supported: </p>
<ul>
<li>
A '#' character represents a complete sub-tree of the hierarchy and thus must be the last character in a subscription topic string, such as SENSOR/#. This will match any topic starting with SENSOR/, such as SENSOR/1/TEMP and SENSOR/2/HUMIDITY. </li>
<li>
A '+' character represents a single level of the hierarchy and is used between delimiters. For example, SENSOR/+/TEMP will match SENSOR/1/TEMP and SENSOR/2/TEMP. </li>
</ul>
<p>Publishers are not allowed to use the wildcard characters in their topic names.</p>
<p>Deciding on your topic hierarchy is an important step in your system design. </p>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Tue Jul 3 15:17:14 2012 for MQTT Client by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>
......@@ -9,7 +9,7 @@
* Contributors:
* Ian Craggs - initial API and implementation and/or initial documentation
* Ian Craggs - bug 384016 - segv setting will message
* Ian Craggs - bug 384053 - stop MQTTClient_receive on socket error
* Ian Craggs - bug 384053 - v1.0.0.7 - stop MQTTClient_receive on socket error
*******************************************************************************/
#include <stdlib.h>
......@@ -32,7 +32,7 @@
#define URI_TCP "tcp://"
#define BUILD_TIMESTAMP __DATE__ " " __TIME__ /* __TIMESTAMP__ */
#define CLIENT_VERSION "1.0.0.6" /* __VERSION__ */
#define CLIENT_VERSION "1.0.0.7" /* __VERSION__ */
char* client_timestamp_eye = "MQTTClientV3_Timestamp " BUILD_TIMESTAMP;
char* client_version_eye = "MQTTClientV3_Version " CLIENT_VERSION;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment