Sophie

Sophie

distrib > Fedora > 18 > i386 > by-pkgid > ee8fafc31a7ba3ce3ae4499cedf4e1bc > files > 71

libssh-devel-0.5.5-1.fc18.i686.rpm

<!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.3.1"/>
<title>libssh: The SSH poll functions.</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="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">libssh
   &#160;<span id="projectnumber">0.5.5</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.3.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">The SSH poll functions.<div class="ingroups"><a class="el" href="group__libssh.html">The libssh API</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>Add a generic way to handle sockets asynchronously.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga26ad689751420b91bf002f616e8bf4f7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__poll.html#ga26ad689751420b91bf002f616e8bf4f7">ssh_poll_add_events</a> (ssh_poll_handle p, short events)</td></tr>
<tr class="memdesc:ga26ad689751420b91bf002f616e8bf4f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add extra events to a poll object.  <a href="#ga26ad689751420b91bf002f616e8bf4f7">More...</a><br/></td></tr>
<tr class="separator:ga26ad689751420b91bf002f616e8bf4f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2c9eca31ff21406f13c1b7472ae8c85b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__poll.html#ga2c9eca31ff21406f13c1b7472ae8c85b">ssh_poll_ctx_add</a> (ssh_poll_ctx ctx, ssh_poll_handle p)</td></tr>
<tr class="memdesc:ga2c9eca31ff21406f13c1b7472ae8c85b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a poll object to a poll context.  <a href="#ga2c9eca31ff21406f13c1b7472ae8c85b">More...</a><br/></td></tr>
<tr class="separator:ga2c9eca31ff21406f13c1b7472ae8c85b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4aa3ef276370adbb4afb284947dc8005"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__poll.html#ga4aa3ef276370adbb4afb284947dc8005">ssh_poll_ctx_add_socket</a> (ssh_poll_ctx ctx, ssh_socket s)</td></tr>
<tr class="memdesc:ga4aa3ef276370adbb4afb284947dc8005"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a socket object to a poll context.  <a href="#ga4aa3ef276370adbb4afb284947dc8005">More...</a><br/></td></tr>
<tr class="separator:ga4aa3ef276370adbb4afb284947dc8005"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6c0f6d3c677838181df5cd03a755fd7c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__poll.html#ga6c0f6d3c677838181df5cd03a755fd7c">ssh_poll_ctx_dopoll</a> (ssh_poll_ctx ctx, int timeout)</td></tr>
<tr class="memdesc:ga6c0f6d3c677838181df5cd03a755fd7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Poll all the sockets associated through a poll object with a poll context.  <a href="#ga6c0f6d3c677838181df5cd03a755fd7c">More...</a><br/></td></tr>
<tr class="separator:ga6c0f6d3c677838181df5cd03a755fd7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga86bd0c5c2fa5614acef127e6689282ae"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__poll.html#ga86bd0c5c2fa5614acef127e6689282ae">ssh_poll_ctx_free</a> (ssh_poll_ctx ctx)</td></tr>
<tr class="memdesc:ga86bd0c5c2fa5614acef127e6689282ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a poll context.  <a href="#ga86bd0c5c2fa5614acef127e6689282ae">More...</a><br/></td></tr>
<tr class="separator:ga86bd0c5c2fa5614acef127e6689282ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5364b3fb8ae1cb44e3ec09c8c10cb5fa"><td class="memItemLeft" align="right" valign="top">ssh_poll_ctx&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__poll.html#ga5364b3fb8ae1cb44e3ec09c8c10cb5fa">ssh_poll_ctx_new</a> (size_t chunk_size)</td></tr>
<tr class="memdesc:ga5364b3fb8ae1cb44e3ec09c8c10cb5fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new poll context.  <a href="#ga5364b3fb8ae1cb44e3ec09c8c10cb5fa">More...</a><br/></td></tr>
<tr class="separator:ga5364b3fb8ae1cb44e3ec09c8c10cb5fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad4404e7da7c676b126b87d2de4d45d1d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__poll.html#gad4404e7da7c676b126b87d2de4d45d1d">ssh_poll_ctx_remove</a> (ssh_poll_ctx ctx, ssh_poll_handle p)</td></tr>
<tr class="memdesc:gad4404e7da7c676b126b87d2de4d45d1d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove a poll object from a poll context.  <a href="#gad4404e7da7c676b126b87d2de4d45d1d">More...</a><br/></td></tr>
<tr class="separator:gad4404e7da7c676b126b87d2de4d45d1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga873ecc6866c286f7777612d94de5c00d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__poll.html#ga873ecc6866c286f7777612d94de5c00d">ssh_poll_free</a> (ssh_poll_handle p)</td></tr>
<tr class="memdesc:ga873ecc6866c286f7777612d94de5c00d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a poll object.  <a href="#ga873ecc6866c286f7777612d94de5c00d">More...</a><br/></td></tr>
<tr class="separator:ga873ecc6866c286f7777612d94de5c00d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaca05fcf77e6c4b5e55a9cfd2c9690ea5"><td class="memItemLeft" align="right" valign="top">ssh_poll_ctx&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__poll.html#gaca05fcf77e6c4b5e55a9cfd2c9690ea5">ssh_poll_get_ctx</a> (ssh_poll_handle p)</td></tr>
<tr class="memdesc:gaca05fcf77e6c4b5e55a9cfd2c9690ea5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the poll context of a poll object.  <a href="#gaca05fcf77e6c4b5e55a9cfd2c9690ea5">More...</a><br/></td></tr>
<tr class="separator:gaca05fcf77e6c4b5e55a9cfd2c9690ea5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8e2e646ac338021e8e804992e8c13496"><td class="memItemLeft" align="right" valign="top">short&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__poll.html#ga8e2e646ac338021e8e804992e8c13496">ssh_poll_get_events</a> (ssh_poll_handle p)</td></tr>
<tr class="memdesc:ga8e2e646ac338021e8e804992e8c13496"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the events of a poll object.  <a href="#ga8e2e646ac338021e8e804992e8c13496">More...</a><br/></td></tr>
<tr class="separator:ga8e2e646ac338021e8e804992e8c13496"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga26c19b17ac8d1e3d7fcbfb4367fb93ff"><td class="memItemLeft" align="right" valign="top">socket_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__poll.html#ga26c19b17ac8d1e3d7fcbfb4367fb93ff">ssh_poll_get_fd</a> (ssh_poll_handle p)</td></tr>
<tr class="memdesc:ga26c19b17ac8d1e3d7fcbfb4367fb93ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the raw socket of a poll object.  <a href="#ga26c19b17ac8d1e3d7fcbfb4367fb93ff">More...</a><br/></td></tr>
<tr class="separator:ga26c19b17ac8d1e3d7fcbfb4367fb93ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac657ed07db9e5851ffb0aba45e071e99"><td class="memItemLeft" align="right" valign="top">ssh_poll_handle&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__poll.html#gac657ed07db9e5851ffb0aba45e071e99">ssh_poll_new</a> (socket_t fd, short events, ssh_poll_callback cb, void *userdata)</td></tr>
<tr class="memdesc:gac657ed07db9e5851ffb0aba45e071e99"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a new poll object, which could be used within a poll context.  <a href="#gac657ed07db9e5851ffb0aba45e071e99">More...</a><br/></td></tr>
<tr class="separator:gac657ed07db9e5851ffb0aba45e071e99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga012582349ce62cf788761e5f97548496"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__poll.html#ga012582349ce62cf788761e5f97548496">ssh_poll_remove_events</a> (ssh_poll_handle p, short events)</td></tr>
<tr class="memdesc:ga012582349ce62cf788761e5f97548496"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove events from a poll object.  <a href="#ga012582349ce62cf788761e5f97548496">More...</a><br/></td></tr>
<tr class="separator:ga012582349ce62cf788761e5f97548496"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga98ba36c2771b1e49d5c8e2f79be6d3ba"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__poll.html#ga98ba36c2771b1e49d5c8e2f79be6d3ba">ssh_poll_set_callback</a> (ssh_poll_handle p, ssh_poll_callback cb, void *userdata)</td></tr>
<tr class="memdesc:ga98ba36c2771b1e49d5c8e2f79be6d3ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the callback of a poll object.  <a href="#ga98ba36c2771b1e49d5c8e2f79be6d3ba">More...</a><br/></td></tr>
<tr class="separator:ga98ba36c2771b1e49d5c8e2f79be6d3ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac02bf6f4444d4cc442da5865009fa5f6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__poll.html#gac02bf6f4444d4cc442da5865009fa5f6">ssh_poll_set_events</a> (ssh_poll_handle p, short events)</td></tr>
<tr class="memdesc:gac02bf6f4444d4cc442da5865009fa5f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the events of a poll object.  <a href="#gac02bf6f4444d4cc442da5865009fa5f6">More...</a><br/></td></tr>
<tr class="separator:gac02bf6f4444d4cc442da5865009fa5f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2da5adcc03754a3b17e4fb0f23867ace"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libssh__poll.html#ga2da5adcc03754a3b17e4fb0f23867ace">ssh_poll_set_fd</a> (ssh_poll_handle p, socket_t fd)</td></tr>
<tr class="memdesc:ga2da5adcc03754a3b17e4fb0f23867ace"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the file descriptor of a poll object.  <a href="#ga2da5adcc03754a3b17e4fb0f23867ace">More...</a><br/></td></tr>
<tr class="separator:ga2da5adcc03754a3b17e4fb0f23867ace"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>Add a generic way to handle sockets asynchronously. </p>
<p>It's based on poll objects, each of which store a socket, its events and a callback, which gets called whenever an event is set. The poll objects are attached to a poll context, which should be allocated on per thread basis.</p>
<p>Polling the poll context will poll all the attached poll objects and call their callbacks (handlers) if any of the socket events are set. This should be done within the main loop of an application. </p>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga26ad689751420b91bf002f616e8bf4f7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ssh_poll_add_events </td>
          <td>(</td>
          <td class="paramtype">ssh_poll_handle&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">short&#160;</td>
          <td class="paramname"><em>events</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add extra events to a poll object. </p>
<p>Duplicates are ignored. The events will also be propagated to an associated poll context.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">p</td><td>Pointer to an already allocated poll object. </td></tr>
    <tr><td class="paramname">events</td><td>Poll events. </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="group__libssh__poll.html#ga8e2e646ac338021e8e804992e8c13496">ssh_poll_get_events()</a>, and <a class="el" href="group__libssh__poll.html#gac02bf6f4444d4cc442da5865009fa5f6">ssh_poll_set_events()</a>.</p>

</div>
</div>
<a class="anchor" id="ga2c9eca31ff21406f13c1b7472ae8c85b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ssh_poll_ctx_add </td>
          <td>(</td>
          <td class="paramtype">ssh_poll_ctx&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ssh_poll_handle&#160;</td>
          <td class="paramname"><em>p</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a poll object to a poll context. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>Pointer to an already allocated poll context. </td></tr>
    <tr><td class="paramname">p</td><td>Pointer to an already allocated poll object.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, &lt; 0 on error </dd></dl>

<p>Referenced by <a class="el" href="group__libssh__poll.html#ga4aa3ef276370adbb4afb284947dc8005">ssh_poll_ctx_add_socket()</a>.</p>

</div>
</div>
<a class="anchor" id="ga4aa3ef276370adbb4afb284947dc8005"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ssh_poll_ctx_add_socket </td>
          <td>(</td>
          <td class="paramtype">ssh_poll_ctx&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ssh_socket&#160;</td>
          <td class="paramname"><em>s</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a socket object to a poll context. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>Pointer to an already allocated poll context. </td></tr>
    <tr><td class="paramname">s</td><td>A SSH socket handle</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, &lt; 0 on error </dd></dl>

<p>References <a class="el" href="group__libssh__poll.html#ga2c9eca31ff21406f13c1b7472ae8c85b">ssh_poll_ctx_add()</a>.</p>

</div>
</div>
<a class="anchor" id="ga6c0f6d3c677838181df5cd03a755fd7c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ssh_poll_ctx_dopoll </td>
          <td>(</td>
          <td class="paramtype">ssh_poll_ctx&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>timeout</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Poll all the sockets associated through a poll object with a poll context. </p>
<p>If any of the events are set after the poll, the call back function of the socket will be called. This function should be called once within the programs main loop.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>Pointer to an already allocated poll context. </td></tr>
    <tr><td class="paramname">timeout</td><td>An upper limit on the time for which ssh_poll_ctx() will block, in milliseconds. Specifying a negative value means an infinite timeout. This parameter is passed to the poll() function. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>SSH_OK No error. SSH_ERROR Error happened during the poll. SSH_AGAIN Timeout occured </dd></dl>

</div>
</div>
<a class="anchor" id="ga86bd0c5c2fa5614acef127e6689282ae"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ssh_poll_ctx_free </td>
          <td>(</td>
          <td class="paramtype">ssh_poll_ctx&#160;</td>
          <td class="paramname"><em>ctx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Free a poll context. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>Pointer to an already allocated poll context. </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="group__libssh__poll.html#gad4404e7da7c676b126b87d2de4d45d1d">ssh_poll_ctx_remove()</a>.</p>

<p>Referenced by <a class="el" href="group__libssh__session.html#gae5af27a98a7488e9f5ded6b37c274156">ssh_free()</a>.</p>

</div>
</div>
<a class="anchor" id="ga5364b3fb8ae1cb44e3ec09c8c10cb5fa"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ssh_poll_ctx ssh_poll_ctx_new </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>chunk_size</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a new poll context. </p>
<p>It could be associated with many poll object which are going to be polled at the same time as the poll context. You would need a single poll context per thread.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">chunk_size</td><td>The size of the memory chunk that will be allocated, when more memory is needed. This is for efficiency reasons, i.e. don't allocate memory for each new poll object, but for the next 5. Set it to 0 if you want to use the library's default value. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gad4404e7da7c676b126b87d2de4d45d1d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ssh_poll_ctx_remove </td>
          <td>(</td>
          <td class="paramtype">ssh_poll_ctx&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ssh_poll_handle&#160;</td>
          <td class="paramname"><em>p</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Remove a poll object from a poll context. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>Pointer to an already allocated poll context. </td></tr>
    <tr><td class="paramname">p</td><td>Pointer to an already allocated poll object. </td></tr>
  </table>
  </dd>
</dl>

<p>Referenced by <a class="el" href="group__libssh__poll.html#ga86bd0c5c2fa5614acef127e6689282ae">ssh_poll_ctx_free()</a>, and <a class="el" href="group__libssh__poll.html#ga873ecc6866c286f7777612d94de5c00d">ssh_poll_free()</a>.</p>

</div>
</div>
<a class="anchor" id="ga873ecc6866c286f7777612d94de5c00d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ssh_poll_free </td>
          <td>(</td>
          <td class="paramtype">ssh_poll_handle&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Free a poll object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">p</td><td>Pointer to an already allocated poll object. </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="group__libssh__poll.html#gad4404e7da7c676b126b87d2de4d45d1d">ssh_poll_ctx_remove()</a>.</p>

</div>
</div>
<a class="anchor" id="gaca05fcf77e6c4b5e55a9cfd2c9690ea5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ssh_poll_ctx ssh_poll_get_ctx </td>
          <td>(</td>
          <td class="paramtype">ssh_poll_handle&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the poll context of a poll object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">p</td><td>Pointer to an already allocated poll object.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Poll context or NULL if the poll object isn't attached. </dd></dl>

</div>
</div>
<a class="anchor" id="ga8e2e646ac338021e8e804992e8c13496"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">short ssh_poll_get_events </td>
          <td>(</td>
          <td class="paramtype">ssh_poll_handle&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the events of a poll object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">p</td><td>Pointer to an already allocated poll object.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Poll events. </dd></dl>

<p>Referenced by <a class="el" href="group__libssh__poll.html#ga26ad689751420b91bf002f616e8bf4f7">ssh_poll_add_events()</a>, and <a class="el" href="group__libssh__poll.html#ga012582349ce62cf788761e5f97548496">ssh_poll_remove_events()</a>.</p>

</div>
</div>
<a class="anchor" id="ga26c19b17ac8d1e3d7fcbfb4367fb93ff"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">socket_t ssh_poll_get_fd </td>
          <td>(</td>
          <td class="paramtype">ssh_poll_handle&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the raw socket of a poll object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">p</td><td>Pointer to an already allocated poll object.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Raw socket. </dd></dl>

</div>
</div>
<a class="anchor" id="gac657ed07db9e5851ffb0aba45e071e99"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ssh_poll_handle ssh_poll_new </td>
          <td>(</td>
          <td class="paramtype">socket_t&#160;</td>
          <td class="paramname"><em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">short&#160;</td>
          <td class="paramname"><em>events</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ssh_poll_callback&#160;</td>
          <td class="paramname"><em>cb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>userdata</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Allocate a new poll object, which could be used within a poll context. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fd</td><td>Socket that will be polled. </td></tr>
    <tr><td class="paramname">events</td><td>Poll events that will be monitored for the socket. i.e. POLLIN, POLLPRI, POLLOUT </td></tr>
    <tr><td class="paramname">cb</td><td>Function to be called if any of the events are set.</td></tr>
    <tr><td class="paramname">userdata</td><td>Userdata to be passed to the callback function. NULL if not needed.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A new poll object, NULL on error </dd></dl>

</div>
</div>
<a class="anchor" id="ga012582349ce62cf788761e5f97548496"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ssh_poll_remove_events </td>
          <td>(</td>
          <td class="paramtype">ssh_poll_handle&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">short&#160;</td>
          <td class="paramname"><em>events</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Remove events from a poll object. </p>
<p>Non-existent are ignored. The events will also be propagated to an associated poll context.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">p</td><td>Pointer to an already allocated poll object. </td></tr>
    <tr><td class="paramname">events</td><td>Poll events. </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="group__libssh__poll.html#ga8e2e646ac338021e8e804992e8c13496">ssh_poll_get_events()</a>, and <a class="el" href="group__libssh__poll.html#gac02bf6f4444d4cc442da5865009fa5f6">ssh_poll_set_events()</a>.</p>

</div>
</div>
<a class="anchor" id="ga98ba36c2771b1e49d5c8e2f79be6d3ba"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ssh_poll_set_callback </td>
          <td>(</td>
          <td class="paramtype">ssh_poll_handle&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ssh_poll_callback&#160;</td>
          <td class="paramname"><em>cb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>userdata</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the callback of a poll object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">p</td><td>Pointer to an already allocated poll object. </td></tr>
    <tr><td class="paramname">cb</td><td>Function to be called if any of the events are set. </td></tr>
    <tr><td class="paramname">userdata</td><td>Userdata to be passed to the callback function. NULL if not needed. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gac02bf6f4444d4cc442da5865009fa5f6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ssh_poll_set_events </td>
          <td>(</td>
          <td class="paramtype">ssh_poll_handle&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">short&#160;</td>
          <td class="paramname"><em>events</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the events of a poll object. </p>
<p>The events will also be propagated to an associated poll context.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">p</td><td>Pointer to an already allocated poll object. </td></tr>
    <tr><td class="paramname">events</td><td>Poll events. </td></tr>
  </table>
  </dd>
</dl>

<p>Referenced by <a class="el" href="group__libssh__poll.html#ga26ad689751420b91bf002f616e8bf4f7">ssh_poll_add_events()</a>, and <a class="el" href="group__libssh__poll.html#ga012582349ce62cf788761e5f97548496">ssh_poll_remove_events()</a>.</p>

</div>
</div>
<a class="anchor" id="ga2da5adcc03754a3b17e4fb0f23867ace"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ssh_poll_set_fd </td>
          <td>(</td>
          <td class="paramtype">ssh_poll_handle&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">socket_t&#160;</td>
          <td class="paramname"><em>fd</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the file descriptor of a poll object. </p>
<p>The FD will also be propagated to an associated poll context.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">p</td><td>Pointer to an already allocated poll object. </td></tr>
    <tr><td class="paramname">fd</td><td>New file descriptor. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.3.1
</small></address>
</body>
</html>