123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752 |
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.17"/>
- <meta name="viewport" content="width=device-width, initial-scale=1"/>
- <title>MQTT C Client Libraries Internals: SocketBuffer.c File 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="projectlogo"><img alt="Logo" src="pahologo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">MQTT C Client Libraries Internals
- </div>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <!-- end header part -->
- <!-- Generated by Doxygen 1.8.17 -->
- <script type="text/javascript">
- /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
- var searchBox = new SearchBox("searchBox", "search",false,'Search');
- /* @license-end */
- </script>
- <script type="text/javascript" src="menudata.js"></script>
- <script type="text/javascript" src="menu.js"></script>
- <script type="text/javascript">
- /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
- $(function() {
- initMenu('',true,false,'search.php','Search');
- $(document).ready(function() { init_search(); });
- });
- /* @license-end */</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="#func-members">Functions</a> |
- <a href="#var-members">Variables</a> </div>
- <div class="headertitle">
- <div class="title">SocketBuffer.c File Reference</div> </div>
- </div><!--header-->
- <div class="contents">
- <p>Socket buffering related functions.
- <a href="#details">More...</a></p>
- <div class="textblock"><code>#include "SocketBuffer.h"</code><br />
- <code>#include "LinkedList.h"</code><br />
- <code>#include "Log.h"</code><br />
- <code>#include "Messages.h"</code><br />
- <code>#include "StackTrace.h"</code><br />
- <code>#include <stdlib.h></code><br />
- <code>#include <stdio.h></code><br />
- <code>#include <string.h></code><br />
- <code>#include "Heap.h"</code><br />
- </div><div class="textblock"><div class="dynheader">
- Include dependency graph for SocketBuffer.c:</div>
- <div class="dyncontent">
- <div class="center"><img src="SocketBuffer_8c__incl.png" border="0" usemap="#SocketBuffer_8c" alt=""/></div>
- <map name="SocketBuffer_8c" id="SocketBuffer_8c">
- <area shape="rect" title="Socket buffering related functions." alt="" coords="69,5,175,32"/>
- <area shape="rect" title=" " alt="" coords="5,80,68,107"/>
- <area shape="rect" title=" " alt="" coords="92,80,152,107"/>
- <area shape="rect" title=" " alt="" coords="177,80,241,107"/>
- </map>
- </div>
- </div><table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
- Functions</h2></td></tr>
- <tr class="memitem:acebc1cbb93be4588f33b04ed404f6dbf"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="SocketBuffer_8c.html#acebc1cbb93be4588f33b04ed404f6dbf">socketcompare</a> (void *a, void *b)</td></tr>
- <tr class="memdesc:acebc1cbb93be4588f33b04ed404f6dbf"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="structList.html" title="Structure to hold all data for one list.">List</a> callback function for comparing socket_queues by socket. <a href="SocketBuffer_8c.html#acebc1cbb93be4588f33b04ed404f6dbf">More...</a><br /></td></tr>
- <tr class="separator:acebc1cbb93be4588f33b04ed404f6dbf"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a9293d4ef45aa2a51baab9be4eb73091b"><td class="memItemLeft" align="right" valign="top"><a id="a9293d4ef45aa2a51baab9be4eb73091b"></a>
- int </td><td class="memItemRight" valign="bottom"><a class="el" href="SocketBuffer_8c.html#a9293d4ef45aa2a51baab9be4eb73091b">SocketBuffer_newDefQ</a> (void)</td></tr>
- <tr class="memdesc:a9293d4ef45aa2a51baab9be4eb73091b"><td class="mdescLeft"> </td><td class="mdescRight">Create a new default queue when one has just been used. <br /></td></tr>
- <tr class="separator:a9293d4ef45aa2a51baab9be4eb73091b"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:acb4511a3a4767187a2607027aff718b8"><td class="memItemLeft" align="right" valign="top"><a id="acb4511a3a4767187a2607027aff718b8"></a>
- void </td><td class="memItemRight" valign="bottom"><a class="el" href="SocketBuffer_8c.html#acb4511a3a4767187a2607027aff718b8">SocketBuffer_freeDefQ</a> (void)</td></tr>
- <tr class="memdesc:acb4511a3a4767187a2607027aff718b8"><td class="mdescLeft"> </td><td class="mdescRight">Free the default queue memory. <br /></td></tr>
- <tr class="separator:acb4511a3a4767187a2607027aff718b8"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a39f1ee9c98bc12a7be4d7a40b03550d5"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="SocketBuffer_8c.html#a39f1ee9c98bc12a7be4d7a40b03550d5">pending_socketcompare</a> (void *a, void *b)</td></tr>
- <tr class="memdesc:a39f1ee9c98bc12a7be4d7a40b03550d5"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="structList.html" title="Structure to hold all data for one list.">List</a> callback function for comparing <a class="el" href="structpending__writes.html">pending_writes</a> by socket. <a href="SocketBuffer_8c.html#a39f1ee9c98bc12a7be4d7a40b03550d5">More...</a><br /></td></tr>
- <tr class="separator:a39f1ee9c98bc12a7be4d7a40b03550d5"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:abc8599ffc6f7ad91a7748e5d78bbd926"><td class="memItemLeft" align="right" valign="top"><a id="abc8599ffc6f7ad91a7748e5d78bbd926"></a>
- int </td><td class="memItemRight" valign="bottom"><a class="el" href="SocketBuffer_8c.html#abc8599ffc6f7ad91a7748e5d78bbd926">SocketBuffer_initialize</a> (void)</td></tr>
- <tr class="memdesc:abc8599ffc6f7ad91a7748e5d78bbd926"><td class="mdescLeft"> </td><td class="mdescRight">Initialize the socketBuffer module. <br /></td></tr>
- <tr class="separator:abc8599ffc6f7ad91a7748e5d78bbd926"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a4a8d6188b4775789810a44396d05cf19"><td class="memItemLeft" align="right" valign="top"><a id="a4a8d6188b4775789810a44396d05cf19"></a>
- void </td><td class="memItemRight" valign="bottom"><a class="el" href="SocketBuffer_8c.html#a4a8d6188b4775789810a44396d05cf19">SocketBuffer_terminate</a> (void)</td></tr>
- <tr class="memdesc:a4a8d6188b4775789810a44396d05cf19"><td class="mdescLeft"> </td><td class="mdescRight">Terminate the socketBuffer module. <br /></td></tr>
- <tr class="separator:a4a8d6188b4775789810a44396d05cf19"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:abb5eae96f4c62d1e6fefed8d078ecba8"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="SocketBuffer_8c.html#abb5eae96f4c62d1e6fefed8d078ecba8">SocketBuffer_cleanup</a> (SOCKET socket)</td></tr>
- <tr class="memdesc:abb5eae96f4c62d1e6fefed8d078ecba8"><td class="mdescLeft"> </td><td class="mdescRight">Cleanup any buffers for a specific socket. <a href="SocketBuffer_8c.html#abb5eae96f4c62d1e6fefed8d078ecba8">More...</a><br /></td></tr>
- <tr class="separator:abb5eae96f4c62d1e6fefed8d078ecba8"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:afcc9b9b6bd255b0a6e4c7e4f5a36bb37"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="SocketBuffer_8c.html#afcc9b9b6bd255b0a6e4c7e4f5a36bb37">SocketBuffer_getQueuedData</a> (SOCKET socket, size_t <a class="el" href="utf-8_8c.html#abf4b7aec66b165e9a0a8e3a4ad69f863">bytes</a>, size_t *actual_len)</td></tr>
- <tr class="memdesc:afcc9b9b6bd255b0a6e4c7e4f5a36bb37"><td class="mdescLeft"> </td><td class="mdescRight">Get any queued data for a specific socket. <a href="SocketBuffer_8c.html#afcc9b9b6bd255b0a6e4c7e4f5a36bb37">More...</a><br /></td></tr>
- <tr class="separator:afcc9b9b6bd255b0a6e4c7e4f5a36bb37"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a999ec229faa4b2e2c0f7db87693bc1f8"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="SocketBuffer_8c.html#a999ec229faa4b2e2c0f7db87693bc1f8">SocketBuffer_getQueuedChar</a> (SOCKET socket, char *c)</td></tr>
- <tr class="memdesc:a999ec229faa4b2e2c0f7db87693bc1f8"><td class="mdescLeft"> </td><td class="mdescRight">Get any queued character for a specific socket. <a href="SocketBuffer_8c.html#a999ec229faa4b2e2c0f7db87693bc1f8">More...</a><br /></td></tr>
- <tr class="separator:a999ec229faa4b2e2c0f7db87693bc1f8"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a412a40b44b12901e63e662ac0e5be0af"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="SocketBuffer_8c.html#a412a40b44b12901e63e662ac0e5be0af">SocketBuffer_interrupted</a> (SOCKET socket, size_t actual_len)</td></tr>
- <tr class="memdesc:a412a40b44b12901e63e662ac0e5be0af"><td class="mdescLeft"> </td><td class="mdescRight">A socket read was interrupted so we need to queue data. <a href="SocketBuffer_8c.html#a412a40b44b12901e63e662ac0e5be0af">More...</a><br /></td></tr>
- <tr class="separator:a412a40b44b12901e63e662ac0e5be0af"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a8b7b6acbf2ec65796c32da7fd55c3ee8"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="SocketBuffer_8c.html#a8b7b6acbf2ec65796c32da7fd55c3ee8">SocketBuffer_complete</a> (SOCKET socket)</td></tr>
- <tr class="memdesc:a8b7b6acbf2ec65796c32da7fd55c3ee8"><td class="mdescLeft"> </td><td class="mdescRight">A socket read has now completed so we can get rid of the queue. <a href="SocketBuffer_8c.html#a8b7b6acbf2ec65796c32da7fd55c3ee8">More...</a><br /></td></tr>
- <tr class="separator:a8b7b6acbf2ec65796c32da7fd55c3ee8"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a2f6bac9a46fd116e58071ff49152d716"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="SocketBuffer_8c.html#a2f6bac9a46fd116e58071ff49152d716">SocketBuffer_queueChar</a> (SOCKET socket, char c)</td></tr>
- <tr class="memdesc:a2f6bac9a46fd116e58071ff49152d716"><td class="mdescLeft"> </td><td class="mdescRight">Queued a Charactor to a specific socket. <a href="SocketBuffer_8c.html#a2f6bac9a46fd116e58071ff49152d716">More...</a><br /></td></tr>
- <tr class="separator:a2f6bac9a46fd116e58071ff49152d716"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:aa61a564b814b06d9cfd3fe9ce7ab1cf7"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="SocketBuffer_8c.html#aa61a564b814b06d9cfd3fe9ce7ab1cf7">SocketBuffer_pendingWrite</a> (SOCKET socket, int count, iobuf *iovecs, int *frees, size_t total, size_t <a class="el" href="utf-8_8c.html#abf4b7aec66b165e9a0a8e3a4ad69f863">bytes</a>)</td></tr>
- <tr class="memdesc:aa61a564b814b06d9cfd3fe9ce7ab1cf7"><td class="mdescLeft"> </td><td class="mdescRight">A socket write was interrupted so store the remaining data. <a href="SocketBuffer_8c.html#aa61a564b814b06d9cfd3fe9ce7ab1cf7">More...</a><br /></td></tr>
- <tr class="separator:aa61a564b814b06d9cfd3fe9ce7ab1cf7"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a524311e577a7225a09fb944904c17886"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structpending__writes.html">pending_writes</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="SocketBuffer_8c.html#a524311e577a7225a09fb944904c17886">SocketBuffer_getWrite</a> (SOCKET socket)</td></tr>
- <tr class="memdesc:a524311e577a7225a09fb944904c17886"><td class="mdescLeft"> </td><td class="mdescRight">Get any queued write data for a specific socket. <a href="SocketBuffer_8c.html#a524311e577a7225a09fb944904c17886">More...</a><br /></td></tr>
- <tr class="separator:a524311e577a7225a09fb944904c17886"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ae8667990c5933c3af9b90a163bba34dc"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="SocketBuffer_8c.html#ae8667990c5933c3af9b90a163bba34dc">SocketBuffer_writeComplete</a> (SOCKET socket)</td></tr>
- <tr class="memdesc:ae8667990c5933c3af9b90a163bba34dc"><td class="mdescLeft"> </td><td class="mdescRight">A socket write has now completed so we can get rid of the queue. <a href="SocketBuffer_8c.html#ae8667990c5933c3af9b90a163bba34dc">More...</a><br /></td></tr>
- <tr class="separator:ae8667990c5933c3af9b90a163bba34dc"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a7ba9075e011f49302304ce7b2d8e5b59"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structpending__writes.html">pending_writes</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="SocketBuffer_8c.html#a7ba9075e011f49302304ce7b2d8e5b59">SocketBuffer_updateWrite</a> (SOCKET socket, char *topic, char *payload)</td></tr>
- <tr class="memdesc:a7ba9075e011f49302304ce7b2d8e5b59"><td class="mdescLeft"> </td><td class="mdescRight">Update the queued write data for a socket in the case of QoS 0 messages. <a href="SocketBuffer_8c.html#a7ba9075e011f49302304ce7b2d8e5b59">More...</a><br /></td></tr>
- <tr class="separator:a7ba9075e011f49302304ce7b2d8e5b59"><td class="memSeparator" colspan="2"> </td></tr>
- </table><table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
- Variables</h2></td></tr>
- <tr class="memitem:ace376d23d15b97a487298fa0c8a238ea"><td class="memItemLeft" align="right" valign="top"><a id="ace376d23d15b97a487298fa0c8a238ea"></a>
- static <a class="el" href="structsocket__queue.html">socket_queue</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="SocketBuffer_8c.html#ace376d23d15b97a487298fa0c8a238ea">def_queue</a></td></tr>
- <tr class="memdesc:ace376d23d15b97a487298fa0c8a238ea"><td class="mdescLeft"> </td><td class="mdescRight">Default input queue buffer. <br /></td></tr>
- <tr class="separator:ace376d23d15b97a487298fa0c8a238ea"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:aa8b85db4dca13d13c2b7fc704420323a"><td class="memItemLeft" align="right" valign="top"><a id="aa8b85db4dca13d13c2b7fc704420323a"></a>
- static <a class="el" href="structList.html">List</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="SocketBuffer_8c.html#aa8b85db4dca13d13c2b7fc704420323a">queues</a></td></tr>
- <tr class="memdesc:aa8b85db4dca13d13c2b7fc704420323a"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="structList.html" title="Structure to hold all data for one list.">List</a> of queued input buffers. <br /></td></tr>
- <tr class="separator:aa8b85db4dca13d13c2b7fc704420323a"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a913f78789f0cbfb26a5dcf6618d51d87"><td class="memItemLeft" align="right" valign="top"><a id="a913f78789f0cbfb26a5dcf6618d51d87"></a>
- static <a class="el" href="structList.html">List</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="SocketBuffer_8c.html#a913f78789f0cbfb26a5dcf6618d51d87">writes</a></td></tr>
- <tr class="memdesc:a913f78789f0cbfb26a5dcf6618d51d87"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="structList.html" title="Structure to hold all data for one list.">List</a> of queued write buffers. <br /></td></tr>
- <tr class="separator:a913f78789f0cbfb26a5dcf6618d51d87"><td class="memSeparator" colspan="2"> </td></tr>
- </table>
- <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
- <div class="textblock"><p>Socket buffering related functions. </p>
- <p>Some other related functions are in the Socket module </p>
- </div><h2 class="groupheader">Function Documentation</h2>
- <a id="a39f1ee9c98bc12a7be4d7a40b03550d5"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a39f1ee9c98bc12a7be4d7a40b03550d5">◆ </a></span>pending_socketcompare()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int pending_socketcompare </td>
- <td>(</td>
- <td class="paramtype">void * </td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">void * </td>
- <td class="paramname"><em>b</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p><a class="el" href="structList.html" title="Structure to hold all data for one list.">List</a> callback function for comparing <a class="el" href="structpending__writes.html">pending_writes</a> by socket. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">a</td><td>first integer value </td></tr>
- <tr><td class="paramname">b</td><td>second integer value </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>boolean indicating whether a and b are equal </dd></dl>
- </div>
- </div>
- <a id="abb5eae96f4c62d1e6fefed8d078ecba8"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#abb5eae96f4c62d1e6fefed8d078ecba8">◆ </a></span>SocketBuffer_cleanup()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void SocketBuffer_cleanup </td>
- <td>(</td>
- <td class="paramtype">SOCKET </td>
- <td class="paramname"><em>socket</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Cleanup any buffers for a specific socket. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">socket</td><td>the socket to clean up </td></tr>
- </table>
- </dd>
- </dl>
- <div class="dynheader">
- Here is the call graph for this function:</div>
- <div class="dyncontent">
- <div class="center"><img src="SocketBuffer_8c_abb5eae96f4c62d1e6fefed8d078ecba8_cgraph.png" border="0" usemap="#SocketBuffer_8c_abb5eae96f4c62d1e6fefed8d078ecba8_cgraph" alt=""/></div>
- <map name="SocketBuffer_8c_abb5eae96f4c62d1e6fefed8d078ecba8_cgraph" id="SocketBuffer_8c_abb5eae96f4c62d1e6fefed8d078ecba8_cgraph">
- <area shape="rect" title="Cleanup any buffers for a specific socket." alt="" coords="5,56,155,83"/>
- <area shape="rect" href="LinkedList_8c.html#acad319e9ce896ff1fff30ddbeb06d22d" title="Finds an element in a list by comparing the content or pointer to the content." alt="" coords="777,5,872,32"/>
- <area shape="rect" href="LinkedList_8c.html#a8430370b2b15c56ec95bb8e7e36753a5" title="Removes and frees an item in a list by comparing the pointer to the content." alt="" coords="473,31,565,57"/>
- <area shape="rect" href="SocketBuffer_8c.html#ae8667990c5933c3af9b90a163bba34dc" title="A socket write has now completed so we can get rid of the queue." alt="" coords="203,81,389,108"/>
- <area shape="rect" href="SocketBuffer_8c.html#acebc1cbb93be4588f33b04ed404f6dbf" title="List callback function for comparing socket_queues by socket." alt="" coords="241,132,351,159"/>
- <area shape="rect" href="LinkedList_8c.html#a7c6fba7f4b569c69829676bed2852ee9" title="Forward iteration through a list." alt="" coords="920,5,1039,32"/>
- <area shape="rect" href="LinkedList_8c.html#ab82181e0c1d96954f82dee67cee41296" title="Removes and optionally frees an element in a list by comparing the content." alt="" coords="648,31,729,57"/>
- <area shape="rect" href="LinkedList_8c.html#a4bb7c34fe9a5832d65f530091e0fad0d" title="Removes and frees an element in a list by comparing the content." alt="" coords="459,81,578,108"/>
- <area shape="rect" href="SocketBuffer_8c.html#a39f1ee9c98bc12a7be4d7a40b03550d5" title="List callback function for comparing pending_writes by socket." alt="" coords="437,132,600,159"/>
- </map>
- </div>
- </div>
- </div>
- <a id="a8b7b6acbf2ec65796c32da7fd55c3ee8"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a8b7b6acbf2ec65796c32da7fd55c3ee8">◆ </a></span>SocketBuffer_complete()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">char* SocketBuffer_complete </td>
- <td>(</td>
- <td class="paramtype">SOCKET </td>
- <td class="paramname"><em>socket</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>A socket read has now completed so we can get rid of the queue. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">socket</td><td>the socket for which the operation is now complete </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>pointer to the default queue data </dd></dl>
- <div class="dynheader">
- Here is the call graph for this function:</div>
- <div class="dyncontent">
- <div class="center"><img src="SocketBuffer_8c_a8b7b6acbf2ec65796c32da7fd55c3ee8_cgraph.png" border="0" usemap="#SocketBuffer_8c_a8b7b6acbf2ec65796c32da7fd55c3ee8_cgraph" alt=""/></div>
- <map name="SocketBuffer_8c_a8b7b6acbf2ec65796c32da7fd55c3ee8_cgraph" id="SocketBuffer_8c_a8b7b6acbf2ec65796c32da7fd55c3ee8_cgraph">
- <area shape="rect" title="A socket read has now completed so we can get rid of the queue." alt="" coords="5,81,163,108"/>
- <area shape="rect" href="LinkedList_8c.html#ab2bcc1897abf1d98490ea81c474dba52" title="Removes but does not free an item in a list by comparing the pointer to the content." alt="" coords="246,5,331,32"/>
- <area shape="rect" href="LinkedList_8c.html#acad319e9ce896ff1fff30ddbeb06d22d" title="Finds an element in a list by comparing the content or pointer to the content." alt="" coords="544,31,639,57"/>
- <area shape="rect" href="SocketBuffer_8c.html#acb4511a3a4767187a2607027aff718b8" title="Free the default queue memory." alt="" coords="211,107,367,133"/>
- <area shape="rect" href="SocketBuffer_8c.html#acebc1cbb93be4588f33b04ed404f6dbf" title="List callback function for comparing socket_queues by socket." alt="" coords="233,157,344,184"/>
- <area shape="rect" href="LinkedList_8c.html#ab82181e0c1d96954f82dee67cee41296" title="Removes and optionally frees an element in a list by comparing the content." alt="" coords="415,5,496,32"/>
- <area shape="rect" href="LinkedList_8c.html#a7c6fba7f4b569c69829676bed2852ee9" title="Forward iteration through a list." alt="" coords="687,31,805,57"/>
- </map>
- </div>
- </div>
- </div>
- <a id="a999ec229faa4b2e2c0f7db87693bc1f8"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a999ec229faa4b2e2c0f7db87693bc1f8">◆ </a></span>SocketBuffer_getQueuedChar()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int SocketBuffer_getQueuedChar </td>
- <td>(</td>
- <td class="paramtype">SOCKET </td>
- <td class="paramname"><em>socket</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">char * </td>
- <td class="paramname"><em>c</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Get any queued character for a specific socket. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">socket</td><td>the socket to get queued data for </td></tr>
- <tr><td class="paramname">c</td><td>the character returned if any </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>completion code </dd></dl>
- <div class="dynheader">
- Here is the call graph for this function:</div>
- <div class="dyncontent">
- <div class="center"><img src="SocketBuffer_8c_a999ec229faa4b2e2c0f7db87693bc1f8_cgraph.png" border="0" usemap="#SocketBuffer_8c_a999ec229faa4b2e2c0f7db87693bc1f8_cgraph" alt=""/></div>
- <map name="SocketBuffer_8c_a999ec229faa4b2e2c0f7db87693bc1f8_cgraph" id="SocketBuffer_8c_a999ec229faa4b2e2c0f7db87693bc1f8_cgraph">
- <area shape="rect" title="Get any queued character for a specific socket." alt="" coords="5,56,200,83"/>
- <area shape="rect" href="LinkedList_8c.html#acad319e9ce896ff1fff30ddbeb06d22d" title="Finds an element in a list by comparing the content or pointer to the content." alt="" coords="256,5,351,32"/>
- <area shape="rect" href="Log_8c.html#a669722e3f57811871f97c12392aba85d" title="Log a message." alt="" coords="281,56,325,83"/>
- <area shape="rect" href="SocketBuffer_8c.html#acebc1cbb93be4588f33b04ed404f6dbf" title="List callback function for comparing socket_queues by socket." alt="" coords="248,107,359,133"/>
- <area shape="rect" href="LinkedList_8c.html#a7c6fba7f4b569c69829676bed2852ee9" title="Forward iteration through a list." alt="" coords="407,5,525,32"/>
- </map>
- </div>
- </div>
- </div>
- <a id="afcc9b9b6bd255b0a6e4c7e4f5a36bb37"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#afcc9b9b6bd255b0a6e4c7e4f5a36bb37">◆ </a></span>SocketBuffer_getQueuedData()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">char* SocketBuffer_getQueuedData </td>
- <td>(</td>
- <td class="paramtype">SOCKET </td>
- <td class="paramname"><em>socket</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>bytes</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t * </td>
- <td class="paramname"><em>actual_len</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Get any queued data for a specific socket. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">socket</td><td>the socket to get queued data for </td></tr>
- <tr><td class="paramname">bytes</td><td>the number of bytes of data to retrieve </td></tr>
- <tr><td class="paramname">actual_len</td><td>the actual length returned </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>the actual data </dd></dl>
- <div class="dynheader">
- Here is the call graph for this function:</div>
- <div class="dyncontent">
- <div class="center"><img src="SocketBuffer_8c_afcc9b9b6bd255b0a6e4c7e4f5a36bb37_cgraph.png" border="0" usemap="#SocketBuffer_8c_afcc9b9b6bd255b0a6e4c7e4f5a36bb37_cgraph" alt=""/></div>
- <map name="SocketBuffer_8c_afcc9b9b6bd255b0a6e4c7e4f5a36bb37_cgraph" id="SocketBuffer_8c_afcc9b9b6bd255b0a6e4c7e4f5a36bb37_cgraph">
- <area shape="rect" title="Get any queued data for a specific socket." alt="" coords="5,31,200,57"/>
- <area shape="rect" href="LinkedList_8c.html#acad319e9ce896ff1fff30ddbeb06d22d" title="Finds an element in a list by comparing the content or pointer to the content." alt="" coords="256,5,351,32"/>
- <area shape="rect" href="SocketBuffer_8c.html#acebc1cbb93be4588f33b04ed404f6dbf" title="List callback function for comparing socket_queues by socket." alt="" coords="248,56,359,83"/>
- <area shape="rect" href="LinkedList_8c.html#a7c6fba7f4b569c69829676bed2852ee9" title="Forward iteration through a list." alt="" coords="407,5,525,32"/>
- </map>
- </div>
- </div>
- </div>
- <a id="a524311e577a7225a09fb944904c17886"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a524311e577a7225a09fb944904c17886">◆ </a></span>SocketBuffer_getWrite()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="structpending__writes.html">pending_writes</a>* SocketBuffer_getWrite </td>
- <td>(</td>
- <td class="paramtype">SOCKET </td>
- <td class="paramname"><em>socket</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Get any queued write data for a specific socket. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">socket</td><td>the socket to get queued data for </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>pointer to the queued data or NULL </dd></dl>
- <div class="dynheader">
- Here is the call graph for this function:</div>
- <div class="dyncontent">
- <div class="center"><img src="SocketBuffer_8c_a524311e577a7225a09fb944904c17886_cgraph.png" border="0" usemap="#SocketBuffer_8c_a524311e577a7225a09fb944904c17886_cgraph" alt=""/></div>
- <map name="SocketBuffer_8c_a524311e577a7225a09fb944904c17886_cgraph" id="SocketBuffer_8c_a524311e577a7225a09fb944904c17886_cgraph">
- <area shape="rect" title="Get any queued write data for a specific socket." alt="" coords="5,31,157,57"/>
- <area shape="rect" href="LinkedList_8c.html#acad319e9ce896ff1fff30ddbeb06d22d" title="Finds an element in a list by comparing the content or pointer to the content." alt="" coords="239,5,334,32"/>
- <area shape="rect" href="SocketBuffer_8c.html#a39f1ee9c98bc12a7be4d7a40b03550d5" title="List callback function for comparing pending_writes by socket." alt="" coords="205,56,368,83"/>
- <area shape="rect" href="LinkedList_8c.html#a7c6fba7f4b569c69829676bed2852ee9" title="Forward iteration through a list." alt="" coords="416,5,535,32"/>
- </map>
- </div>
- </div>
- </div>
- <a id="a412a40b44b12901e63e662ac0e5be0af"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a412a40b44b12901e63e662ac0e5be0af">◆ </a></span>SocketBuffer_interrupted()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void SocketBuffer_interrupted </td>
- <td>(</td>
- <td class="paramtype">SOCKET </td>
- <td class="paramname"><em>socket</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>actual_len</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>A socket read was interrupted so we need to queue data. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">socket</td><td>the socket to get queued data for </td></tr>
- <tr><td class="paramname">actual_len</td><td>the actual length of data that was read </td></tr>
- </table>
- </dd>
- </dl>
- <div class="dynheader">
- Here is the call graph for this function:</div>
- <div class="dyncontent">
- <div class="center"><img src="SocketBuffer_8c_a412a40b44b12901e63e662ac0e5be0af_cgraph.png" border="0" usemap="#SocketBuffer_8c_a412a40b44b12901e63e662ac0e5be0af_cgraph" alt=""/></div>
- <map name="SocketBuffer_8c_a412a40b44b12901e63e662ac0e5be0af_cgraph" id="SocketBuffer_8c_a412a40b44b12901e63e662ac0e5be0af_cgraph">
- <area shape="rect" title="A socket read was interrupted so we need to queue data." alt="" coords="5,81,171,108"/>
- <area shape="rect" href="LinkedList_8c.html#abc7a28449893dfa775c2f709349968b4" title="Append an item to a list." alt="" coords="254,5,342,32"/>
- <area shape="rect" href="LinkedList_8c.html#acad319e9ce896ff1fff30ddbeb06d22d" title="Finds an element in a list by comparing the content or pointer to the content." alt="" coords="251,56,345,83"/>
- <area shape="rect" href="SocketBuffer_8c.html#a9293d4ef45aa2a51baab9be4eb73091b" title="Create a new default queue when one has just been used." alt="" coords="219,107,377,133"/>
- <area shape="rect" href="SocketBuffer_8c.html#acebc1cbb93be4588f33b04ed404f6dbf" title="List callback function for comparing socket_queues by socket." alt="" coords="243,157,353,184"/>
- <area shape="rect" href="LinkedList_8c.html#a321a3598d6979c7af3f995b77ea2cec3" title="Append an already allocated ListElement and content to a list." alt="" coords="425,5,568,32"/>
- <area shape="rect" href="LinkedList_8c.html#a7c6fba7f4b569c69829676bed2852ee9" title="Forward iteration through a list." alt="" coords="437,56,556,83"/>
- </map>
- </div>
- </div>
- </div>
- <a id="aa61a564b814b06d9cfd3fe9ce7ab1cf7"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#aa61a564b814b06d9cfd3fe9ce7ab1cf7">◆ </a></span>SocketBuffer_pendingWrite()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int SocketBuffer_pendingWrite </td>
- <td>(</td>
- <td class="paramtype">SOCKET </td>
- <td class="paramname"><em>socket</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>count</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">iobuf * </td>
- <td class="paramname"><em>iovecs</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int * </td>
- <td class="paramname"><em>frees</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>total</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>bytes</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>A socket write was interrupted so store the remaining data. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">socket</td><td>the socket for which the write was interrupted </td></tr>
- <tr><td class="paramname">count</td><td>the number of iovec buffers </td></tr>
- <tr><td class="paramname">iovecs</td><td>buffer array </td></tr>
- <tr><td class="paramname">frees</td><td>a set of flags indicating which of the iovecs array should be freed </td></tr>
- <tr><td class="paramname">total</td><td>total data length to be written </td></tr>
- <tr><td class="paramname">bytes</td><td>actual data length that was written </td></tr>
- </table>
- </dd>
- </dl>
- <div class="dynheader">
- Here is the call graph for this function:</div>
- <div class="dyncontent">
- <div class="center"><img src="SocketBuffer_8c_aa61a564b814b06d9cfd3fe9ce7ab1cf7_cgraph.png" border="0" usemap="#SocketBuffer_8c_aa61a564b814b06d9cfd3fe9ce7ab1cf7_cgraph" alt=""/></div>
- <map name="SocketBuffer_8c_aa61a564b814b06d9cfd3fe9ce7ab1cf7_cgraph" id="SocketBuffer_8c_aa61a564b814b06d9cfd3fe9ce7ab1cf7_cgraph">
- <area shape="rect" title="A socket write was interrupted so store the remaining data." alt="" coords="5,5,184,32"/>
- <area shape="rect" href="LinkedList_8c.html#abc7a28449893dfa775c2f709349968b4" title="Append an item to a list." alt="" coords="232,5,320,32"/>
- <area shape="rect" href="LinkedList_8c.html#a321a3598d6979c7af3f995b77ea2cec3" title="Append an already allocated ListElement and content to a list." alt="" coords="368,5,511,32"/>
- </map>
- </div>
- </div>
- </div>
- <a id="a2f6bac9a46fd116e58071ff49152d716"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a2f6bac9a46fd116e58071ff49152d716">◆ </a></span>SocketBuffer_queueChar()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void SocketBuffer_queueChar </td>
- <td>(</td>
- <td class="paramtype">SOCKET </td>
- <td class="paramname"><em>socket</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">char </td>
- <td class="paramname"><em>c</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Queued a Charactor to a specific socket. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">socket</td><td>the socket for which to queue char for </td></tr>
- <tr><td class="paramname">c</td><td>the character to queue </td></tr>
- </table>
- </dd>
- </dl>
- <div class="dynheader">
- Here is the call graph for this function:</div>
- <div class="dyncontent">
- <div class="center"><img src="SocketBuffer_8c_a2f6bac9a46fd116e58071ff49152d716_cgraph.png" border="0" usemap="#SocketBuffer_8c_a2f6bac9a46fd116e58071ff49152d716_cgraph" alt=""/></div>
- <map name="SocketBuffer_8c_a2f6bac9a46fd116e58071ff49152d716_cgraph" id="SocketBuffer_8c_a2f6bac9a46fd116e58071ff49152d716_cgraph">
- <area shape="rect" title="Queued a Charactor to a specific socket." alt="" coords="5,56,172,83"/>
- <area shape="rect" href="LinkedList_8c.html#acad319e9ce896ff1fff30ddbeb06d22d" title="Finds an element in a list by comparing the content or pointer to the content." alt="" coords="228,5,323,32"/>
- <area shape="rect" href="Log_8c.html#a669722e3f57811871f97c12392aba85d" title="Log a message." alt="" coords="253,56,297,83"/>
- <area shape="rect" href="SocketBuffer_8c.html#acebc1cbb93be4588f33b04ed404f6dbf" title="List callback function for comparing socket_queues by socket." alt="" coords="220,107,331,133"/>
- <area shape="rect" href="LinkedList_8c.html#a7c6fba7f4b569c69829676bed2852ee9" title="Forward iteration through a list." alt="" coords="379,5,497,32"/>
- </map>
- </div>
- </div>
- </div>
- <a id="a7ba9075e011f49302304ce7b2d8e5b59"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a7ba9075e011f49302304ce7b2d8e5b59">◆ </a></span>SocketBuffer_updateWrite()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="structpending__writes.html">pending_writes</a>* SocketBuffer_updateWrite </td>
- <td>(</td>
- <td class="paramtype">SOCKET </td>
- <td class="paramname"><em>socket</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">char * </td>
- <td class="paramname"><em>topic</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">char * </td>
- <td class="paramname"><em>payload</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Update the queued write data for a socket in the case of QoS 0 messages. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">socket</td><td>the socket for which the operation is now complete </td></tr>
- <tr><td class="paramname">topic</td><td>the topic of the QoS 0 write </td></tr>
- <tr><td class="paramname">payload</td><td>the payload of the QoS 0 write </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>pointer to the updated queued data structure, or NULL </dd></dl>
- <div class="dynheader">
- Here is the call graph for this function:</div>
- <div class="dyncontent">
- <div class="center"><img src="SocketBuffer_8c_a7ba9075e011f49302304ce7b2d8e5b59_cgraph.png" border="0" usemap="#SocketBuffer_8c_a7ba9075e011f49302304ce7b2d8e5b59_cgraph" alt=""/></div>
- <map name="SocketBuffer_8c_a7ba9075e011f49302304ce7b2d8e5b59_cgraph" id="SocketBuffer_8c_a7ba9075e011f49302304ce7b2d8e5b59_cgraph">
- <area shape="rect" title="Update the queued write data for a socket in the case of QoS 0 messages." alt="" coords="5,31,179,57"/>
- <area shape="rect" href="LinkedList_8c.html#acad319e9ce896ff1fff30ddbeb06d22d" title="Finds an element in a list by comparing the content or pointer to the content." alt="" coords="261,5,355,32"/>
- <area shape="rect" href="SocketBuffer_8c.html#a39f1ee9c98bc12a7be4d7a40b03550d5" title="List callback function for comparing pending_writes by socket." alt="" coords="227,56,389,83"/>
- <area shape="rect" href="LinkedList_8c.html#a7c6fba7f4b569c69829676bed2852ee9" title="Forward iteration through a list." alt="" coords="437,5,556,32"/>
- </map>
- </div>
- </div>
- </div>
- <a id="ae8667990c5933c3af9b90a163bba34dc"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#ae8667990c5933c3af9b90a163bba34dc">◆ </a></span>SocketBuffer_writeComplete()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int SocketBuffer_writeComplete </td>
- <td>(</td>
- <td class="paramtype">SOCKET </td>
- <td class="paramname"><em>socket</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>A socket write has now completed so we can get rid of the queue. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">socket</td><td>the socket for which the operation is now complete </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>completion code, boolean - was the queue removed? </dd></dl>
- <div class="dynheader">
- Here is the call graph for this function:</div>
- <div class="dyncontent">
- <div class="center"><img src="SocketBuffer_8c_ae8667990c5933c3af9b90a163bba34dc_cgraph.png" border="0" usemap="#SocketBuffer_8c_ae8667990c5933c3af9b90a163bba34dc_cgraph" alt=""/></div>
- <map name="SocketBuffer_8c_ae8667990c5933c3af9b90a163bba34dc_cgraph" id="SocketBuffer_8c_ae8667990c5933c3af9b90a163bba34dc_cgraph">
- <area shape="rect" title="A socket write has now completed so we can get rid of the queue." alt="" coords="5,31,192,57"/>
- <area shape="rect" href="LinkedList_8c.html#a4bb7c34fe9a5832d65f530091e0fad0d" title="Removes and frees an element in a list by comparing the content." alt="" coords="262,5,381,32"/>
- <area shape="rect" href="SocketBuffer_8c.html#a39f1ee9c98bc12a7be4d7a40b03550d5" title="List callback function for comparing pending_writes by socket." alt="" coords="240,56,403,83"/>
- <area shape="rect" href="LinkedList_8c.html#ab82181e0c1d96954f82dee67cee41296" title="Removes and optionally frees an element in a list by comparing the content." alt="" coords="451,5,532,32"/>
- <area shape="rect" href="LinkedList_8c.html#acad319e9ce896ff1fff30ddbeb06d22d" title="Finds an element in a list by comparing the content or pointer to the content." alt="" coords="580,5,675,32"/>
- <area shape="rect" href="LinkedList_8c.html#a7c6fba7f4b569c69829676bed2852ee9" title="Forward iteration through a list." alt="" coords="723,5,841,32"/>
- </map>
- </div>
- </div>
- </div>
- <a id="acebc1cbb93be4588f33b04ed404f6dbf"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#acebc1cbb93be4588f33b04ed404f6dbf">◆ </a></span>socketcompare()</h2>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int socketcompare </td>
- <td>(</td>
- <td class="paramtype">void * </td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">void * </td>
- <td class="paramname"><em>b</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p><a class="el" href="structList.html" title="Structure to hold all data for one list.">List</a> callback function for comparing socket_queues by socket. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">a</td><td>first integer value </td></tr>
- <tr><td class="paramname">b</td><td>second integer value </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>boolean indicating whether a and b are equal </dd></dl>
- </div>
- </div>
- </div><!-- contents -->
- <!-- start footer part -->
- <hr class="footer"/><address class="footer"><small>
- Generated on Thu Sep 29 2022 11:34:46 for MQTT C Client Libraries Internals by  <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/>
- </a> 1.8.17
- </small></address>
- </body>
- </html>
|