%PDF- %PDF-
Direktori : /proc/self/root/proc/self/root/usr/share/nagios/html/docs/ |
Current File : //proc/self/root/proc/self/root/usr/share/nagios/html/docs/iobroker_8h.html |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.5"/> <title>Nagios: iobroker.h 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/search.js"></script> <script type="text/javascript"> $(document).ready(function() { searchBox.OnSelectItem(0); }); </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 style="padding-left: 0.5em;"> <div id="projectname">Nagios  <span id="projectnumber">4.4.3</span> </div> <div id="projectbrief">Dev docs for Nagios core and neb-module hackers</div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.5 --> <script type="text/javascript"> var searchBox = new SearchBox("searchBox", "search",false,'Search'); </script> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> <li> <div id="MSearchBox" class="MSearchBoxInactive"> <span class="left"> <img id="MSearchSelect" src="search/mag_sel.png" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/> <input type="text" id="MSearchField" value="Search" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/> </span><span class="right"> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> </span> </div> </li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </div> <!-- window showing the filter options --> <div id="MSearchSelectWindow" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" onkeydown="return searchBox.OnSearchSelectKey(event)"> <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Pages</a></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 id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="dir_97aefd0d527b934f1d99a682da8fe6a9.html">lib</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="headertitle"> <div class="title">iobroker.h File Reference</div> </div> </div><!--header--> <div class="contents"> <p>I/O broker library function declarations. <a href="#details">More...</a></p> <p><a href="iobroker_8h_source.html">Go to the source code of this file.</a></p> <table class="memberdecls"> <tr class="memitem:a058b00736e233a480fe735f6e931a93c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a058b00736e233a480fe735f6e931a93c"></a> #define </td><td class="memItemRight" valign="bottom"><b>IOBROKER_USES_EPOLL</b>   1</td></tr> <tr class="separator:a058b00736e233a480fe735f6e931a93c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac76b8537229c5c34d4037698a82cfaa9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac76b8537229c5c34d4037698a82cfaa9"></a> #define </td><td class="memItemRight" valign="bottom"><b>IOBROKER_POLLIN</b>   0x001 /* there is data to read */</td></tr> <tr class="separator:ac76b8537229c5c34d4037698a82cfaa9"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac03960a81668e36c83438f9830c7ca6f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac03960a81668e36c83438f9830c7ca6f"></a> #define </td><td class="memItemRight" valign="bottom"><b>IOBROKER_POLLPRI</b>   0x002 /* there is urgent data to read */</td></tr> <tr class="separator:ac03960a81668e36c83438f9830c7ca6f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a69317fbf66d90b9bd8dbfbb4bbf0fabb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a69317fbf66d90b9bd8dbfbb4bbf0fabb"></a> #define </td><td class="memItemRight" valign="bottom"><b>IOBROKER_POLLOUT</b>   0x004 /* writing now will not block */</td></tr> <tr class="separator:a69317fbf66d90b9bd8dbfbb4bbf0fabb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aadf24c5d6350ae3f7363a445feb3d56f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aadf24c5d6350ae3f7363a445feb3d56f"></a> #define </td><td class="memItemRight" valign="bottom"><b>IOBROKER_POLLERR</b>   0x008 /* error condition */</td></tr> <tr class="separator:aadf24c5d6350ae3f7363a445feb3d56f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a134677dee9ed6aa84283f9bcd226a46b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a134677dee9ed6aa84283f9bcd226a46b"></a> #define </td><td class="memItemRight" valign="bottom"><b>IOBROKER_POLLHUP</b>   0x010 /* hung up */</td></tr> <tr class="separator:a134677dee9ed6aa84283f9bcd226a46b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa3156616d57759dbc509d6b1053b40f0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa3156616d57759dbc509d6b1053b40f0"></a> #define </td><td class="memItemRight" valign="bottom"><b>IOBROKER_POLLNVAL</b>   0x020 /* invalid polling request */</td></tr> <tr class="separator:aa3156616d57759dbc509d6b1053b40f0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a01747cdc4071c6cfd727b98c4c8cc092"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a01747cdc4071c6cfd727b98c4c8cc092"></a> #define </td><td class="memItemRight" valign="bottom"><a class="el" href="iobroker_8h.html#a01747cdc4071c6cfd727b98c4c8cc092">IOBROKER_SUCCESS</a>   0</td></tr> <tr class="memdesc:a01747cdc4071c6cfd727b98c4c8cc092"><td class="mdescLeft"> </td><td class="mdescRight">return codes <br/></td></tr> <tr class="separator:a01747cdc4071c6cfd727b98c4c8cc092"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:acafebb88ad75b31885de928fa5fb8da8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acafebb88ad75b31885de928fa5fb8da8"></a> #define </td><td class="memItemRight" valign="bottom"><b>IOBROKER_ENOSET</b>   (-1)</td></tr> <tr class="separator:acafebb88ad75b31885de928fa5fb8da8"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7d7fce0d8bf23bbcac35bcd27a31b0d6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7d7fce0d8bf23bbcac35bcd27a31b0d6"></a> #define </td><td class="memItemRight" valign="bottom"><b>IOBROKER_ENOINIT</b>   (-2)</td></tr> <tr class="separator:a7d7fce0d8bf23bbcac35bcd27a31b0d6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aff4108e94d678ceac4bba6a0da3a5e60"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aff4108e94d678ceac4bba6a0da3a5e60"></a> #define </td><td class="memItemRight" valign="bottom"><b>IOBROKER_ELIB</b>   (-3)</td></tr> <tr class="separator:aff4108e94d678ceac4bba6a0da3a5e60"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a78a4d823a4795c7d6f9f5dc7605f0a79"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a78a4d823a4795c7d6f9f5dc7605f0a79"></a> #define </td><td class="memItemRight" valign="bottom"><b>IOBROKER_EALREADY</b>   (-EALREADY)</td></tr> <tr class="separator:a78a4d823a4795c7d6f9f5dc7605f0a79"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af30394932ebafe8dbc10e9a0ac21c315"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af30394932ebafe8dbc10e9a0ac21c315"></a> #define </td><td class="memItemRight" valign="bottom"><b>IOBROKER_EINVAL</b>   (-EINVAL)</td></tr> <tr class="separator:af30394932ebafe8dbc10e9a0ac21c315"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae079f612675142c7cd5ad7951fef844f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae079f612675142c7cd5ad7951fef844f"></a> #define </td><td class="memItemRight" valign="bottom"><a class="el" href="iobroker_8h.html#ae079f612675142c7cd5ad7951fef844f">IOBROKER_CLOSE_SOCKETS</a>   1</td></tr> <tr class="memdesc:ae079f612675142c7cd5ad7951fef844f"><td class="mdescLeft"> </td><td class="mdescRight">Flags for <a class="el" href="iobroker_8h.html#a119114df9338a665c9b5c080e9fa5488" title="Destroy a socket set as created by iobroker_create. ">iobroker_destroy()</a> <br/></td></tr> <tr class="separator:ae079f612675142c7cd5ad7951fef844f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a43b4bfd0e714403a0029512a53075f5a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a43b4bfd0e714403a0029512a53075f5a"></a> typedef struct iobroker_set </td><td class="memItemRight" valign="bottom"><b>iobroker_set</b></td></tr> <tr class="separator:a43b4bfd0e714403a0029512a53075f5a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aaa47539fb9efb59dda5b656962b88115"><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="iobroker_8h.html#aaa47539fb9efb59dda5b656962b88115">iobroker_strerror</a> (int error)</td></tr> <tr class="memdesc:aaa47539fb9efb59dda5b656962b88115"><td class="mdescLeft"> </td><td class="mdescRight">Get a string describing the error in the last iobroker call. <a href="#aaa47539fb9efb59dda5b656962b88115">More...</a><br/></td></tr> <tr class="separator:aaa47539fb9efb59dda5b656962b88115"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab98a4209c26e1995374e81ed262f0114"><td class="memItemLeft" align="right" valign="top">iobroker_set * </td><td class="memItemRight" valign="bottom"><a class="el" href="iobroker_8h.html#ab98a4209c26e1995374e81ed262f0114">iobroker_create</a> (void)</td></tr> <tr class="memdesc:ab98a4209c26e1995374e81ed262f0114"><td class="mdescLeft"> </td><td class="mdescRight">Create a new socket set. <a href="#ab98a4209c26e1995374e81ed262f0114">More...</a><br/></td></tr> <tr class="separator:ab98a4209c26e1995374e81ed262f0114"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2a93e68c4699387290151ebd8f05ef97"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="iobroker_8h.html#a2a93e68c4699387290151ebd8f05ef97">iobroker_max_usable_fds</a> (void)</td></tr> <tr class="memdesc:a2a93e68c4699387290151ebd8f05ef97"><td class="mdescLeft"> </td><td class="mdescRight">Published utility function used to determine the max number of file descriptors this process can keep open at any one time. <a href="#a2a93e68c4699387290151ebd8f05ef97">More...</a><br/></td></tr> <tr class="separator:a2a93e68c4699387290151ebd8f05ef97"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac3d3b9c54f65c31ce8ade64ef0bea74c"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="iobroker_8h.html#ac3d3b9c54f65c31ce8ade64ef0bea74c">iobroker_register</a> (iobroker_set *iobs, int sd, void *arg, int(*handler)(int, int, void *))</td></tr> <tr class="memdesc:ac3d3b9c54f65c31ce8ade64ef0bea74c"><td class="mdescLeft"> </td><td class="mdescRight">Register a socket for input polling with the broker. <a href="#ac3d3b9c54f65c31ce8ade64ef0bea74c">More...</a><br/></td></tr> <tr class="separator:ac3d3b9c54f65c31ce8ade64ef0bea74c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7f6241909e446f56b01572a278e5f364"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="iobroker_8h.html#a7f6241909e446f56b01572a278e5f364">iobroker_register_out</a> (iobroker_set *iobs, int sd, void *arg, int(*handler)(int, int, void *))</td></tr> <tr class="memdesc:a7f6241909e446f56b01572a278e5f364"><td class="mdescLeft"> </td><td class="mdescRight">Register a socket for output polling with the broker. <a href="#a7f6241909e446f56b01572a278e5f364">More...</a><br/></td></tr> <tr class="separator:a7f6241909e446f56b01572a278e5f364"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af76eec2d9ae7b1b2dc156a66135a6570"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="iobroker_8h.html#af76eec2d9ae7b1b2dc156a66135a6570">iobroker_is_registered</a> (iobroker_set *iobs, int fd)</td></tr> <tr class="memdesc:af76eec2d9ae7b1b2dc156a66135a6570"><td class="mdescLeft"> </td><td class="mdescRight">Check if a particular filedescriptor is registered with the iobroker set. <a href="#af76eec2d9ae7b1b2dc156a66135a6570">More...</a><br/></td></tr> <tr class="separator:af76eec2d9ae7b1b2dc156a66135a6570"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a146d39dd114ebd6b913a148b7ecf76b4"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="iobroker_8h.html#a146d39dd114ebd6b913a148b7ecf76b4">iobroker_get_num_fds</a> (iobroker_set *iobs)</td></tr> <tr class="memdesc:a146d39dd114ebd6b913a148b7ecf76b4"><td class="mdescLeft"> </td><td class="mdescRight">Getter function for number of file descriptors registered in the set specified. <a href="#a146d39dd114ebd6b913a148b7ecf76b4">More...</a><br/></td></tr> <tr class="separator:a146d39dd114ebd6b913a148b7ecf76b4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad42b227f853f6a6ffa6aa5783436e5a8"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="iobroker_8h.html#ad42b227f853f6a6ffa6aa5783436e5a8">iobroker_get_max_fds</a> (iobroker_set *iobs)</td></tr> <tr class="memdesc:ad42b227f853f6a6ffa6aa5783436e5a8"><td class="mdescLeft"> </td><td class="mdescRight">Getter function for the maximum amount of file descriptors this set can handle. <a href="#ad42b227f853f6a6ffa6aa5783436e5a8">More...</a><br/></td></tr> <tr class="separator:ad42b227f853f6a6ffa6aa5783436e5a8"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3bf36dbcc59b65d4380899cde3f80062"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="iobroker_8h.html#a3bf36dbcc59b65d4380899cde3f80062">iobroker_unregister</a> (iobroker_set *iobs, int sd)</td></tr> <tr class="memdesc:a3bf36dbcc59b65d4380899cde3f80062"><td class="mdescLeft"> </td><td class="mdescRight">Unregister a socket for input polling with the broker. <a href="#a3bf36dbcc59b65d4380899cde3f80062">More...</a><br/></td></tr> <tr class="separator:a3bf36dbcc59b65d4380899cde3f80062"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a941f637ee76bf2e3e3cb2ac5bfcb27c0"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="iobroker_8h.html#a941f637ee76bf2e3e3cb2ac5bfcb27c0">iobroker_deregister</a> (iobroker_set *iobs, int sd)</td></tr> <tr class="memdesc:a941f637ee76bf2e3e3cb2ac5bfcb27c0"><td class="mdescLeft"> </td><td class="mdescRight">Deregister a socket for input polling with the broker (this is identical to <a class="el" href="iobroker_8h.html#a3bf36dbcc59b65d4380899cde3f80062" title="Unregister a socket for input polling with the broker. ">iobroker_unregister()</a>) <a href="#a941f637ee76bf2e3e3cb2ac5bfcb27c0">More...</a><br/></td></tr> <tr class="separator:a941f637ee76bf2e3e3cb2ac5bfcb27c0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad1f531997eb0d3577edf973dc674c310"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="iobroker_8h.html#ad1f531997eb0d3577edf973dc674c310">iobroker_close</a> (iobroker_set *iobs, int sd)</td></tr> <tr class="memdesc:ad1f531997eb0d3577edf973dc674c310"><td class="mdescLeft"> </td><td class="mdescRight">Unregister and close(2) a socket registered for input with the broker. <a href="#ad1f531997eb0d3577edf973dc674c310">More...</a><br/></td></tr> <tr class="separator:ad1f531997eb0d3577edf973dc674c310"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a119114df9338a665c9b5c080e9fa5488"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="iobroker_8h.html#a119114df9338a665c9b5c080e9fa5488">iobroker_destroy</a> (iobroker_set *iobs, int flags)</td></tr> <tr class="memdesc:a119114df9338a665c9b5c080e9fa5488"><td class="mdescLeft"> </td><td class="mdescRight">Destroy a socket set as created by iobroker_create. <a href="#a119114df9338a665c9b5c080e9fa5488">More...</a><br/></td></tr> <tr class="separator:a119114df9338a665c9b5c080e9fa5488"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a562fa312e3d9ef8c2cf4b70aaf9d5e95"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="iobroker_8h.html#a562fa312e3d9ef8c2cf4b70aaf9d5e95">iobroker_poll</a> (iobroker_set *iobs, int timeout)</td></tr> <tr class="memdesc:a562fa312e3d9ef8c2cf4b70aaf9d5e95"><td class="mdescLeft"> </td><td class="mdescRight">Wait for input on any of the registered sockets. <a href="#a562fa312e3d9ef8c2cf4b70aaf9d5e95">More...</a><br/></td></tr> <tr class="separator:a562fa312e3d9ef8c2cf4b70aaf9d5e95"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>I/O broker library function declarations. </p> <p>The I/O broker library handles multiplexing between hundreds or thousands of sockets with a few simple calls. It's designed to be as lightweight as possible so as to not cause memory bloat, and is therefore highly suitable for use by processes that are fork()-intensive. </p> </div><h2 class="groupheader">Function Documentation</h2> <a class="anchor" id="ad1f531997eb0d3577edf973dc674c310"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int iobroker_close </td> <td>(</td> <td class="paramtype">iobroker_set * </td> <td class="paramname"><em>iobs</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>sd</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Unregister and close(2) a socket registered for input with the broker. </p> <p>This is a convenience function which exists only to avoid doing multiple calls when read() returns 0, as closed sockets must always be removed from the socket set to avoid consuming tons of cpu power from iterating "too fast" over the file descriptors.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">iobs</td><td>The socket set to remove the socket from </td></tr> <tr><td class="paramname">sd</td><td>The socket descriptor to remove and close </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>0 on success. < 0 on errors </dd></dl> </div> </div> <a class="anchor" id="ab98a4209c26e1995374e81ed262f0114"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">iobroker_set* iobroker_create </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Create a new socket set. </p> <dl class="section return"><dt>Returns</dt><dd>An iobroker_set on success. NULL on errors. </dd></dl> </div> </div> <a class="anchor" id="a941f637ee76bf2e3e3cb2ac5bfcb27c0"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int iobroker_deregister </td> <td>(</td> <td class="paramtype">iobroker_set * </td> <td class="paramname"><em>iobs</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>sd</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Deregister a socket for input polling with the broker (this is identical to <a class="el" href="iobroker_8h.html#a3bf36dbcc59b65d4380899cde3f80062" title="Unregister a socket for input polling with the broker. ">iobroker_unregister()</a>) </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">iobs</td><td>The socket set to remove the socket from </td></tr> <tr><td class="paramname">sd</td><td>The socket descriptor to remove </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>0 on success. < 0 on errors. </dd></dl> </div> </div> <a class="anchor" id="a119114df9338a665c9b5c080e9fa5488"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void iobroker_destroy </td> <td>(</td> <td class="paramtype">iobroker_set * </td> <td class="paramname"><em>iobs</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>flags</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Destroy a socket set as created by iobroker_create. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">iobs</td><td>The socket set to destroy </td></tr> <tr><td class="paramname">flags</td><td>If set, close(2) all registered sockets </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ad42b227f853f6a6ffa6aa5783436e5a8"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int iobroker_get_max_fds </td> <td>(</td> <td class="paramtype">iobroker_set * </td> <td class="paramname"><em>iobs</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Getter function for the maximum amount of file descriptors this set can handle. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">iobs</td><td>The io broker set to query </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Max file descriptor capacity for the set </dd></dl> </div> </div> <a class="anchor" id="a146d39dd114ebd6b913a148b7ecf76b4"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int iobroker_get_num_fds </td> <td>(</td> <td class="paramtype">iobroker_set * </td> <td class="paramname"><em>iobs</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Getter function for number of file descriptors registered in the set specified. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">iobs</td><td>The io broker set to query </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Number of file descriptors registered in the set </dd></dl> </div> </div> <a class="anchor" id="af76eec2d9ae7b1b2dc156a66135a6570"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int iobroker_is_registered </td> <td>(</td> <td class="paramtype">iobroker_set * </td> <td class="paramname"><em>iobs</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>fd</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Check if a particular filedescriptor is registered with the iobroker set. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">iobs</td><td>The iobroker set the filedescriptor should be member of </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">fd</td><td>The filedescriptor to check for </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>1 if the filedescriptor is registered and 0 otherwise </dd></dl> </div> </div> <a class="anchor" id="a2a93e68c4699387290151ebd8f05ef97"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int iobroker_max_usable_fds </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Published utility function used to determine the max number of file descriptors this process can keep open at any one time. </p> <dl class="section return"><dt>Returns</dt><dd>Max number of filedescriptors we can keep open </dd></dl> </div> </div> <a class="anchor" id="a562fa312e3d9ef8c2cf4b70aaf9d5e95"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int iobroker_poll </td> <td>(</td> <td class="paramtype">iobroker_set * </td> <td class="paramname"><em>iobs</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>timeout</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Wait for input on any of the registered sockets. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">iobs</td><td>The socket set to wait for. </td></tr> <tr><td class="paramname">timeout</td><td>Timeout in milliseconds. -1 is "wait indefinitely" </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>-1 on errors, or number of filedescriptors with input </dd></dl> </div> </div> <a class="anchor" id="ac3d3b9c54f65c31ce8ade64ef0bea74c"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int iobroker_register </td> <td>(</td> <td class="paramtype">iobroker_set * </td> <td class="paramname"><em>iobs</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>sd</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>arg</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int(*)(int, int, void *) </td> <td class="paramname"><em>handler</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Register a socket for input polling with the broker. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">iobs</td><td>The socket set to add the socket to. </td></tr> <tr><td class="paramname">sd</td><td>The socket descriptor to add </td></tr> <tr><td class="paramname">arg</td><td>Argument passed to input handler on available input </td></tr> <tr><td class="paramname">handler</td><td>The callback function to call when input is available</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>0 on success. < 0 on errors. </dd></dl> </div> </div> <a class="anchor" id="a7f6241909e446f56b01572a278e5f364"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int iobroker_register_out </td> <td>(</td> <td class="paramtype">iobroker_set * </td> <td class="paramname"><em>iobs</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>sd</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>arg</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int(*)(int, int, void *) </td> <td class="paramname"><em>handler</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Register a socket for output polling with the broker. </p> <dl class="section note"><dt>Note</dt><dd>There's no guarantee that <em>ALL</em> data is writable just because the socket won't block you completely.</dd></dl> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">iobs</td><td>The socket set to add the socket to. </td></tr> <tr><td class="paramname">sd</td><td>The socket descriptor to add </td></tr> <tr><td class="paramname">arg</td><td>Argument passed to output handler on ready-to-write </td></tr> <tr><td class="paramname">handler</td><td>The function to call when output won't block</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>0 on success. < 0 on errors </dd></dl> </div> </div> <a class="anchor" id="aaa47539fb9efb59dda5b656962b88115"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const char* iobroker_strerror </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>error</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Get a string describing the error in the last iobroker call. </p> <p>The returned string must not be free()'d. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">error</td><td>The error code </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>A string describing the meaning of the error code </dd></dl> </div> </div> <a class="anchor" id="a3bf36dbcc59b65d4380899cde3f80062"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int iobroker_unregister </td> <td>(</td> <td class="paramtype">iobroker_set * </td> <td class="paramname"><em>iobs</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>sd</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Unregister a socket for input polling with the broker. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">iobs</td><td>The socket set to remove the socket from </td></tr> <tr><td class="paramname">sd</td><td>The socket descriptor to remove </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>0 on success. < 0 on errors. </dd></dl> </div> </div> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.5 </small></address> </body> </html>