version change and add html doc

This commit is contained in:
Ian Craggs 2012-07-03 15:29:40 +01:00
parent b324196329
commit 7f32b0c4ad
32 changed files with 4457 additions and 2 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,179 @@
<!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.h Source File</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><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<h1>MQTTClient.h</h1><a href="_m_q_t_t_client_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*******************************************************************************</span>
<a name="l00002"></a>00002 <span class="comment"> * Copyright (c) 2009, 2012 IBM Corp.</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * All rights reserved. This program and the accompanying materials</span>
<a name="l00005"></a>00005 <span class="comment"> * are made available under the terms of the Eclipse Public License v1.0</span>
<a name="l00006"></a>00006 <span class="comment"> * which accompanies this distribution, and is available at</span>
<a name="l00007"></a>00007 <span class="comment"> * http://www.eclipse.org/legal/epl-v10.html</span>
<a name="l00008"></a>00008 <span class="comment"> *</span>
<a name="l00009"></a>00009 <span class="comment"> * Contributors:</span>
<a name="l00010"></a>00010 <span class="comment"> * Ian Craggs - initial API and implementation and/or initial documentation</span>
<a name="l00011"></a>00011 <span class="comment"> *******************************************************************************/</span>
<a name="l00012"></a>00012
<a name="l00055"></a>00055
<a name="l00056"></a>00056 <span class="preprocessor">#if !defined(MQTTCLIENT_H)</span>
<a name="l00057"></a>00057 <span class="preprocessor"></span><span class="preprocessor">#define MQTTCLIENT_H</span>
<a name="l00058"></a>00058 <span class="preprocessor"></span>
<a name="l00059"></a>00059 <span class="preprocessor">#if defined(WIN32)</span>
<a name="l00060"></a>00060 <span class="preprocessor"></span><span class="preprocessor"> #define DLLImport __declspec(dllimport)</span>
<a name="l00061"></a>00061 <span class="preprocessor"></span><span class="preprocessor"> #define DLLExport __declspec(dllexport)</span>
<a name="l00062"></a>00062 <span class="preprocessor"></span><span class="preprocessor">#else</span>
<a name="l00063"></a>00063 <span class="preprocessor"></span><span class="preprocessor"> #define DLLImport extern</span>
<a name="l00064"></a>00064 <span class="preprocessor"></span><span class="preprocessor"> #define DLLExport</span>
<a name="l00065"></a>00065 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00066"></a>00066 <span class="preprocessor"></span>
<a name="l00067"></a>00067 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
<a name="l00069"></a>00069
<a name="l00070"></a>00070 <span class="preprocessor">#if !defined(NO_PERSISTENCE)</span>
<a name="l00071"></a>00071 <span class="preprocessor"></span><span class="preprocessor">#include &quot;<a class="code" href="_m_q_t_t_client_persistence_8h.html" title="This structure represents a persistent data store, used to store outbound and inbound...">MQTTClientPersistence.h</a>&quot;</span>
<a name="l00072"></a>00072 <span class="preprocessor">#endif</span>
<a name="l00073"></a>00073 <span class="preprocessor"></span>
<a name="l00078"></a><a class="code" href="_m_q_t_t_client_8h.html#acba095704d79e5a1996389fa26203f73">00078</a> <span class="preprocessor">#define MQTTCLIENT_SUCCESS 0</span>
<a name="l00079"></a>00079 <span class="preprocessor"></span>
<a name="l00083"></a><a class="code" href="_m_q_t_t_client_8h.html#af33a6d6c0e8a6a747bf39638e0bba36b">00083</a> <span class="preprocessor">#define MQTTCLIENT_FAILURE -1</span>
<a name="l00084"></a>00084 <span class="preprocessor"></span>
<a name="l00085"></a>00085 <span class="comment">/* error code -2 is MQTTCLIENT_PERSISTENCE_ERROR */</span>
<a name="l00086"></a>00086
<a name="l00090"></a><a class="code" href="_m_q_t_t_client_8h.html#a561d053311cb492cf7226f419ee0d516">00090</a> <span class="preprocessor">#define MQTTCLIENT_DISCONNECTED -3</span>
<a name="l00091"></a>00091 <span class="preprocessor"></span>
<a name="l00095"></a><a class="code" href="_m_q_t_t_client_8h.html#a8fc442fc2e9dfb422a163ab1fa02e0cb">00095</a> <span class="preprocessor">#define MQTTCLIENT_MAX_MESSAGES_INFLIGHT -4</span>
<a name="l00096"></a>00096 <span class="preprocessor"></span>
<a name="l00099"></a><a class="code" href="_m_q_t_t_client_8h.html#a678a4744192de9c8dca220d9965809dd">00099</a> <span class="preprocessor">#define MQTTCLIENT_BAD_UTF8_STRING -5</span>
<a name="l00100"></a>00100 <span class="preprocessor"></span>
<a name="l00103"></a><a class="code" href="_m_q_t_t_client_8h.html#ac3232abd7f86bbba26faea0e2b132c3c">00103</a> <span class="preprocessor">#define MQTTCLIENT_NULL_PARAMETER -6</span>
<a name="l00104"></a>00104 <span class="preprocessor"></span>
<a name="l00109"></a><a class="code" href="_m_q_t_t_client_8h.html#a29afebfce0bdf6cda1e37abc0c4b6690">00109</a> <span class="preprocessor">#define MQTTCLIENT_TOPICNAME_TRUNCATED -7</span>
<a name="l00110"></a>00110 <span class="preprocessor"></span>
<a name="l00114"></a><a class="code" href="_m_q_t_t_client_8h.html#a747615d8064e3fe024ae5565ec63e1ce">00114</a> <span class="preprocessor">#define MQTTCLIENT_BAD_STRUCTURE -8</span>
<a name="l00115"></a>00115 <span class="preprocessor"></span>
<a name="l00120"></a><a class="code" href="_m_q_t_t_client_8h.html#a7649e3913f9a216424d296f88a969c59">00120</a> <span class="keyword">typedef</span> <span class="keywordtype">void</span>* <a class="code" href="_m_q_t_t_client_8h.html#a7649e3913f9a216424d296f88a969c59">MQTTClient</a>;
<a name="l00131"></a><a class="code" href="_m_q_t_t_client_8h.html#a73e49030fd8b7074aa1aa45669b7fe8d">00131</a> <span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="_m_q_t_t_client_8h.html#a73e49030fd8b7074aa1aa45669b7fe8d">MQTTClient_deliveryToken</a>;
<a name="l00132"></a>00132
<a name="l00139"></a><a class="code" href="struct_m_q_t_t_client__message.html">00139</a> <span class="keyword">typedef</span> <span class="keyword">struct</span>
<a name="l00140"></a>00140 {
<a name="l00142"></a><a class="code" href="struct_m_q_t_t_client__message.html#aa5326df180cb23c59afbcab711a06479">00142</a> <span class="keywordtype">char</span> struct_id[4];
<a name="l00144"></a><a class="code" href="struct_m_q_t_t_client__message.html#a0761a5e5be0383882e42924de8e51f82">00144</a> <span class="keywordtype">int</span> struct_version;
<a name="l00146"></a><a class="code" href="struct_m_q_t_t_client__message.html#aa3cb44feb3ae6d11b3a4cad2d94cb33a">00146</a> <span class="keywordtype">int</span> payloadlen;
<a name="l00148"></a><a class="code" href="struct_m_q_t_t_client__message.html#a9eff55064941fb604452abb0050ea99d">00148</a> <span class="keywordtype">void</span>* payload;
<a name="l00162"></a><a class="code" href="struct_m_q_t_t_client__message.html#a35738099155a0e4f54050da474bab2e7">00162</a> <span class="keywordtype">int</span> qos;
<a name="l00181"></a><a class="code" href="struct_m_q_t_t_client__message.html#a6a4904c112507a43e7dc8495b62cc0fc">00181</a> <span class="keywordtype">int</span> retained;
<a name="l00188"></a><a class="code" href="struct_m_q_t_t_client__message.html#adc4cf3f551bb367858644559d69cfdf5">00188</a> <span class="keywordtype">int</span> dup;
<a name="l00192"></a><a class="code" href="struct_m_q_t_t_client__message.html#a6174c42da8c55c86e7255be2848dc4ac">00192</a> <span class="keywordtype">int</span> msgid;
<a name="l00193"></a>00193 } <a class="code" href="struct_m_q_t_t_client__message.html">MQTTClient_message</a>;
<a name="l00194"></a>00194
<a name="l00195"></a><a class="code" href="_m_q_t_t_client_8h.html#aa1fd995924d3df75959fcf57e87aefac">00195</a> <span class="preprocessor">#define MQTTClient_message_initializer { &quot;MQTM&quot;, 0, 0, NULL, 0, 0, 0, 0 }</span>
<a name="l00196"></a>00196 <span class="preprocessor"></span>
<a name="l00223"></a><a class="code" href="_m_q_t_t_client_8h.html#aa42130dd069e7e949bcab37b6dce64a5">00223</a> <span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="_m_q_t_t_client_8h.html#aa42130dd069e7e949bcab37b6dce64a5">MQTTClient_messageArrived</a>(<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);
<a name="l00224"></a>00224
<a name="l00245"></a><a class="code" href="_m_q_t_t_client_8h.html#abef83794d8252551ed248cde6eb845a6">00245</a> <span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code" href="_m_q_t_t_client_8h.html#abef83794d8252551ed248cde6eb845a6">MQTTClient_deliveryComplete</a>(<span class="keywordtype">void</span>* context, <a class="code" href="_m_q_t_t_client_8h.html#a73e49030fd8b7074aa1aa45669b7fe8d">MQTTClient_deliveryToken</a> dt);
<a name="l00246"></a>00246
<a name="l00262"></a><a class="code" href="_m_q_t_t_client_8h.html#a6bb253f16754e7cc81798c9fda0e36cf">00262</a> <span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code" href="_m_q_t_t_client_8h.html#a6bb253f16754e7cc81798c9fda0e36cf">MQTTClient_connectionLost</a>(<span class="keywordtype">void</span>* context, <span class="keywordtype">char</span>* cause);
<a name="l00263"></a>00263
<a name="l00264"></a>00264
<a name="l00292"></a>00292 DLLExport <span class="keywordtype">int</span> <a class="code" href="_m_q_t_t_client_8h.html#aad27d07782991a4937ebf2f39a021f83">MQTTClient_setCallbacks</a>(<a class="code" href="_m_q_t_t_client_8h.html#a7649e3913f9a216424d296f88a969c59">MQTTClient</a> handle, <span class="keywordtype">void</span>* context, <a class="code" href="_m_q_t_t_client_8h.html#a6bb253f16754e7cc81798c9fda0e36cf">MQTTClient_connectionLost</a>* cl,
<a name="l00293"></a>00293 <a class="code" href="_m_q_t_t_client_8h.html#aa42130dd069e7e949bcab37b6dce64a5">MQTTClient_messageArrived</a>* ma, <a class="code" href="_m_q_t_t_client_8h.html#abef83794d8252551ed248cde6eb845a6">MQTTClient_deliveryComplete</a>* dc);
<a name="l00294"></a>00294
<a name="l00338"></a>00338 DLLExport <span class="keywordtype">int</span> <a class="code" href="_m_q_t_t_client_8h.html#a5cb44bc0e06bcc95a314d51320a0cd1b">MQTTClient_create</a>(<a class="code" href="_m_q_t_t_client_8h.html#a7649e3913f9a216424d296f88a969c59">MQTTClient</a>* handle, <span class="keywordtype">char</span>* serverURI, <span class="keywordtype">char</span>* clientId,
<a name="l00339"></a>00339 <span class="keywordtype">int</span> persistence_type, <span class="keywordtype">void</span>* persistence_context);
<a name="l00340"></a>00340
<a name="l00353"></a><a class="code" href="struct_m_q_t_t_client__will_options.html">00353</a> <span class="keyword">typedef</span> <span class="keyword">struct</span>
<a name="l00354"></a>00354 {
<a name="l00356"></a><a class="code" href="struct_m_q_t_t_client__will_options.html#aa5326df180cb23c59afbcab711a06479">00356</a> <span class="keywordtype">char</span> struct_id[4];
<a name="l00358"></a><a class="code" href="struct_m_q_t_t_client__will_options.html#a0761a5e5be0383882e42924de8e51f82">00358</a> <span class="keywordtype">int</span> struct_version;
<a name="l00360"></a><a class="code" href="struct_m_q_t_t_client__will_options.html#ac0aaa2cc04921489bbddaf101f03b961">00360</a> <span class="keywordtype">char</span>* topicName;
<a name="l00362"></a><a class="code" href="struct_m_q_t_t_client__will_options.html#a0b2e8c7f76df48129f994ecc46d5c66c">00362</a> <span class="keywordtype">char</span>* message;
<a name="l00366"></a><a class="code" href="struct_m_q_t_t_client__will_options.html#a6a4904c112507a43e7dc8495b62cc0fc">00366</a> <span class="keywordtype">int</span> retained;
<a name="l00371"></a><a class="code" href="struct_m_q_t_t_client__will_options.html#a35738099155a0e4f54050da474bab2e7">00371</a> <span class="keywordtype">int</span> qos;
<a name="l00372"></a>00372 } <a class="code" href="struct_m_q_t_t_client__will_options.html">MQTTClient_willOptions</a>;
<a name="l00373"></a>00373
<a name="l00374"></a><a class="code" href="_m_q_t_t_client_8h.html#aae0811659c59f5dad0467544f91645eb">00374</a> <span class="preprocessor">#define MQTTClient_willOptions_initializer { &quot;MQTW&quot;, 0, NULL, NULL, 0, 0 }</span>
<a name="l00375"></a>00375 <span class="preprocessor"></span>
<a name="l00390"></a><a class="code" href="struct_m_q_t_t_client__connect_options.html">00390</a> <span class="keyword">typedef</span> <span class="keyword">struct</span>
<a name="l00391"></a>00391 {
<a name="l00393"></a><a class="code" href="struct_m_q_t_t_client__connect_options.html#aa5326df180cb23c59afbcab711a06479">00393</a> <span class="keywordtype">char</span> struct_id[4];
<a name="l00395"></a><a class="code" href="struct_m_q_t_t_client__connect_options.html#a0761a5e5be0383882e42924de8e51f82">00395</a> <span class="keywordtype">int</span> struct_version;
<a name="l00405"></a><a class="code" href="struct_m_q_t_t_client__connect_options.html#ac8dd0930672a9c7d71fc645aa1f0521d">00405</a> <span class="keywordtype">int</span> keepAliveInterval;
<a name="l00427"></a><a class="code" href="struct_m_q_t_t_client__connect_options.html#a036c36a2a4d3a3ffae9ab4dd8b3e7f7b">00427</a> <span class="keywordtype">int</span> cleansession;
<a name="l00437"></a><a class="code" href="struct_m_q_t_t_client__connect_options.html#a9f1cdffc99659fd4e2d20e6de3c64df0">00437</a> <span class="keywordtype">int</span> reliable;
<a name="l00443"></a><a class="code" href="struct_m_q_t_t_client__connect_options.html#a0a880e99d47eb2efe552abe5079bdc9d">00443</a> <a class="code" href="struct_m_q_t_t_client__will_options.html">MQTTClient_willOptions</a>* will;
<a name="l00449"></a><a class="code" href="struct_m_q_t_t_client__connect_options.html#a9b20c006bd90a09e1465fb668700e81d">00449</a> <span class="keywordtype">char</span>* username;
<a name="l00455"></a><a class="code" href="struct_m_q_t_t_client__connect_options.html#a59460a3ff2c12443d1022e5cc0fba85c">00455</a> <span class="keywordtype">char</span>* password;
<a name="l00459"></a><a class="code" href="struct_m_q_t_t_client__connect_options.html#a38c6aa24b36d981c49405db425c24db0">00459</a> <span class="keywordtype">int</span> connectTimeout;
<a name="l00463"></a><a class="code" href="struct_m_q_t_t_client__connect_options.html#ac73f57846c42bcaa9a47e6721a957748">00463</a> <span class="keywordtype">int</span> retryInterval;
<a name="l00464"></a>00464 } <a class="code" href="struct_m_q_t_t_client__connect_options.html">MQTTClient_connectOptions</a>;
<a name="l00465"></a>00465
<a name="l00466"></a><a class="code" href="_m_q_t_t_client_8h.html#aefd7c865f2641c8155b763fdf3061c25">00466</a> <span class="preprocessor">#define MQTTClient_connectOptions_initializer { &quot;MQTC&quot;, 0, 60, 1, 1, NULL, NULL, NULL, 30, 20 }</span>
<a name="l00467"></a>00467 <span class="preprocessor"></span>
<a name="l00488"></a>00488 DLLExport <span class="keywordtype">int</span> <a class="code" href="_m_q_t_t_client_8h.html#aaa8ae61cd65c9dc0846df10122d7bd4e">MQTTClient_connect</a>(<a class="code" href="_m_q_t_t_client_8h.html#a7649e3913f9a216424d296f88a969c59">MQTTClient</a> handle, <a class="code" href="struct_m_q_t_t_client__connect_options.html">MQTTClient_connectOptions</a>* options);
<a name="l00489"></a>00489
<a name="l00508"></a>00508 DLLExport <span class="keywordtype">int</span> <a class="code" href="_m_q_t_t_client_8h.html#a1e4d90c13a3c0705bc4a13bfe64e6525">MQTTClient_disconnect</a>(<a class="code" href="_m_q_t_t_client_8h.html#a7649e3913f9a216424d296f88a969c59">MQTTClient</a> handle, <span class="keywordtype">int</span> timeout);
<a name="l00509"></a>00509
<a name="l00517"></a>00517 DLLExport <span class="keywordtype">int</span> <a class="code" href="_m_q_t_t_client_8h.html#a6e8231e8c47f6f67f7ebbb5dcb4c69c0">MQTTClient_isConnected</a>(<a class="code" href="_m_q_t_t_client_8h.html#a7649e3913f9a216424d296f88a969c59">MQTTClient</a> handle);
<a name="l00518"></a>00518
<a name="l00519"></a>00519
<a name="l00520"></a>00520 <span class="comment">/* Subscribe is synchronous. QoS list parameter is changed on return to granted QoSs.</span>
<a name="l00521"></a>00521 <span class="comment"> Returns return code, MQTTCLIENT_SUCCESS == success, non-zero some sort of error (TBD) */</span>
<a name="l00522"></a>00522
<a name="l00536"></a>00536 DLLExport <span class="keywordtype">int</span> <a class="code" href="_m_q_t_t_client_8h.html#a326fb0ba7a16613ab7fc861f78232ccf">MQTTClient_subscribe</a>(<a class="code" href="_m_q_t_t_client_8h.html#a7649e3913f9a216424d296f88a969c59">MQTTClient</a> handle, <span class="keywordtype">char</span>* topic, <span class="keywordtype">int</span> qos);
<a name="l00537"></a>00537
<a name="l00554"></a>00554 DLLExport <span class="keywordtype">int</span> <a class="code" href="_m_q_t_t_client_8h.html#ad125c07aad06ca085b5fff40c333b533">MQTTClient_subscribeMany</a>(<a class="code" href="_m_q_t_t_client_8h.html#a7649e3913f9a216424d296f88a969c59">MQTTClient</a> handle, <span class="keywordtype">int</span> count, <span class="keywordtype">char</span>** topic, <span class="keywordtype">int</span>* qos);
<a name="l00555"></a>00555
<a name="l00567"></a>00567 DLLExport <span class="keywordtype">int</span> <a class="code" href="_m_q_t_t_client_8h.html#adc79908187e9dd8d96ddc9536aa9d0c7">MQTTClient_unsubscribe</a>(<a class="code" href="_m_q_t_t_client_8h.html#a7649e3913f9a216424d296f88a969c59">MQTTClient</a> handle, <span class="keywordtype">char</span>* topic);
<a name="l00568"></a>00568
<a name="l00580"></a>00580 DLLExport <span class="keywordtype">int</span> <a class="code" href="_m_q_t_t_client_8h.html#a4966145fdc008afc6aa90d7030f73b51">MQTTClient_unsubscribeMany</a>(<a class="code" href="_m_q_t_t_client_8h.html#a7649e3913f9a216424d296f88a969c59">MQTTClient</a> handle, <span class="keywordtype">int</span> count, <span class="keywordtype">char</span>** topic);
<a name="l00581"></a>00581
<a name="l00603"></a>00603 DLLExport <span class="keywordtype">int</span> <a class="code" href="_m_q_t_t_client_8h.html#aa061f83fbed3a23177cca8714780ffbd">MQTTClient_publish</a>(<a class="code" href="_m_q_t_t_client_8h.html#a7649e3913f9a216424d296f88a969c59">MQTTClient</a> handle, <span class="keywordtype">char</span>* topicName, <span class="keywordtype">int</span> payloadlen, <span class="keywordtype">void</span>* payload, <span class="keywordtype">int</span> qos, <span class="keywordtype">int</span> retained,
<a name="l00604"></a>00604 <a class="code" href="_m_q_t_t_client_8h.html#a73e49030fd8b7074aa1aa45669b7fe8d">MQTTClient_deliveryToken</a>* dt);
<a name="l00605"></a>00605
<a name="l00625"></a>00625 DLLExport <span class="keywordtype">int</span> <a class="code" href="_m_q_t_t_client_8h.html#a288d6c8d4919f06e991be2435f649676">MQTTClient_publishMessage</a>(<a class="code" href="_m_q_t_t_client_8h.html#a7649e3913f9a216424d296f88a969c59">MQTTClient</a> handle, <span class="keywordtype">char</span>* topicName, <a class="code" href="struct_m_q_t_t_client__message.html">MQTTClient_message</a>* msg, <a class="code" href="_m_q_t_t_client_8h.html#a73e49030fd8b7074aa1aa45669b7fe8d">MQTTClient_deliveryToken</a>* dt);
<a name="l00626"></a>00626
<a name="l00627"></a>00627
<a name="l00643"></a>00643 DLLExport <span class="keywordtype">int</span> <a class="code" href="_m_q_t_t_client_8h.html#a83807ec81fe8c3941e368ab329d43067">MQTTClient_waitForCompletion</a>(<a class="code" href="_m_q_t_t_client_8h.html#a7649e3913f9a216424d296f88a969c59">MQTTClient</a> handle, <a class="code" href="_m_q_t_t_client_8h.html#a73e49030fd8b7074aa1aa45669b7fe8d">MQTTClient_deliveryToken</a> dt, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> timeout);
<a name="l00644"></a>00644
<a name="l00645"></a>00645
<a name="l00664"></a>00664 DLLExport <span class="keywordtype">int</span> <a class="code" href="_m_q_t_t_client_8h.html#a2a617c6b0492c04a4ddea592f5e53604">MQTTClient_getPendingDeliveryTokens</a>(<a class="code" href="_m_q_t_t_client_8h.html#a7649e3913f9a216424d296f88a969c59">MQTTClient</a> handle, <a class="code" href="_m_q_t_t_client_8h.html#a73e49030fd8b7074aa1aa45669b7fe8d">MQTTClient_deliveryToken</a> **tokens);
<a name="l00665"></a>00665
<a name="l00672"></a>00672 DLLExport <span class="keywordtype">void</span> <a class="code" href="_m_q_t_t_client_8h.html#a8ad3d29864a9ca08202b0832e0f6678e">MQTTClient_yield</a>(<span class="keywordtype">void</span>);
<a name="l00673"></a>00673
<a name="l00705"></a>00705 DLLExport <span class="keywordtype">int</span> <a class="code" href="_m_q_t_t_client_8h.html#a4c2df88d00a3dadd510a8cb774739366">MQTTClient_receive</a>(<a class="code" href="_m_q_t_t_client_8h.html#a7649e3913f9a216424d296f88a969c59">MQTTClient</a> handle, <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,
<a name="l00706"></a>00706 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> timeout);
<a name="l00707"></a>00707
<a name="l00718"></a>00718 DLLExport <span class="keywordtype">void</span> <a class="code" href="_m_q_t_t_client_8h.html#abd8abde4f39d3e689029de27f7a98a65">MQTTClient_freeMessage</a>(<a class="code" href="struct_m_q_t_t_client__message.html">MQTTClient_message</a>** msg);
<a name="l00719"></a>00719
<a name="l00728"></a>00728 DLLExport <span class="keywordtype">void</span> <a class="code" href="_m_q_t_t_client_8h.html#a203b545c999beb6b825ec99b6aea79ab">MQTTClient_free</a>(<span class="keywordtype">void</span>* ptr);
<a name="l00729"></a>00729
<a name="l00737"></a>00737 DLLExport <span class="keywordtype">void</span> <a class="code" href="_m_q_t_t_client_8h.html#ae700c3f5cfea3813264ce95e7c8cf498">MQTTClient_destroy</a>(<a class="code" href="_m_q_t_t_client_8h.html#a7649e3913f9a216424d296f88a969c59">MQTTClient</a>* handle);
<a name="l00738"></a>00738
<a name="l00739"></a>00739 <span class="preprocessor">#endif</span>
<a name="l00740"></a>00740 <span class="preprocessor"></span>
</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>

View File

@ -0,0 +1,322 @@
<!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: MQTTClientPersistence.h File 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><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><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>MQTTClientPersistence.h File Reference</h1>
<p>This structure represents a persistent data store, used to store outbound and inbound messages, in order to achieve reliable messaging.
<a href="#_details">More...</a></p>
<p><a href="_m_q_t_t_client_persistence_8h_source.html">Go to the source code of this file.</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Data Structures</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_m_q_t_t_client__persistence.html">MQTTClient_persistence</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A structure containing the function pointers to a persistence implementation and the context or state that will be shared across all the persistence functions. <a href="struct_m_q_t_t_client__persistence.html#_details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_m_q_t_t_client_persistence_8h.html#aaa948291718a9c06369b854b0f64bc32">MQTTCLIENT_PERSISTENCE_DEFAULT</a>&nbsp;&nbsp;&nbsp;0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_m_q_t_t_client_persistence_8h.html#ae01e089313a65ac4661ed216b6ac00fa">MQTTCLIENT_PERSISTENCE_NONE</a>&nbsp;&nbsp;&nbsp;1</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_m_q_t_t_client_persistence_8h.html#a5dc68b8616e4041e037bad94ce07681b">MQTTCLIENT_PERSISTENCE_USER</a>&nbsp;&nbsp;&nbsp;2</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_m_q_t_t_client_persistence_8h.html#ab716e21e53c84a5ad62aa962a2a8f7db">MQTTCLIENT_PERSISTENCE_ERROR</a>&nbsp;&nbsp;&nbsp;-2</td></tr>
<tr><td colspan="2"><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_m_q_t_t_client_persistence_8h.html#a3c418c1cb963a76d9fae5c3219eeb8ce">Persistence_open</a> )(void **handle, char *clientID, char *serverURI, void *context)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize the persistent store. <a href="#a3c418c1cb963a76d9fae5c3219eeb8ce"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_m_q_t_t_client_persistence_8h.html#a23648571a3f4cd47ef18fdb821a990a4">Persistence_close</a> )(void *handle)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Close the persistent store referred to by the handle. <a href="#a23648571a3f4cd47ef18fdb821a990a4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_m_q_t_t_client_persistence_8h.html#a0b95acfdfff547e3a539f229b1cf6e41">Persistence_put</a> )(void *handle, char *key, int bufcount, char *buffers[], int buflens[])</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Put the specified data into the persistent store. <a href="#a0b95acfdfff547e3a539f229b1cf6e41"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_m_q_t_t_client_persistence_8h.html#a4fd91e00c8fc2ddff4b4d54e9c5a1d48">Persistence_get</a> )(void *handle, char *key, char **buffer, int *buflen)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve the specified data from the persistent store. <a href="#a4fd91e00c8fc2ddff4b4d54e9c5a1d48"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_m_q_t_t_client_persistence_8h.html#adfeea3989b64d626003086636f6585de">Persistence_remove</a> )(void *handle, char *key)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove the data for the specified key from the store. <a href="#adfeea3989b64d626003086636f6585de"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_m_q_t_t_client_persistence_8h.html#ad6295da2bee2a65722a9e0c1e12474c2">Persistence_keys</a> )(void *handle, char ***keys, int *nkeys)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the keys in this persistent data store. <a href="#ad6295da2bee2a65722a9e0c1e12474c2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_m_q_t_t_client_persistence_8h.html#a40523890e58ebe47bd34db6a6d1b47d1">Persistence_clear</a> )(void *handle)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clears the persistence store, so that it no longer contains any persisted data. <a href="#a40523890e58ebe47bd34db6a6d1b47d1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="_m_q_t_t_client_persistence_8h.html#ad92081c4da5e242934f0b13c0279d0af">Persistence_containskey</a> )(void *handle, char *key)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns whether any data has been persisted using the specified key. <a href="#ad92081c4da5e242934f0b13c0279d0af"></a><br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>This structure represents a persistent data store, used to store outbound and inbound messages, in order to achieve reliable messaging. </p>
<p>The MQTT Client persists QoS1 and QoS2 messages in order to meet the assurances of delivery associated with these <a class="el" href="qos.html">Quality of service</a> levels. The messages are saved in persistent storage The type and context of the persistence implementation are specified when the MQTT client is created (see <a class="el" href="_m_q_t_t_client_8h.html#a5cb44bc0e06bcc95a314d51320a0cd1b">MQTTClient_create()</a>). The default persistence type (<a class="el" href="_m_q_t_t_client_persistence_8h.html#aaa948291718a9c06369b854b0f64bc32">MQTTCLIENT_PERSISTENCE_DEFAULT</a>) uses a file system-based persistence mechanism. The <em>persistence_context</em> argument passed to <a class="el" href="_m_q_t_t_client_8h.html#a5cb44bc0e06bcc95a314d51320a0cd1b">MQTTClient_create()</a> when using the default peristence is a string representing the location of the persistence directory. If the context argument is NULL, the working directory will be used.</p>
<p>To use memory-based persistence, an application passes <a class="el" href="_m_q_t_t_client_persistence_8h.html#ae01e089313a65ac4661ed216b6ac00fa">MQTTCLIENT_PERSISTENCE_NONE</a> as the <em>persistence_type</em> to <a class="el" href="_m_q_t_t_client_8h.html#a5cb44bc0e06bcc95a314d51320a0cd1b">MQTTClient_create()</a>. This can lead to message loss in certain situations, but can be appropriate in some cases (see <a class="el" href="qos.html">Quality of service</a>).</p>
<p>Client applications can provide their own persistence mechanism by passing <a class="el" href="_m_q_t_t_client_persistence_8h.html#a5dc68b8616e4041e037bad94ce07681b">MQTTCLIENT_PERSISTENCE_USER</a> as the <em>persistence_type</em>. To implement a custom persistence mechanism, the application must pass an initialized <a class="el" href="struct_m_q_t_t_client__persistence.html" title="A structure containing the function pointers to a persistence implementation and...">MQTTClient_persistence</a> structure as the <em>persistence_context</em> argument to <a class="el" href="_m_q_t_t_client_8h.html#a5cb44bc0e06bcc95a314d51320a0cd1b">MQTTClient_create()</a>.</p>
<p>If the functions defined return an <a class="el" href="_m_q_t_t_client_persistence_8h.html#ab716e21e53c84a5ad62aa962a2a8f7db">MQTTCLIENT_PERSISTENCE_ERROR</a> then the state of the persisted data should remain as it was prior to the function being called. For example, if <a class="el" href="_m_q_t_t_client_persistence_8h.html#a0b95acfdfff547e3a539f229b1cf6e41" title="Put the specified data into the persistent store.">Persistence_put()</a> returns <a class="el" href="_m_q_t_t_client_persistence_8h.html#ab716e21e53c84a5ad62aa962a2a8f7db">MQTTCLIENT_PERSISTENCE_ERROR</a>, then it is assumed tha tthe persistent store does not contain the data that was passed to the function. Similarly, if <a class="el" href="_m_q_t_t_client_persistence_8h.html#adfeea3989b64d626003086636f6585de" title="Remove the data for the specified key from the store.">Persistence_remove()</a> returns <a class="el" href="_m_q_t_t_client_persistence_8h.html#ab716e21e53c84a5ad62aa962a2a8f7db">MQTTCLIENT_PERSISTENCE_ERROR</a> then it is assumed that the data to be removed is still held in the persistent store.</p>
<p>It is up to the persistence implementation to log any error information that may be required to diagnose a persistence mechanism failure. </p>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="aaa948291718a9c06369b854b0f64bc32"></a><!-- doxytag: member="MQTTClientPersistence.h::MQTTCLIENT_PERSISTENCE_DEFAULT" ref="aaa948291718a9c06369b854b0f64bc32" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MQTTCLIENT_PERSISTENCE_DEFAULT&nbsp;&nbsp;&nbsp;0</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>This <em>persistence_type</em> value specifies the default file system-based persistence mechanism (see <a class="el" href="_m_q_t_t_client_8h.html#a5cb44bc0e06bcc95a314d51320a0cd1b">MQTTClient_create()</a>). </p>
</div>
</div>
<a class="anchor" id="ae01e089313a65ac4661ed216b6ac00fa"></a><!-- doxytag: member="MQTTClientPersistence.h::MQTTCLIENT_PERSISTENCE_NONE" ref="ae01e089313a65ac4661ed216b6ac00fa" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MQTTCLIENT_PERSISTENCE_NONE&nbsp;&nbsp;&nbsp;1</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>This <em>persistence_type</em> value specifies a memory-based persistence mechanism (see <a class="el" href="_m_q_t_t_client_8h.html#a5cb44bc0e06bcc95a314d51320a0cd1b">MQTTClient_create()</a>). </p>
</div>
</div>
<a class="anchor" id="a5dc68b8616e4041e037bad94ce07681b"></a><!-- doxytag: member="MQTTClientPersistence.h::MQTTCLIENT_PERSISTENCE_USER" ref="a5dc68b8616e4041e037bad94ce07681b" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MQTTCLIENT_PERSISTENCE_USER&nbsp;&nbsp;&nbsp;2</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>This <em>persistence_type</em> value specifies an application-specific persistence mechanism (see <a class="el" href="_m_q_t_t_client_8h.html#a5cb44bc0e06bcc95a314d51320a0cd1b">MQTTClient_create()</a>). </p>
</div>
</div>
<a class="anchor" id="ab716e21e53c84a5ad62aa962a2a8f7db"></a><!-- doxytag: member="MQTTClientPersistence.h::MQTTCLIENT_PERSISTENCE_ERROR" ref="ab716e21e53c84a5ad62aa962a2a8f7db" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MQTTCLIENT_PERSISTENCE_ERROR&nbsp;&nbsp;&nbsp;-2</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Application-specific persistence functions must return this error code if there is a problem executing the function. </p>
</div>
</div>
<hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="a3c418c1cb963a76d9fae5c3219eeb8ce"></a><!-- doxytag: member="MQTTClientPersistence.h::Persistence_open" ref="a3c418c1cb963a76d9fae5c3219eeb8ce" args=")(void **handle, char *clientID, char *serverURI, void *context)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int(* <a class="el" href="_m_q_t_t_client_persistence_8h.html#a3c418c1cb963a76d9fae5c3219eeb8ce">Persistence_open</a>)(void **handle, char *clientID, char *serverURI, void *context)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Initialize the persistent store. </p>
<p>Either open the existing persistent store for this client ID or create a new one if one doesn't exist. If the persistent store is already open, return without taking any action.</p>
<p>An application can use the same client identifier to connect to many different servers. The <em>clientid</em> in conjunction with the <em>serverURI</em> uniquely identifies the persistence store required.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>handle</em>&nbsp;</td><td>The address of a pointer to a handle for this persistence implementation. This function must set handle to a valid reference to the persistence following a successful return. The handle pointer is passed as an argument to all the other persistence functions. It may include the context parameter and/or any other data for use by the persistence functions. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>clientID</em>&nbsp;</td><td>The client identifier for which the persistent store should be opened. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>serverURI</em>&nbsp;</td><td>The connection string specified when the MQTT client was created (see <a class="el" href="_m_q_t_t_client_8h.html#a5cb44bc0e06bcc95a314d51320a0cd1b">MQTTClient_create()</a>). </td></tr>
<tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>A pointer to any data required to initialize the persistent store (see <a class="el" href="struct_m_q_t_t_client__persistence.html" title="A structure containing the function pointers to a persistence implementation and...">MQTTClient_persistence</a>). </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Return 0 if the function completes successfully, otherwise return <a class="el" href="_m_q_t_t_client_persistence_8h.html#ab716e21e53c84a5ad62aa962a2a8f7db">MQTTCLIENT_PERSISTENCE_ERROR</a>. </dd></dl>
</div>
</div>
<a class="anchor" id="a23648571a3f4cd47ef18fdb821a990a4"></a><!-- doxytag: member="MQTTClientPersistence.h::Persistence_close" ref="a23648571a3f4cd47ef18fdb821a990a4" args=")(void *handle)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int(* <a class="el" href="_m_q_t_t_client_persistence_8h.html#a23648571a3f4cd47ef18fdb821a990a4">Persistence_close</a>)(void *handle)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Close the persistent store referred to by the handle. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>handle</em>&nbsp;</td><td>The handle pointer from a successful call to <a class="el" href="_m_q_t_t_client_persistence_8h.html#a3c418c1cb963a76d9fae5c3219eeb8ce" title="Initialize the persistent store.">Persistence_open()</a>. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Return 0 if the function completes successfully, otherwise return <a class="el" href="_m_q_t_t_client_persistence_8h.html#ab716e21e53c84a5ad62aa962a2a8f7db">MQTTCLIENT_PERSISTENCE_ERROR</a>. </dd></dl>
</div>
</div>
<a class="anchor" id="a0b95acfdfff547e3a539f229b1cf6e41"></a><!-- doxytag: member="MQTTClientPersistence.h::Persistence_put" ref="a0b95acfdfff547e3a539f229b1cf6e41" args=")(void *handle, char *key, int bufcount, char *buffers[], int buflens[])" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int(* <a class="el" href="_m_q_t_t_client_persistence_8h.html#a0b95acfdfff547e3a539f229b1cf6e41">Persistence_put</a>)(void *handle, char *key, int bufcount, char *buffers[], int buflens[])</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Put the specified data into the persistent store. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>handle</em>&nbsp;</td><td>The handle pointer from a successful call to <a class="el" href="_m_q_t_t_client_persistence_8h.html#a3c418c1cb963a76d9fae5c3219eeb8ce" title="Initialize the persistent store.">Persistence_open()</a>. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>A string used as the key for the data to be put in the store. The key is later used to retrieve data from the store with <a class="el" href="_m_q_t_t_client_persistence_8h.html#a4fd91e00c8fc2ddff4b4d54e9c5a1d48" title="Retrieve the specified data from the persistent store.">Persistence_get()</a>. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>bufcount</em>&nbsp;</td><td>The number of buffers to write to the persistence store. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>buffers</em>&nbsp;</td><td>An array of pointers to the data buffers associated with this <em>key</em>. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>buflens</em>&nbsp;</td><td>An array of lengths of the data buffers. <em>buflen[n]</em> gives the length of <em>buffer[n]</em>. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Return 0 if the function completes successfully, otherwise return <a class="el" href="_m_q_t_t_client_persistence_8h.html#ab716e21e53c84a5ad62aa962a2a8f7db">MQTTCLIENT_PERSISTENCE_ERROR</a>. </dd></dl>
</div>
</div>
<a class="anchor" id="a4fd91e00c8fc2ddff4b4d54e9c5a1d48"></a><!-- doxytag: member="MQTTClientPersistence.h::Persistence_get" ref="a4fd91e00c8fc2ddff4b4d54e9c5a1d48" args=")(void *handle, char *key, char **buffer, int *buflen)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int(* <a class="el" href="_m_q_t_t_client_persistence_8h.html#a4fd91e00c8fc2ddff4b4d54e9c5a1d48">Persistence_get</a>)(void *handle, char *key, char **buffer, int *buflen)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Retrieve the specified data from the persistent store. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>handle</em>&nbsp;</td><td>The handle pointer from a successful call to <a class="el" href="_m_q_t_t_client_persistence_8h.html#a3c418c1cb963a76d9fae5c3219eeb8ce" title="Initialize the persistent store.">Persistence_open()</a>. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>A string that is the key for the data to be retrieved. This is the same key used to save the data to the store with <a class="el" href="_m_q_t_t_client_persistence_8h.html#a0b95acfdfff547e3a539f229b1cf6e41" title="Put the specified data into the persistent store.">Persistence_put()</a>. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>buffer</em>&nbsp;</td><td>The address of a pointer to a buffer. This function sets the pointer to point at the retrieved data, if successful. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>buflen</em>&nbsp;</td><td>The address of an int that is set to the length of <em>buffer</em> by this function if successful. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Return 0 if the function completes successfully, otherwise return <a class="el" href="_m_q_t_t_client_persistence_8h.html#ab716e21e53c84a5ad62aa962a2a8f7db">MQTTCLIENT_PERSISTENCE_ERROR</a>. </dd></dl>
</div>
</div>
<a class="anchor" id="adfeea3989b64d626003086636f6585de"></a><!-- doxytag: member="MQTTClientPersistence.h::Persistence_remove" ref="adfeea3989b64d626003086636f6585de" args=")(void *handle, char *key)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int(* <a class="el" href="_m_q_t_t_client_persistence_8h.html#adfeea3989b64d626003086636f6585de">Persistence_remove</a>)(void *handle, char *key)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Remove the data for the specified key from the store. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>handle</em>&nbsp;</td><td>The handle pointer from a successful call to <a class="el" href="_m_q_t_t_client_persistence_8h.html#a3c418c1cb963a76d9fae5c3219eeb8ce" title="Initialize the persistent store.">Persistence_open()</a>. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>A string that is the key for the data to be removed from the store. This is the same key used to save the data to the store with <a class="el" href="_m_q_t_t_client_persistence_8h.html#a0b95acfdfff547e3a539f229b1cf6e41" title="Put the specified data into the persistent store.">Persistence_put()</a>. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Return 0 if the function completes successfully, otherwise return <a class="el" href="_m_q_t_t_client_persistence_8h.html#ab716e21e53c84a5ad62aa962a2a8f7db">MQTTCLIENT_PERSISTENCE_ERROR</a>. </dd></dl>
</div>
</div>
<a class="anchor" id="ad6295da2bee2a65722a9e0c1e12474c2"></a><!-- doxytag: member="MQTTClientPersistence.h::Persistence_keys" ref="ad6295da2bee2a65722a9e0c1e12474c2" args=")(void *handle, char ***keys, int *nkeys)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int(* <a class="el" href="_m_q_t_t_client_persistence_8h.html#ad6295da2bee2a65722a9e0c1e12474c2">Persistence_keys</a>)(void *handle, char ***keys, int *nkeys)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Returns the keys in this persistent data store. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>handle</em>&nbsp;</td><td>The handle pointer from a successful call to <a class="el" href="_m_q_t_t_client_persistence_8h.html#a3c418c1cb963a76d9fae5c3219eeb8ce" title="Initialize the persistent store.">Persistence_open()</a>. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>keys</em>&nbsp;</td><td>The address of a pointer to pointers to strings. Assuming successful execution, this function allocates memory to hold the returned keys (strings used to store the data with <a class="el" href="_m_q_t_t_client_persistence_8h.html#a0b95acfdfff547e3a539f229b1cf6e41" title="Put the specified data into the persistent store.">Persistence_put()</a>). It also allocates memory to hold an array of pointers to these strings. <em>keys</em> is set to point to the array of pointers to strings. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>nkeys</em>&nbsp;</td><td>A pointer to the number of keys in this persistent data store. This function sets the number of keys, if successful. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Return 0 if the function completes successfully, otherwise return <a class="el" href="_m_q_t_t_client_persistence_8h.html#ab716e21e53c84a5ad62aa962a2a8f7db">MQTTCLIENT_PERSISTENCE_ERROR</a>. </dd></dl>
</div>
</div>
<a class="anchor" id="a40523890e58ebe47bd34db6a6d1b47d1"></a><!-- doxytag: member="MQTTClientPersistence.h::Persistence_clear" ref="a40523890e58ebe47bd34db6a6d1b47d1" args=")(void *handle)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int(* <a class="el" href="_m_q_t_t_client_persistence_8h.html#a40523890e58ebe47bd34db6a6d1b47d1">Persistence_clear</a>)(void *handle)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Clears the persistence store, so that it no longer contains any persisted data. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>handle</em>&nbsp;</td><td>The handle pointer from a successful call to <a class="el" href="_m_q_t_t_client_persistence_8h.html#a3c418c1cb963a76d9fae5c3219eeb8ce" title="Initialize the persistent store.">Persistence_open()</a>. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Return 0 if the function completes successfully, otherwise return <a class="el" href="_m_q_t_t_client_persistence_8h.html#ab716e21e53c84a5ad62aa962a2a8f7db">MQTTCLIENT_PERSISTENCE_ERROR</a>. </dd></dl>
</div>
</div>
<a class="anchor" id="ad92081c4da5e242934f0b13c0279d0af"></a><!-- doxytag: member="MQTTClientPersistence.h::Persistence_containskey" ref="ad92081c4da5e242934f0b13c0279d0af" args=")(void *handle, char *key)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int(* <a class="el" href="_m_q_t_t_client_persistence_8h.html#ad92081c4da5e242934f0b13c0279d0af">Persistence_containskey</a>)(void *handle, char *key)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Returns whether any data has been persisted using the specified key. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>handle</em>&nbsp;</td><td>The handle pointer from a successful call to <a class="el" href="_m_q_t_t_client_persistence_8h.html#a3c418c1cb963a76d9fae5c3219eeb8ce" title="Initialize the persistent store.">Persistence_open()</a>. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>The string to be tested for existence in the store. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Return 0 if the key was found in the store, otherwise return <a class="el" href="_m_q_t_t_client_persistence_8h.html#ab716e21e53c84a5ad62aa962a2a8f7db">MQTTCLIENT_PERSISTENCE_ERROR</a>. </dd></dl>
</div>
</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>

View File

@ -0,0 +1,85 @@
<!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: MQTTClientPersistence.h Source File</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><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<h1>MQTTClientPersistence.h</h1><a href="_m_q_t_t_client_persistence_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*******************************************************************************</span>
<a name="l00002"></a>00002 <span class="comment"> * Copyright (c) 2009, 2012 IBM Corp.</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * All rights reserved. This program and the accompanying materials</span>
<a name="l00005"></a>00005 <span class="comment"> * are made available under the terms of the Eclipse Public License v1.0</span>
<a name="l00006"></a>00006 <span class="comment"> * which accompanies this distribution, and is available at</span>
<a name="l00007"></a>00007 <span class="comment"> * http://www.eclipse.org/legal/epl-v10.html</span>
<a name="l00008"></a>00008 <span class="comment"> *</span>
<a name="l00009"></a>00009 <span class="comment"> * Contributors:</span>
<a name="l00010"></a>00010 <span class="comment"> * Ian Craggs - initial API and implementation and/or initial documentation</span>
<a name="l00011"></a>00011 <span class="comment"> *******************************************************************************/</span>
<a name="l00012"></a>00012
<a name="l00052"></a>00052
<a name="l00053"></a>00053 <span class="preprocessor">#if !defined(MQTTCLIENTPERSISTENCE_H)</span>
<a name="l00054"></a>00054 <span class="preprocessor"></span><span class="preprocessor">#define MQTTCLIENTPERSISTENCE_H</span>
<a name="l00055"></a>00055 <span class="preprocessor"></span>
<a name="l00056"></a>00056
<a name="l00061"></a><a class="code" href="_m_q_t_t_client_persistence_8h.html#aaa948291718a9c06369b854b0f64bc32">00061</a> <span class="preprocessor">#define MQTTCLIENT_PERSISTENCE_DEFAULT 0</span>
<a name="l00062"></a>00062 <span class="preprocessor"></span>
<a name="l00066"></a><a class="code" href="_m_q_t_t_client_persistence_8h.html#ae01e089313a65ac4661ed216b6ac00fa">00066</a> <span class="preprocessor">#define MQTTCLIENT_PERSISTENCE_NONE 1</span>
<a name="l00067"></a>00067 <span class="preprocessor"></span>
<a name="l00071"></a><a class="code" href="_m_q_t_t_client_persistence_8h.html#a5dc68b8616e4041e037bad94ce07681b">00071</a> <span class="preprocessor">#define MQTTCLIENT_PERSISTENCE_USER 2</span>
<a name="l00072"></a>00072 <span class="preprocessor"></span>
<a name="l00077"></a><a class="code" href="_m_q_t_t_client_persistence_8h.html#ab716e21e53c84a5ad62aa962a2a8f7db">00077</a> <span class="preprocessor">#define MQTTCLIENT_PERSISTENCE_ERROR -2</span>
<a name="l00078"></a>00078 <span class="preprocessor"></span>
<a name="l00105"></a><a class="code" href="_m_q_t_t_client_persistence_8h.html#a3c418c1cb963a76d9fae5c3219eeb8ce">00105</a> <span class="keyword">typedef</span> int (*<a class="code" href="_m_q_t_t_client_persistence_8h.html#a3c418c1cb963a76d9fae5c3219eeb8ce" title="Initialize the persistent store.">Persistence_open</a>)(<span class="keywordtype">void</span>** handle, <span class="keywordtype">char</span>* clientID, <span class="keywordtype">char</span>* serverURI, <span class="keywordtype">void</span>* context);
<a name="l00106"></a>00106
<a name="l00115"></a><a class="code" href="_m_q_t_t_client_persistence_8h.html#a23648571a3f4cd47ef18fdb821a990a4">00115</a> <span class="keyword">typedef</span> int (*<a class="code" href="_m_q_t_t_client_persistence_8h.html#a23648571a3f4cd47ef18fdb821a990a4" title="Close the persistent store referred to by the handle.">Persistence_close</a>)(<span class="keywordtype">void</span>* handle);
<a name="l00116"></a>00116
<a name="l00132"></a><a class="code" href="_m_q_t_t_client_persistence_8h.html#a0b95acfdfff547e3a539f229b1cf6e41">00132</a> <span class="keyword">typedef</span> int (*<a class="code" href="_m_q_t_t_client_persistence_8h.html#a0b95acfdfff547e3a539f229b1cf6e41" title="Put the specified data into the persistent store.">Persistence_put</a>)(<span class="keywordtype">void</span>* handle, <span class="keywordtype">char</span>* key, <span class="keywordtype">int</span> bufcount, <span class="keywordtype">char</span>* buffers[], <span class="keywordtype">int</span> buflens[]);
<a name="l00133"></a>00133
<a name="l00148"></a><a class="code" href="_m_q_t_t_client_persistence_8h.html#a4fd91e00c8fc2ddff4b4d54e9c5a1d48">00148</a> <span class="keyword">typedef</span> int (*<a class="code" href="_m_q_t_t_client_persistence_8h.html#a4fd91e00c8fc2ddff4b4d54e9c5a1d48" title="Retrieve the specified data from the persistent store.">Persistence_get</a>)(<span class="keywordtype">void</span>* handle, <span class="keywordtype">char</span>* key, <span class="keywordtype">char</span>** buffer, <span class="keywordtype">int</span>* buflen);
<a name="l00149"></a>00149
<a name="l00161"></a><a class="code" href="_m_q_t_t_client_persistence_8h.html#adfeea3989b64d626003086636f6585de">00161</a> <span class="keyword">typedef</span> int (*<a class="code" href="_m_q_t_t_client_persistence_8h.html#adfeea3989b64d626003086636f6585de" title="Remove the data for the specified key from the store.">Persistence_remove</a>)(<span class="keywordtype">void</span>* handle, <span class="keywordtype">char</span>* key);
<a name="l00162"></a>00162
<a name="l00178"></a><a class="code" href="_m_q_t_t_client_persistence_8h.html#ad6295da2bee2a65722a9e0c1e12474c2">00178</a> <span class="keyword">typedef</span> int (*<a class="code" href="_m_q_t_t_client_persistence_8h.html#ad6295da2bee2a65722a9e0c1e12474c2" title="Returns the keys in this persistent data store.">Persistence_keys</a>)(<span class="keywordtype">void</span>* handle, <span class="keywordtype">char</span>*** keys, <span class="keywordtype">int</span>* nkeys);
<a name="l00179"></a>00179
<a name="l00189"></a><a class="code" href="_m_q_t_t_client_persistence_8h.html#a40523890e58ebe47bd34db6a6d1b47d1">00189</a> <span class="keyword">typedef</span> int (*<a class="code" href="_m_q_t_t_client_persistence_8h.html#a40523890e58ebe47bd34db6a6d1b47d1" title="Clears the persistence store, so that it no longer contains any persisted data.">Persistence_clear</a>)(<span class="keywordtype">void</span>* handle);
<a name="l00190"></a>00190
<a name="l00200"></a><a class="code" href="_m_q_t_t_client_persistence_8h.html#ad92081c4da5e242934f0b13c0279d0af">00200</a> <span class="keyword">typedef</span> int (*<a class="code" href="_m_q_t_t_client_persistence_8h.html#ad92081c4da5e242934f0b13c0279d0af" title="Returns whether any data has been persisted using the specified key.">Persistence_containskey</a>)(<span class="keywordtype">void</span>* handle, <span class="keywordtype">char</span>* key);
<a name="l00201"></a>00201
<a name="l00207"></a><a class="code" href="struct_m_q_t_t_client__persistence.html">00207</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
<a name="l00211"></a><a class="code" href="struct_m_q_t_t_client__persistence.html#ae376f130b17d169ee51be68077a89ed0">00211</a> <span class="keywordtype">void</span>* context;
<a name="l00215"></a><a class="code" href="struct_m_q_t_t_client__persistence.html#a1bae211b32415e6b349d5ae71599f9f4">00215</a> <a class="code" href="_m_q_t_t_client_persistence_8h.html#a3c418c1cb963a76d9fae5c3219eeb8ce" title="Initialize the persistent store.">Persistence_open</a> popen;
<a name="l00219"></a><a class="code" href="struct_m_q_t_t_client__persistence.html#a7e50506912d2ec0e014cc25ec28fb402">00219</a> <a class="code" href="_m_q_t_t_client_persistence_8h.html#a23648571a3f4cd47ef18fdb821a990a4" title="Close the persistent store referred to by the handle.">Persistence_close</a> pclose;
<a name="l00223"></a><a class="code" href="struct_m_q_t_t_client__persistence.html#a4114d9b9971cee18d7e4b9dd5736a608">00223</a> <a class="code" href="_m_q_t_t_client_persistence_8h.html#a0b95acfdfff547e3a539f229b1cf6e41" title="Put the specified data into the persistent store.">Persistence_put</a> pput;
<a name="l00227"></a><a class="code" href="struct_m_q_t_t_client__persistence.html#a49155000b82a28ac3b3cb878f3a092d4">00227</a> <a class="code" href="_m_q_t_t_client_persistence_8h.html#a4fd91e00c8fc2ddff4b4d54e9c5a1d48" title="Retrieve the specified data from the persistent store.">Persistence_get</a> pget;
<a name="l00231"></a><a class="code" href="struct_m_q_t_t_client__persistence.html#a53150e443ca721b8623689371c2fbdb9">00231</a> <a class="code" href="_m_q_t_t_client_persistence_8h.html#adfeea3989b64d626003086636f6585de" title="Remove the data for the specified key from the store.">Persistence_remove</a> premove;
<a name="l00235"></a><a class="code" href="struct_m_q_t_t_client__persistence.html#a407e86a809e4b0b098a8c158f53b9606">00235</a> <a class="code" href="_m_q_t_t_client_persistence_8h.html#ad6295da2bee2a65722a9e0c1e12474c2" title="Returns the keys in this persistent data store.">Persistence_keys</a> pkeys;
<a name="l00239"></a><a class="code" href="struct_m_q_t_t_client__persistence.html#abc192dc88113c7d933b29d3561badbf5">00239</a> <a class="code" href="_m_q_t_t_client_persistence_8h.html#a40523890e58ebe47bd34db6a6d1b47d1" title="Clears the persistence store, so that it no longer contains any persisted data.">Persistence_clear</a> pclear;
<a name="l00243"></a><a class="code" href="struct_m_q_t_t_client__persistence.html#ac103711576267f791325f2b70b6dc49d">00243</a> <a class="code" href="_m_q_t_t_client_persistence_8h.html#ad92081c4da5e242934f0b13c0279d0af" title="Returns whether any data has been persisted using the specified key.">Persistence_containskey</a> pcontainskey;
<a name="l00244"></a>00244 } <a class="code" href="struct_m_q_t_t_client__persistence.html" title="A structure containing the function pointers to a persistence implementation and...">MQTTClient_persistence</a>;
<a name="l00245"></a>00245
<a name="l00246"></a>00246 <span class="preprocessor">#endif</span>
</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>

39
doc/API/annotated.html Normal file
View File

@ -0,0 +1,39 @@
<!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>

32
doc/API/async.html Normal file
View File

@ -0,0 +1,32 @@
<!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>

37
doc/API/classes.html Normal file
View File

@ -0,0 +1,37 @@
<!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>

545
doc/API/doxygen.css Normal file
View File

@ -0,0 +1,545 @@
/* 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;
}

BIN
doc/API/doxygen.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

37
doc/API/files.html Normal file
View File

@ -0,0 +1,37 @@
<!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>

185
doc/API/functions.html Normal file
View File

@ -0,0 +1,185 @@
<!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>

185
doc/API/functions_vars.html Normal file
View File

@ -0,0 +1,185 @@
<!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>

193
doc/API/globals.html Normal file
View File

@ -0,0 +1,193 @@
<!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>

88
doc/API/globals_defs.html Normal file
View File

@ -0,0 +1,88 @@
<!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>

97
doc/API/globals_func.html Normal file
View File

@ -0,0 +1,97 @@
<!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>

82
doc/API/globals_type.html Normal file
View File

@ -0,0 +1,82 @@
<!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>

71
doc/API/index.html Normal file
View File

@ -0,0 +1,71 @@
<!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>

41
doc/API/pages.html Normal file
View File

@ -0,0 +1,41 @@
<!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>

109
doc/API/pubasync.html Normal file
View File

@ -0,0 +1,109 @@
<!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>

73
doc/API/pubsync.html Normal file
View File

@ -0,0 +1,73 @@
<!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>

37
doc/API/qos.html Normal file
View File

@ -0,0 +1,37 @@
<!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>

View File

@ -0,0 +1,196 @@
<!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_connectOptions 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_connectOptions Struct Reference</h1><!-- doxytag: class="MQTTClient_connectOptions" -->
<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__connect_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__connect_options.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__connect_options.html#ac8dd0930672a9c7d71fc645aa1f0521d">keepAliveInterval</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__connect_options.html#a036c36a2a4d3a3ffae9ab4dd8b3e7f7b">cleansession</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__connect_options.html#a9f1cdffc99659fd4e2d20e6de3c64df0">reliable</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_m_q_t_t_client__will_options.html">MQTTClient_willOptions</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_m_q_t_t_client__connect_options.html#a0a880e99d47eb2efe552abe5079bdc9d">will</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__connect_options.html#a9b20c006bd90a09e1465fb668700e81d">username</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__connect_options.html#a59460a3ff2c12443d1022e5cc0fba85c">password</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__connect_options.html#a38c6aa24b36d981c49405db425c24db0">connectTimeout</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__connect_options.html#ac73f57846c42bcaa9a47e6721a957748">retryInterval</a></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p><a class="el" href="struct_m_q_t_t_client__connect_options.html">MQTTClient_connectOptions</a> defines several settings that control the way the client connects to an MQTT server.</p>
<p><b>Note:</b> Default values are not defined for members of <a class="el" href="struct_m_q_t_t_client__connect_options.html">MQTTClient_connectOptions</a> so it is good practice to specify all settings. If the <a class="el" href="struct_m_q_t_t_client__connect_options.html">MQTTClient_connectOptions</a> structure is defined as an automatic variable, all members are set to random values and thus must be set by the client application. If the <a class="el" href="struct_m_q_t_t_client__connect_options.html">MQTTClient_connectOptions</a> structure is defined as a static variable, initialization (in compliant compilers) sets all values to 0 (NULL for pointers). A <a class="el" href="struct_m_q_t_t_client__connect_options.html#ac8dd0930672a9c7d71fc645aa1f0521d">keepAliveInterval</a> setting of 0 prevents correct operation of the client and so you <b>must</b> at least set a value for <a class="el" href="struct_m_q_t_t_client__connect_options.html#ac8dd0930672a9c7d71fc645aa1f0521d">keepAliveInterval</a>. </p>
<hr/><h2>Field Documentation</h2>
<a class="anchor" id="aa5326df180cb23c59afbcab711a06479"></a><!-- doxytag: member="MQTTClient_connectOptions::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__connect_options.html#aa5326df180cb23c59afbcab711a06479">struct_id</a>[4]</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The eyecatcher for this structure. must be MQTC. </p>
</div>
</div>
<a class="anchor" id="a0761a5e5be0383882e42924de8e51f82"></a><!-- doxytag: member="MQTTClient_connectOptions::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__connect_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="ac8dd0930672a9c7d71fc645aa1f0521d"></a><!-- doxytag: member="MQTTClient_connectOptions::keepAliveInterval" ref="ac8dd0930672a9c7d71fc645aa1f0521d" 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__connect_options.html#ac8dd0930672a9c7d71fc645aa1f0521d">keepAliveInterval</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The "keep alive" interval, measured in seconds, defines the maximum time that should pass without communication between the client and the server The client will ensure that at least one message travels across the network within each keep alive period. In the absence of a data-related message during the time period, the client sends a very small MQTT "ping" message, which the server will acknowledge. The keep alive interval enables the client to detect when the server is no longer available without having to wait for the long TCP/IP timeout. </p>
</div>
</div>
<a class="anchor" id="a036c36a2a4d3a3ffae9ab4dd8b3e7f7b"></a><!-- doxytag: member="MQTTClient_connectOptions::cleansession" ref="a036c36a2a4d3a3ffae9ab4dd8b3e7f7b" 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__connect_options.html#a036c36a2a4d3a3ffae9ab4dd8b3e7f7b">cleansession</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>This is a boolean value. The cleansession setting controls the behaviour of both the client and the server at connection and disconnection time. The client and server both maintain session state information. This information is used to ensure "at least once" and "exactly once" delivery, and "exactly once" receipt of messages. Session state also includes subscriptions created by an MQTT client. You can choose to maintain or discard state information between sessions.</p>
<p>When cleansession is true, the state information is discarded at connect and disconnect. Setting cleansession to false keeps the state information. When you connect an MQTT client application with <a class="el" href="_m_q_t_t_client_8h.html#aaa8ae61cd65c9dc0846df10122d7bd4e">MQTTClient_connect()</a>, the client identifies the connection using the client identifier and the address of the server. The server checks whether session information for this client has been saved from a previous connection to the server. If a previous session still exists, and cleansession=true, then the previous session information at the client and server is cleared. If cleansession=false, the previous session is resumed. If no previous session exists, a new session is started. </p>
</div>
</div>
<a class="anchor" id="a9f1cdffc99659fd4e2d20e6de3c64df0"></a><!-- doxytag: member="MQTTClient_connectOptions::reliable" ref="a9f1cdffc99659fd4e2d20e6de3c64df0" 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__connect_options.html#a9f1cdffc99659fd4e2d20e6de3c64df0">reliable</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>This is a boolean value that controls how many messages can be in-flight simultaneously. Setting <em>reliable</em> to true means that a published message must be completed (acknowledgements received) before another can be sent. Attempts to publish additional messages receive an <a class="el" href="_m_q_t_t_client_8h.html#a8fc442fc2e9dfb422a163ab1fa02e0cb">MQTTCLIENT_MAX_MESSAGES_INFLIGHT</a> return code. Setting this flag to false allows up to 10 messages to be in-flight. This can increase overall throughput in some circumstances. </p>
</div>
</div>
<a class="anchor" id="a0a880e99d47eb2efe552abe5079bdc9d"></a><!-- doxytag: member="MQTTClient_connectOptions::will" ref="a0a880e99d47eb2efe552abe5079bdc9d" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="struct_m_q_t_t_client__will_options.html">MQTTClient_willOptions</a>* <a class="el" href="struct_m_q_t_t_client__connect_options.html#a0a880e99d47eb2efe552abe5079bdc9d">will</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>This is a pointer to an <a class="el" href="struct_m_q_t_t_client__will_options.html">MQTTClient_willOptions</a> structure. If your application does not make use of the Last Will and Testament feature, set this pointer to NULL. </p>
</div>
</div>
<a class="anchor" id="a9b20c006bd90a09e1465fb668700e81d"></a><!-- doxytag: member="MQTTClient_connectOptions::username" ref="a9b20c006bd90a09e1465fb668700e81d" 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__connect_options.html#a9b20c006bd90a09e1465fb668700e81d">username</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>MQTT servers that support the MQTT v3.1 protocol provide authentication and authorisation by user name and password. This is the user name parameter. </p>
</div>
</div>
<a class="anchor" id="a59460a3ff2c12443d1022e5cc0fba85c"></a><!-- doxytag: member="MQTTClient_connectOptions::password" ref="a59460a3ff2c12443d1022e5cc0fba85c" 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__connect_options.html#a59460a3ff2c12443d1022e5cc0fba85c">password</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>MQTT servers that support the MQTT v3.1 protocol provide authentication and authorisation by user name and password. This is the password parameter. </p>
</div>
</div>
<a class="anchor" id="a38c6aa24b36d981c49405db425c24db0"></a><!-- doxytag: member="MQTTClient_connectOptions::connectTimeout" ref="a38c6aa24b36d981c49405db425c24db0" 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__connect_options.html#a38c6aa24b36d981c49405db425c24db0">connectTimeout</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The time interval in seconds to allow a connect to complete. </p>
</div>
</div>
<a class="anchor" id="ac73f57846c42bcaa9a47e6721a957748"></a><!-- doxytag: member="MQTTClient_connectOptions::retryInterval" ref="ac73f57846c42bcaa9a47e6721a957748" 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__connect_options.html#ac73f57846c42bcaa9a47e6721a957748">retryInterval</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The time interval in seconds </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>

View File

@ -0,0 +1,176 @@
<!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>

View File

@ -0,0 +1,182 @@
<!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_persistence 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_persistence Struct Reference</h1><!-- doxytag: class="MQTTClient_persistence" -->
<p>A structure containing the function pointers to a persistence implementation and the context or state that will be shared across all the persistence functions.
<a href="#_details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_m_q_t_t_client_persistence_8h_source.html">MQTTClientPersistence.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">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_m_q_t_t_client__persistence.html#ae376f130b17d169ee51be68077a89ed0">context</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="_m_q_t_t_client_persistence_8h.html#a3c418c1cb963a76d9fae5c3219eeb8ce">Persistence_open</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_m_q_t_t_client__persistence.html#a1bae211b32415e6b349d5ae71599f9f4">popen</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="_m_q_t_t_client_persistence_8h.html#a23648571a3f4cd47ef18fdb821a990a4">Persistence_close</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_m_q_t_t_client__persistence.html#a7e50506912d2ec0e014cc25ec28fb402">pclose</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="_m_q_t_t_client_persistence_8h.html#a0b95acfdfff547e3a539f229b1cf6e41">Persistence_put</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_m_q_t_t_client__persistence.html#a4114d9b9971cee18d7e4b9dd5736a608">pput</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="_m_q_t_t_client_persistence_8h.html#a4fd91e00c8fc2ddff4b4d54e9c5a1d48">Persistence_get</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_m_q_t_t_client__persistence.html#a49155000b82a28ac3b3cb878f3a092d4">pget</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="_m_q_t_t_client_persistence_8h.html#adfeea3989b64d626003086636f6585de">Persistence_remove</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_m_q_t_t_client__persistence.html#a53150e443ca721b8623689371c2fbdb9">premove</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="_m_q_t_t_client_persistence_8h.html#ad6295da2bee2a65722a9e0c1e12474c2">Persistence_keys</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_m_q_t_t_client__persistence.html#a407e86a809e4b0b098a8c158f53b9606">pkeys</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="_m_q_t_t_client_persistence_8h.html#a40523890e58ebe47bd34db6a6d1b47d1">Persistence_clear</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_m_q_t_t_client__persistence.html#abc192dc88113c7d933b29d3561badbf5">pclear</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="_m_q_t_t_client_persistence_8h.html#ad92081c4da5e242934f0b13c0279d0af">Persistence_containskey</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_m_q_t_t_client__persistence.html#ac103711576267f791325f2b70b6dc49d">pcontainskey</a></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>A structure containing the function pointers to a persistence implementation and the context or state that will be shared across all the persistence functions. </p>
<hr/><h2>Field Documentation</h2>
<a class="anchor" id="ae376f130b17d169ee51be68077a89ed0"></a><!-- doxytag: member="MQTTClient_persistence::context" ref="ae376f130b17d169ee51be68077a89ed0" 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__persistence.html#ae376f130b17d169ee51be68077a89ed0">context</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>A pointer to any data required to initialize the persistent store. </p>
</div>
</div>
<a class="anchor" id="a1bae211b32415e6b349d5ae71599f9f4"></a><!-- doxytag: member="MQTTClient_persistence::popen" ref="a1bae211b32415e6b349d5ae71599f9f4" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="_m_q_t_t_client_persistence_8h.html#a3c418c1cb963a76d9fae5c3219eeb8ce">Persistence_open</a> <a class="el" href="struct_m_q_t_t_client__persistence.html#a1bae211b32415e6b349d5ae71599f9f4">popen</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>A function pointer to an implementation of <a class="el" href="_m_q_t_t_client_persistence_8h.html#a3c418c1cb963a76d9fae5c3219eeb8ce" title="Initialize the persistent store.">Persistence_open()</a>. </p>
</div>
</div>
<a class="anchor" id="a7e50506912d2ec0e014cc25ec28fb402"></a><!-- doxytag: member="MQTTClient_persistence::pclose" ref="a7e50506912d2ec0e014cc25ec28fb402" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="_m_q_t_t_client_persistence_8h.html#a23648571a3f4cd47ef18fdb821a990a4">Persistence_close</a> <a class="el" href="struct_m_q_t_t_client__persistence.html#a7e50506912d2ec0e014cc25ec28fb402">pclose</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>A function pointer to an implementation of <a class="el" href="_m_q_t_t_client_persistence_8h.html#a23648571a3f4cd47ef18fdb821a990a4" title="Close the persistent store referred to by the handle.">Persistence_close()</a>. </p>
</div>
</div>
<a class="anchor" id="a4114d9b9971cee18d7e4b9dd5736a608"></a><!-- doxytag: member="MQTTClient_persistence::pput" ref="a4114d9b9971cee18d7e4b9dd5736a608" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="_m_q_t_t_client_persistence_8h.html#a0b95acfdfff547e3a539f229b1cf6e41">Persistence_put</a> <a class="el" href="struct_m_q_t_t_client__persistence.html#a4114d9b9971cee18d7e4b9dd5736a608">pput</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>A function pointer to an implementation of <a class="el" href="_m_q_t_t_client_persistence_8h.html#a0b95acfdfff547e3a539f229b1cf6e41" title="Put the specified data into the persistent store.">Persistence_put()</a>. </p>
</div>
</div>
<a class="anchor" id="a49155000b82a28ac3b3cb878f3a092d4"></a><!-- doxytag: member="MQTTClient_persistence::pget" ref="a49155000b82a28ac3b3cb878f3a092d4" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="_m_q_t_t_client_persistence_8h.html#a4fd91e00c8fc2ddff4b4d54e9c5a1d48">Persistence_get</a> <a class="el" href="struct_m_q_t_t_client__persistence.html#a49155000b82a28ac3b3cb878f3a092d4">pget</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>A function pointer to an implementation of <a class="el" href="_m_q_t_t_client_persistence_8h.html#a4fd91e00c8fc2ddff4b4d54e9c5a1d48" title="Retrieve the specified data from the persistent store.">Persistence_get()</a>. </p>
</div>
</div>
<a class="anchor" id="a53150e443ca721b8623689371c2fbdb9"></a><!-- doxytag: member="MQTTClient_persistence::premove" ref="a53150e443ca721b8623689371c2fbdb9" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="_m_q_t_t_client_persistence_8h.html#adfeea3989b64d626003086636f6585de">Persistence_remove</a> <a class="el" href="struct_m_q_t_t_client__persistence.html#a53150e443ca721b8623689371c2fbdb9">premove</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>A function pointer to an implementation of <a class="el" href="_m_q_t_t_client_persistence_8h.html#adfeea3989b64d626003086636f6585de" title="Remove the data for the specified key from the store.">Persistence_remove()</a>. </p>
</div>
</div>
<a class="anchor" id="a407e86a809e4b0b098a8c158f53b9606"></a><!-- doxytag: member="MQTTClient_persistence::pkeys" ref="a407e86a809e4b0b098a8c158f53b9606" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="_m_q_t_t_client_persistence_8h.html#ad6295da2bee2a65722a9e0c1e12474c2">Persistence_keys</a> <a class="el" href="struct_m_q_t_t_client__persistence.html#a407e86a809e4b0b098a8c158f53b9606">pkeys</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>A function pointer to an implementation of <a class="el" href="_m_q_t_t_client_persistence_8h.html#ad6295da2bee2a65722a9e0c1e12474c2" title="Returns the keys in this persistent data store.">Persistence_keys()</a>. </p>
</div>
</div>
<a class="anchor" id="abc192dc88113c7d933b29d3561badbf5"></a><!-- doxytag: member="MQTTClient_persistence::pclear" ref="abc192dc88113c7d933b29d3561badbf5" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="_m_q_t_t_client_persistence_8h.html#a40523890e58ebe47bd34db6a6d1b47d1">Persistence_clear</a> <a class="el" href="struct_m_q_t_t_client__persistence.html#abc192dc88113c7d933b29d3561badbf5">pclear</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>A function pointer to an implementation of <a class="el" href="_m_q_t_t_client_persistence_8h.html#a40523890e58ebe47bd34db6a6d1b47d1" title="Clears the persistence store, so that it no longer contains any persisted data.">Persistence_clear()</a>. </p>
</div>
</div>
<a class="anchor" id="ac103711576267f791325f2b70b6dc49d"></a><!-- doxytag: member="MQTTClient_persistence::pcontainskey" ref="ac103711576267f791325f2b70b6dc49d" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="_m_q_t_t_client_persistence_8h.html#ad92081c4da5e242934f0b13c0279d0af">Persistence_containskey</a> <a class="el" href="struct_m_q_t_t_client__persistence.html#ac103711576267f791325f2b70b6dc49d">pcontainskey</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>A function pointer to an implementation of <a class="el" href="_m_q_t_t_client_persistence_8h.html#ad92081c4da5e242934f0b13c0279d0af" title="Returns whether any data has been persisted using the specified key.">Persistence_containskey()</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_persistence_8h_source.html">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>

View File

@ -0,0 +1,134 @@
<!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>

107
doc/API/subasync.html Normal file
View File

@ -0,0 +1,107 @@
<!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>

BIN
doc/API/tab_b.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 B

BIN
doc/API/tab_l.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 706 B

BIN
doc/API/tab_r.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

105
doc/API/tabs.css Normal file
View File

@ -0,0 +1,105 @@
/* 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;
}

41
doc/API/wildcard.html Normal file
View File

@ -0,0 +1,41 @@
<!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>

View File

@ -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;