<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.13"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>MQTTClient: <MQTTPersistence> Protocol Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="search/search.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="search/searchdata.js"></script> <script type="text/javascript" src="search/search.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td id="projectalign" style="padding-left: 0.5em;"> <div id="projectname">MQTTClient </div> <div id="projectbrief">an Objective-C Framework for MQTT</div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.13 --> <script type="text/javascript"> var searchBox = new SearchBox("searchBox", "search",false,'Search'); </script> <script type="text/javascript" src="menudata.js"></script> <script type="text/javascript" src="menu.js"></script> <script type="text/javascript"> $(function() { initMenu('',true,false,'search.php','Search'); $(document).ready(function() { init_search(); }); }); </script> <div id="main-nav"></div> <!-- window showing the filter options --> <div id="MSearchSelectWindow" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" onkeydown="return searchBox.OnSearchSelectKey(event)"> </div> <!-- iframe showing the search results (closed by default) --> <div id="MSearchResultsWindow"> <iframe src="javascript:void(0)" frameborder="0" name="MSearchResults" id="MSearchResults"> </iframe> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#pub-methods">Instance Methods</a> | <a href="#properties">Properties</a> | <a href="protocol_m_q_t_t_persistence-p-members.html">List of all members</a> </div> <div class="headertitle"> <div class="title"><MQTTPersistence> Protocol Reference</div> </div> </div><!--header--> <div class="contents"> <p><code>#import <<a class="el" href="_m_q_t_t_persistence_8h_source.html">MQTTPersistence.h</a>></code></p> <div class="dynheader"> Inheritance diagram for <MQTTPersistence>:</div> <div class="dyncontent"> <div class="center"> <img src="protocol_m_q_t_t_persistence-p.png" usemap="#_3CMQTTPersistence_3E_map" alt=""/> <map id="_3CMQTTPersistence_3E_map" name="_3CMQTTPersistence_3E_map"> <area href="interface_m_q_t_t_core_data_persistence.html" alt="MQTTCoreDataPersistence" shape="rect" coords="0,56,169,80"/> <area href="interface_m_q_t_t_in_memory_persistence.html" alt="MQTTInMemoryPersistence" shape="rect" coords="179,56,348,80"/> </map> </div></div> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a> Instance Methods</h2></td></tr> <tr class="memitem:a8521b079578db32e593d841ce2941fc0"><td class="memItemLeft" align="right" valign="top">(NSUInteger) </td><td class="memItemRight" valign="bottom">- <a class="el" href="protocol_m_q_t_t_persistence-p.html#a8521b079578db32e593d841ce2941fc0">windowSize:</a></td></tr> <tr class="separator:a8521b079578db32e593d841ce2941fc0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac4dcb1941bac80050f643fab3faf0fe4"><td class="memItemLeft" align="right" valign="top">(id< <a class="el" href="interface_m_q_t_t_flow.html">MQTTFlow</a> >) </td><td class="memItemRight" valign="bottom">- <a class="el" href="protocol_m_q_t_t_persistence-p.html#ac4dcb1941bac80050f643fab3faf0fe4">storeMessageForClientId:topic:data:retainFlag:qos:msgId:incomingFlag:commandType:deadline:</a></td></tr> <tr class="separator:ac4dcb1941bac80050f643fab3faf0fe4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a415cc2c67ea2e73d7942973a2186d083"><td class="memItemLeft" align="right" valign="top">(void) </td><td class="memItemRight" valign="bottom">- <a class="el" href="protocol_m_q_t_t_persistence-p.html#a415cc2c67ea2e73d7942973a2186d083">deleteFlow:</a></td></tr> <tr class="separator:a415cc2c67ea2e73d7942973a2186d083"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2c880d902ade2b17078545cef8d212e7"><td class="memItemLeft" align="right" valign="top">(void) </td><td class="memItemRight" valign="bottom">- <a class="el" href="protocol_m_q_t_t_persistence-p.html#a2c880d902ade2b17078545cef8d212e7">deleteAllFlowsForClientId:</a></td></tr> <tr class="separator:a2c880d902ade2b17078545cef8d212e7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a513e62e567e187ce73fab26f53d2272a"><td class="memItemLeft" align="right" valign="top">(NSArray *) </td><td class="memItemRight" valign="bottom">- <a class="el" href="protocol_m_q_t_t_persistence-p.html#a513e62e567e187ce73fab26f53d2272a">allFlowsforClientId:incomingFlag:</a></td></tr> <tr class="separator:a513e62e567e187ce73fab26f53d2272a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2ca81852c486e32d888ef502b8dc47d5"><td class="memItemLeft" align="right" valign="top">(id< <a class="el" href="interface_m_q_t_t_flow.html">MQTTFlow</a> >) </td><td class="memItemRight" valign="bottom">- <a class="el" href="protocol_m_q_t_t_persistence-p.html#a2ca81852c486e32d888ef502b8dc47d5">flowforClientId:incomingFlag:messageId:</a></td></tr> <tr class="separator:a2ca81852c486e32d888ef502b8dc47d5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:afd0744d75cb430bfa2c430e14c3a65e8"><td class="memItemLeft" align="right" valign="top">(void) </td><td class="memItemRight" valign="bottom">- <a class="el" href="protocol_m_q_t_t_persistence-p.html#afd0744d75cb430bfa2c430e14c3a65e8">sync</a></td></tr> <tr class="separator:afd0744d75cb430bfa2c430e14c3a65e8"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="properties"></a> Properties</h2></td></tr> <tr class="memitem:a7566c5b7fff68c034ffd836c32d1b822"><td class="memItemLeft" align="right" valign="top">NSUInteger </td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_m_q_t_t_persistence-p.html#a7566c5b7fff68c034ffd836c32d1b822">maxWindowSize</a></td></tr> <tr class="separator:a7566c5b7fff68c034ffd836c32d1b822"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a25da1e10303f72b9f5c0acded51780d2"><td class="memItemLeft" align="right" valign="top">NSUInteger </td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_m_q_t_t_persistence-p.html#a25da1e10303f72b9f5c0acded51780d2">maxMessages</a></td></tr> <tr class="separator:a25da1e10303f72b9f5c0acded51780d2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:abe825bce839eb0d41e4b7428893ad8b8"><td class="memItemLeft" align="right" valign="top">BOOL </td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_m_q_t_t_persistence-p.html#abe825bce839eb0d41e4b7428893ad8b8">persistent</a></td></tr> <tr class="separator:abe825bce839eb0d41e4b7428893ad8b8"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a9803a6b662157637e28949766186c3d5"><td class="memItemLeft" align="right" valign="top">NSUInteger </td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_m_q_t_t_persistence-p.html#a9803a6b662157637e28949766186c3d5">maxSize</a></td></tr> <tr class="separator:a9803a6b662157637e28949766186c3d5"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>The <a class="el" href="protocol_m_q_t_t_persistence-p.html">MQTTPersistence</a> protocol is an abstraction of persistence classes for <a class="el" href="interface_m_q_t_t_session.html">MQTTSession</a> </p> </div><h2 class="groupheader">Method Documentation</h2> <a id="a513e62e567e187ce73fab26f53d2272a"></a> <h2 class="memtitle"><span class="permalink"><a href="#a513e62e567e187ce73fab26f53d2272a">◆ </a></span>allFlowsforClientId:incomingFlag:()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">- (NSArray *) allFlowsforClientId: </td> <td></td> <td class="paramtype">(NSString *) </td> <td class="paramname"><em>clientId</em></td> </tr> <tr> <td class="paramkey">incomingFlag:</td> <td></td> <td class="paramtype">(BOOL) </td> <td class="paramname"><em>incomingFlag</em> </td> </tr> <tr> <td></td> <td></td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Retrieves all <a class="el" href="interface_m_q_t_t_flow.html">MQTTFlow</a> elements of a clientId and direction </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">clientId</td><td>whos MQTTFlows should be retrieved </td></tr> <tr><td class="paramname">incomingFlag</td><td>specifies the wether incoming or outgoing flows should be retrieved </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>an NSArray of the retrieved <a class="el" href="interface_m_q_t_t_flow.html">MQTTFlow</a> elements </dd></dl> </div> </div> <a id="a2c880d902ade2b17078545cef8d212e7"></a> <h2 class="memtitle"><span class="permalink"><a href="#a2c880d902ade2b17078545cef8d212e7">◆ </a></span>deleteAllFlowsForClientId:()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">- (void) deleteAllFlowsForClientId: </td> <td></td> <td class="paramtype">(NSString *) </td> <td class="paramname"><em>clientId</em></td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Deletes all <a class="el" href="interface_m_q_t_t_flow.html">MQTTFlow</a> elements of a clientId </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">clientId</td><td>the client Id identifying all MQTTFlows to be deleted </td></tr> </table> </dd> </dl> </div> </div> <a id="a415cc2c67ea2e73d7942973a2186d083"></a> <h2 class="memtitle"><span class="permalink"><a href="#a415cc2c67ea2e73d7942973a2186d083">◆ </a></span>deleteFlow:()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">- (void) deleteFlow: </td> <td></td> <td class="paramtype">(id< <a class="el" href="interface_m_q_t_t_flow.html">MQTTFlow</a> >) </td> <td class="paramname"><em>flow</em></td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Deletes an <a class="el" href="interface_m_q_t_t_flow.html">MQTTFlow</a> element </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">flow</td><td>the <a class="el" href="interface_m_q_t_t_flow.html">MQTTFlow</a> to delete </td></tr> </table> </dd> </dl> </div> </div> <a id="a2ca81852c486e32d888ef502b8dc47d5"></a> <h2 class="memtitle"><span class="permalink"><a href="#a2ca81852c486e32d888ef502b8dc47d5">◆ </a></span>flowforClientId:incomingFlag:messageId:()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">- (id<<a class="el" href="interface_m_q_t_t_flow.html">MQTTFlow</a>>) flowforClientId: </td> <td></td> <td class="paramtype">(NSString *) </td> <td class="paramname"><em>clientId</em></td> </tr> <tr> <td class="paramkey">incomingFlag:</td> <td></td> <td class="paramtype">(BOOL) </td> <td class="paramname"><em>incomingFlag</em></td> </tr> <tr> <td class="paramkey">messageId:</td> <td></td> <td class="paramtype">(UInt16) </td> <td class="paramname"><em>messageId</em> </td> </tr> <tr> <td></td> <td></td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Retrieves an <a class="el" href="interface_m_q_t_t_flow.html">MQTTFlow</a> element </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">clientId</td><td>to which the <a class="el" href="interface_m_q_t_t_flow.html">MQTTFlow</a> belongs to </td></tr> <tr><td class="paramname">incomingFlag</td><td>specifies the direction of the flow </td></tr> <tr><td class="paramname">messageId</td><td>specifies the message Id of the flow </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>the retrieved <a class="el" href="interface_m_q_t_t_flow.html">MQTTFlow</a> element or nil if the elememt was not found </dd></dl> </div> </div> <a id="ac4dcb1941bac80050f643fab3faf0fe4"></a> <h2 class="memtitle"><span class="permalink"><a href="#ac4dcb1941bac80050f643fab3faf0fe4">◆ </a></span>storeMessageForClientId:topic:data:retainFlag:qos:msgId:incomingFlag:commandType:deadline:()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">- (id<<a class="el" href="interface_m_q_t_t_flow.html">MQTTFlow</a>>) storeMessageForClientId: </td> <td></td> <td class="paramtype">(NSString *) </td> <td class="paramname"><em>clientId</em></td> </tr> <tr> <td class="paramkey">topic:</td> <td></td> <td class="paramtype">(NSString *) </td> <td class="paramname"><em>topic</em></td> </tr> <tr> <td class="paramkey">data:</td> <td></td> <td class="paramtype">(NSData *) </td> <td class="paramname"><em>data</em></td> </tr> <tr> <td class="paramkey">retainFlag:</td> <td></td> <td class="paramtype">(BOOL) </td> <td class="paramname"><em>retainFlag</em></td> </tr> <tr> <td class="paramkey">qos:</td> <td></td> <td class="paramtype">(MQTTQosLevel) </td> <td class="paramname"><em>qos</em></td> </tr> <tr> <td class="paramkey">msgId:</td> <td></td> <td class="paramtype">(UInt16) </td> <td class="paramname"><em>msgId</em></td> </tr> <tr> <td class="paramkey">incomingFlag:</td> <td></td> <td class="paramtype">(BOOL) </td> <td class="paramname"><em>incomingFlag</em></td> </tr> <tr> <td class="paramkey">commandType:</td> <td></td> <td class="paramtype">(UInt8) </td> <td class="paramname"><em>commandType</em></td> </tr> <tr> <td class="paramkey">deadline:</td> <td></td> <td class="paramtype">(NSDate *) </td> <td class="paramname"><em>deadline</em> </td> </tr> <tr> <td></td> <td></td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Stores one new message </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">clientId</td><td>identifying the session </td></tr> <tr><td class="paramname">topic</td><td>the topic of the message </td></tr> <tr><td class="paramname">data</td><td>the message's data </td></tr> <tr><td class="paramname">retainFlag</td><td>the retain flag of the message </td></tr> <tr><td class="paramname">qos</td><td>the quality of service of the message </td></tr> <tr><td class="paramname">msgId</td><td>the id of the message or zero for qos zero </td></tr> <tr><td class="paramname">incomingFlag</td><td>the direction of the message </td></tr> <tr><td class="paramname">commandType</td><td>the command of the message </td></tr> <tr><td class="paramname">deadline</td><td>the deadline of the message for repetitions </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>the created <a class="el" href="interface_m_q_t_t_flow.html">MQTTFlow</a> element or nil if the maxWindowSize has been exceeded </dd></dl> </div> </div> <a id="afd0744d75cb430bfa2c430e14c3a65e8"></a> <h2 class="memtitle"><span class="permalink"><a href="#afd0744d75cb430bfa2c430e14c3a65e8">◆ </a></span>sync()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">- (void) sync </td> <td></td> <td class="paramname"></td> <td></td> </tr> </table> </div><div class="memdoc"> <p>sync is called to allow the <a class="el" href="protocol_m_q_t_t_persistence-p.html">MQTTPersistence</a> implemetation to save data permanently </p> </div> </div> <a id="a8521b079578db32e593d841ce2941fc0"></a> <h2 class="memtitle"><span class="permalink"><a href="#a8521b079578db32e593d841ce2941fc0">◆ </a></span>windowSize:()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">- (NSUInteger) windowSize: </td> <td></td> <td class="paramtype">(NSString *) </td> <td class="paramname"><em>clientId</em></td> <td></td> </tr> </table> </div><div class="memdoc"> <p>The current Window Size for outgoing inflight messages per clientID. </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">clientId</td><td>identifying the session </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>the current size of the outgoing inflight window </dd></dl> </div> </div> <h2 class="groupheader">Property Documentation</h2> <a id="a25da1e10303f72b9f5c0acded51780d2"></a> <h2 class="memtitle"><span class="permalink"><a href="#a25da1e10303f72b9f5c0acded51780d2">◆ </a></span>maxMessages</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">- (NSUInteger) maxMessages</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">read</span><span class="mlabel">write</span><span class="mlabel">nonatomic</span><span class="mlabel">assign</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>The maximum number of messages kept per clientID and direction. Defaults to 1024 </p> </div> </div> <a id="a9803a6b662157637e28949766186c3d5"></a> <h2 class="memtitle"><span class="permalink"><a href="#a9803a6b662157637e28949766186c3d5">◆ </a></span>maxSize</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">- (NSUInteger) maxSize</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">read</span><span class="mlabel">write</span><span class="mlabel">nonatomic</span><span class="mlabel">assign</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>The maximum size of the storage used for persistence in total in bytes. Defaults to 1024*1024 bytes </p> </div> </div> <a id="a7566c5b7fff68c034ffd836c32d1b822"></a> <h2 class="memtitle"><span class="permalink"><a href="#a7566c5b7fff68c034ffd836c32d1b822">◆ </a></span>maxWindowSize</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">- (NSUInteger) maxWindowSize</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">read</span><span class="mlabel">write</span><span class="mlabel">nonatomic</span><span class="mlabel">assign</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>The maximum Window Size for outgoing inflight messages per clientID. Defaults to 16 </p> </div> </div> <a id="abe825bce839eb0d41e4b7428893ad8b8"></a> <h2 class="memtitle"><span class="permalink"><a href="#abe825bce839eb0d41e4b7428893ad8b8">◆ </a></span>persistent</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">- (BOOL) persistent</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">read</span><span class="mlabel">write</span><span class="mlabel">nonatomic</span><span class="mlabel">assign</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Indicates if the persistence implementation should make the information permannent. Defaults to NO </p> </div> </div> <hr/>The documentation for this protocol was generated from the following file:<ul> <li><a class="el" href="_m_q_t_t_persistence_8h_source.html">MQTTPersistence.h</a></li> </ul> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Wed Jul 26 2017 14:33:13 for MQTTClient by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.13 </small></address> </body> </html>