| <!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>mqttpp: mqtt::iclient_persistence Class 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.1 --> |
| <div class="navigation" id="top"> |
| <div class="tabs"> |
| <ul> |
| <li><a href="main.html"><span>Main Page</span></a></li> |
| <li class="current"><a href="annotated.html"><span>Classes</span></a></li> |
| <li><a href="files.html"><span>Files</span></a></li> |
| </ul> |
| </div> |
| <div class="tabs"> |
| <ul> |
| <li><a href="annotated.html"><span>Class List</span></a></li> |
| <li><a href="classes.html"><span>Class Index</span></a></li> |
| <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> |
| <li><a href="functions.html"><span>Class Members</span></a></li> |
| </ul> |
| </div> |
| <div class="navpath"><b>mqtt</b>::<a class="el" href="classmqtt_1_1iclient__persistence.html">iclient_persistence</a> |
| </div> |
| </div> |
| <div class="contents"> |
| <h1>mqtt::iclient_persistence Class Reference</h1><!-- doxytag: class="mqtt::iclient_persistence" --> |
| <p>Represents a persistent data store, used to store outbound and inbound messages while they are in flight, enabling delivery to the QoS specified. |
| <a href="#_details">More...</a></p> |
| |
| <p><code>#include <<a class="el" href="iclient__persistence_8h_source.html">iclient_persistence.h</a>></code></p> |
| |
| <p><a href="classmqtt_1_1iclient__persistence-members.html">List of all members.</a></p> |
| <table border="0" cellpadding="0" cellspacing="0"> |
| <tr><td colspan="2"><h2>Public Types</h2></td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9cd7ac5f4878f0f35f4e34f6a5f4eeb9"></a><!-- doxytag: member="mqtt::iclient_persistence::ptr_t" ref="a9cd7ac5f4878f0f35f4e34f6a5f4eeb9" args="" --> |
| typedef std::shared_ptr<br class="typebreak"/> |
| < <a class="el" href="classmqtt_1_1iclient__persistence.html">iclient_persistence</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1iclient__persistence.html#a9cd7ac5f4878f0f35f4e34f6a5f4eeb9">ptr_t</a></td></tr> |
| <tr><td class="mdescLeft"> </td><td class="mdescRight">Smart/shared pointer to this class. <br/></td></tr> |
| <tr><td colspan="2"><h2>Public Member Functions</h2></td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaf9a10b4dc43863f8d62f708e3f8571b"></a><!-- doxytag: member="mqtt::iclient_persistence::~iclient_persistence" ref="aaf9a10b4dc43863f8d62f708e3f8571b" args="()" --> |
| virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1iclient__persistence.html#aaf9a10b4dc43863f8d62f708e3f8571b">~iclient_persistence</a> ()</td></tr> |
| <tr><td class="mdescLeft"> </td><td class="mdescRight">Virtual destructor. <br/></td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa784f608f08b7c94416d05b58d585e7f"></a><!-- doxytag: member="mqtt::iclient_persistence::open" ref="aa784f608f08b7c94416d05b58d585e7f" args="(const std::string &clientId, const std::string &serverURI)=0" --> |
| virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1iclient__persistence.html#aa784f608f08b7c94416d05b58d585e7f">open</a> (const std::string &clientId, const std::string &serverURI)=0</td></tr> |
| <tr><td class="mdescLeft"> </td><td class="mdescRight">Initialise the persistent store. <br/></td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4777bfc318f827d2535ae5e47b1909a5"></a><!-- doxytag: member="mqtt::iclient_persistence::close" ref="a4777bfc318f827d2535ae5e47b1909a5" args="()=0" --> |
| virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1iclient__persistence.html#a4777bfc318f827d2535ae5e47b1909a5">close</a> ()=0</td></tr> |
| <tr><td class="mdescLeft"> </td><td class="mdescRight">Close the persistent store that was previously opened. <br/></td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adb6ad819aea04897b69e411dd1cb5fc7"></a><!-- doxytag: member="mqtt::iclient_persistence::clear" ref="adb6ad819aea04897b69e411dd1cb5fc7" args="()=0" --> |
| virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1iclient__persistence.html#adb6ad819aea04897b69e411dd1cb5fc7">clear</a> ()=0</td></tr> |
| <tr><td class="mdescLeft"> </td><td class="mdescRight">Clears persistence, so that it no longer contains any persisted data. <br/></td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1iclient__persistence.html#ac417f896f753ae8e9b7a8aba44cec14c">contains_key</a> (const std::string &key)=0</td></tr> |
| <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns whether or not data is persisted using the specified key. <a href="#ac417f896f753ae8e9b7a8aba44cec14c"></a><br/></td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top">virtual ipersistable_ptr </td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1iclient__persistence.html#a1b34567d0d0bc3642bd262e01b82116a">get</a> (const std::string &key) const =0</td></tr> |
| <tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the specified data out of the persistent store. <a href="#a1b34567d0d0bc3642bd262e01b82116a"></a><br/></td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6e1abf103bec79b291d2057b56fe9fe1"></a><!-- doxytag: member="mqtt::iclient_persistence::keys" ref="a6e1abf103bec79b291d2057b56fe9fe1" args="() const =0" --> |
| virtual std::vector< std::string > </td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1iclient__persistence.html#a6e1abf103bec79b291d2057b56fe9fe1">keys</a> () const =0</td></tr> |
| <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns an Enumeration over the keys in this persistent data store. <br/></td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1iclient__persistence.html#a5d8ad6890091067bea50e005dabbe456">put</a> (const std::string &key, ipersistable_ptr persistable)=0</td></tr> |
| <tr><td class="mdescLeft"> </td><td class="mdescRight">Puts the specified data into the persistent store. <a href="#a5d8ad6890091067bea50e005dabbe456"></a><br/></td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1iclient__persistence.html#ab1d22e9d9dcf2ef5f9f6fa8ab20f29cd">remove</a> (const std::string &key)=0</td></tr> |
| <tr><td class="mdescLeft"> </td><td class="mdescRight">Remove the data for the specified key. <a href="#ab1d22e9d9dcf2ef5f9f6fa8ab20f29cd"></a><br/></td></tr> |
| <tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1885f1b75bed2561dcd4874f27c5d329"></a><!-- doxytag: member="mqtt::iclient_persistence::persistence_open" ref="a1885f1b75bed2561dcd4874f27c5d329" args="(void **handle, char *clientID, char *serverURI, void *context)" --> |
| static int </td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1iclient__persistence.html#a1885f1b75bed2561dcd4874f27c5d329">persistence_open</a> (void **handle, char *clientID, char *serverURI, void *context)</td></tr> |
| <tr><td class="mdescLeft"> </td><td class="mdescRight">C-callbacks. <br/></td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab02463853c8fa051cf5611cf62e107df"></a><!-- doxytag: member="mqtt::iclient_persistence::persistence_close" ref="ab02463853c8fa051cf5611cf62e107df" args="(void *handle)" --> |
| static int </td><td class="memItemRight" valign="bottom"><b>persistence_close</b> (void *handle)</td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acffa6a20d9480c45c25c7a5089e96427"></a><!-- doxytag: member="mqtt::iclient_persistence::persistence_put" ref="acffa6a20d9480c45c25c7a5089e96427" args="(void *handle, char *key, int bufcount, char *buffers[], int buflens[])" --> |
| static int </td><td class="memItemRight" valign="bottom"><b>persistence_put</b> (void *handle, char *key, int bufcount, char *buffers[], int buflens[])</td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3a86be1220cac51094543ad5bf6ce532"></a><!-- doxytag: member="mqtt::iclient_persistence::persistence_get" ref="a3a86be1220cac51094543ad5bf6ce532" args="(void *handle, char *key, char **buffer, int *buflen)" --> |
| static int </td><td class="memItemRight" valign="bottom"><b>persistence_get</b> (void *handle, char *key, char **buffer, int *buflen)</td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1f67ddfea0b9514bd192e8917287d902"></a><!-- doxytag: member="mqtt::iclient_persistence::persistence_remove" ref="a1f67ddfea0b9514bd192e8917287d902" args="(void *handle, char *key)" --> |
| static int </td><td class="memItemRight" valign="bottom"><b>persistence_remove</b> (void *handle, char *key)</td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a04cf803cd8e6a3dd39d962904cb479dd"></a><!-- doxytag: member="mqtt::iclient_persistence::persistence_keys" ref="a04cf803cd8e6a3dd39d962904cb479dd" args="(void *handle, char ***keys, int *nkeys)" --> |
| static int </td><td class="memItemRight" valign="bottom"><b>persistence_keys</b> (void *handle, char ***keys, int *nkeys)</td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af9e9d5a8e1b0268071034401328d4a39"></a><!-- doxytag: member="mqtt::iclient_persistence::persistence_clear" ref="af9e9d5a8e1b0268071034401328d4a39" args="(void *handle)" --> |
| static int </td><td class="memItemRight" valign="bottom"><b>persistence_clear</b> (void *handle)</td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaf81a19fb7d9487cff17095ecf8e0cb3"></a><!-- doxytag: member="mqtt::iclient_persistence::persistence_containskey" ref="aaf81a19fb7d9487cff17095ecf8e0cb3" args="(void *handle, char *key)" --> |
| static int </td><td class="memItemRight" valign="bottom"><b>persistence_containskey</b> (void *handle, char *key)</td></tr> |
| <tr><td colspan="2"><h2>Friends</h2></td></tr> |
| <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a94700dc97a0e5ed493cb6543727633ff"></a><!-- doxytag: member="mqtt::iclient_persistence::iasync_client" ref="a94700dc97a0e5ed493cb6543727633ff" args="" --> |
| class </td><td class="memItemRight" valign="bottom"><b>iasync_client</b></td></tr> |
| </table> |
| <hr/><a name="_details"></a><h2>Detailed Description</h2> |
| <p>Represents a persistent data store, used to store outbound and inbound messages while they are in flight, enabling delivery to the QoS specified. </p> |
| <p>You can specify an implementation of this interface using client::client(string, string, iclient_persistence), which the <a class="el" href="classmqtt_1_1client.html" title="Lightweight client for talking to an MQTT server using methods that block until an...">client</a> will use to persist QoS 1 and 2 messages.</p> |
| <p>If the methods defined throw the MqttPersistenceException then the state of the data persisted should remain as prior to the method being called. For example, if put(string, persistable) throws an <a class="el" href="classmqtt_1_1exception.html" title="Provides a mechanism for tracking the completion of an asynchronous action.">exception</a> at any point then the data will be assumed to not be in the persistent store. Similarly if remove(string) throws an <a class="el" href="classmqtt_1_1exception.html" title="Provides a mechanism for tracking the completion of an asynchronous action.">exception</a> then the data will be assumed to still be held in the persistent store.</p> |
| <p>It is up to the persistence interface to log any exceptions or error information which may be required when diagnosing a persistence failure. </p> |
| <hr/><h2>Member Function Documentation</h2> |
| <a class="anchor" id="ac417f896f753ae8e9b7a8aba44cec14c"></a><!-- doxytag: member="mqtt::iclient_persistence::contains_key" ref="ac417f896f753ae8e9b7a8aba44cec14c" args="(const std::string &key)=0" --> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">virtual bool mqtt::iclient_persistence::contains_key </td> |
| <td>(</td> |
| <td class="paramtype">const std::string & </td> |
| <td class="paramname"> <em>key</em></td> |
| <td> ) </td> |
| <td><code> [pure virtual]</code></td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p>Returns whether or not data is 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>key</em> </td><td></td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="return"><dt><b>Returns:</b></dt><dd>bool </dd></dl> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a1b34567d0d0bc3642bd262e01b82116a"></a><!-- doxytag: member="mqtt::iclient_persistence::get" ref="a1b34567d0d0bc3642bd262e01b82116a" args="(const std::string &key) const =0" --> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">virtual ipersistable_ptr mqtt::iclient_persistence::get </td> |
| <td>(</td> |
| <td class="paramtype">const std::string & </td> |
| <td class="paramname"> <em>key</em></td> |
| <td> ) </td> |
| <td> const<code> [pure virtual]</code></td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p>Gets the specified data out of 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>key</em> </td><td></td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="return"><dt><b>Returns:</b></dt><dd>persistable </dd></dl> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a5d8ad6890091067bea50e005dabbe456"></a><!-- doxytag: member="mqtt::iclient_persistence::put" ref="a5d8ad6890091067bea50e005dabbe456" args="(const std::string &key, ipersistable_ptr persistable)=0" --> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">virtual void mqtt::iclient_persistence::put </td> |
| <td>(</td> |
| <td class="paramtype">const std::string & </td> |
| <td class="paramname"> <em>key</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">ipersistable_ptr </td> |
| <td class="paramname"> <em>persistable</em></td><td> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td><td><code> [pure virtual]</code></td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p>Puts 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>key</em> </td><td></td></tr> |
| <tr><td valign="top"></td><td valign="top"><em>persistable</em> </td><td></td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a class="anchor" id="ab1d22e9d9dcf2ef5f9f6fa8ab20f29cd"></a><!-- doxytag: member="mqtt::iclient_persistence::remove" ref="ab1d22e9d9dcf2ef5f9f6fa8ab20f29cd" args="(const std::string &key)=0" --> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">virtual void mqtt::iclient_persistence::remove </td> |
| <td>(</td> |
| <td class="paramtype">const std::string & </td> |
| <td class="paramname"> <em>key</em></td> |
| <td> ) </td> |
| <td><code> [pure virtual]</code></td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p>Remove the data for 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>key</em> </td><td></td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <hr/>The documentation for this class was generated from the following file:<ul> |
| <li>mqtt/<a class="el" href="iclient__persistence_8h_source.html">iclient_persistence.h</a></li> |
| </ul> |
| </div> |
| <hr size="1"/><address style="text-align: right;"><small>Generated on 30 Apr 2014 for mqttpp by |
| <a href="http://www.doxygen.org/index.html"> |
| <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address> |
| </body> |
| </html> |