autodoc.git / traditional_manual / chapter_9.html

version» Context lines:

autodoc.git/traditional_manual/chapter_9.html:1029:   <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>query_read_callback</b></span><br>   <span class='homogen--type'>Method</span>   <span class='homogen--name'><b>query_write_callback</b></span><br>   <span class='homogen--type'>Method</span>   <span class='homogen--name'><b>query_read_oob_callback</b></span><br>   <span class='homogen--type'>Method</span>   <span class='homogen--name'><b>query_write_oob_callback</b></span><br>   <span class='homogen--type'>Method</span>   <span class='homogen--name'><b>query_close_callback</b></span><br> + <span class='homogen--type'>Method</span> + <span class='homogen--name'><b>query_callbacks</b></span><br>   </dt>   <dd><p><code><code class='datatype'>function</code>(<code class='datatype'>mixed</code>, <code class='datatype'>string</code>:<code class='datatype'>int</code>) <b><span class='method'>query_read_callback</span>(</b><b>)</b></code><br>   <code><code class='datatype'>function</code>(<code class='datatype'>mixed</code>:<code class='datatype'>int</code>) <b><span class='method'>query_write_callback</span>(</b><b>)</b></code><br>   <code><code class='datatype'>function</code>(<code class='datatype'>mixed</code>, <code class='datatype'>string</code>:<code class='datatype'>int</code>) <b><span class='method'>query_read_oob_callback</span>(</b><b>)</b></code><br>   <code><code class='datatype'>function</code>(<code class='datatype'>mixed</code>:<code class='datatype'>int</code>) <b><span class='method'>query_write_oob_callback</span>(</b><b>)</b></code><br> - <code><code class='datatype'>function</code>(<code class='datatype'>mixed</code>:<code class='datatype'>int</code>) <b><span class='method'>query_close_callback</span>(</b><b>)</b></code></p></dd> + <code><code class='datatype'>function</code>(<code class='datatype'>mixed</code>:<code class='datatype'>int</code>) <b><span class='method'>query_close_callback</span>(</b><b>)</b></code><br> + <code><code class='datatype'>array</code>(<code class='datatype'>function</code>(<code class='datatype'>mixed</code>, <code class='datatype'>void</code>|<code class='datatype'>string</code>:<code class='datatype'>int</code>)) <b><span class='method'>query_callbacks</span>(</b><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>These functions return the currently installed callbacks for the    respective events.</p> -  + <p> <code>query_callbacks</code> returns the callbacks in the same order as +  <code>set_callbacks</code> and <code>set_nonblocking</code> expect them.</p>   </dd>   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>set_nonblocking()</code>, <code>set_read_callback</code>,    <code>set_write_callback</code>, <code>set_read_oob_callback</code>, -  <code>set_write_oob_callback</code>, <code>set_close_callback</code></p> +  <code>set_write_oob_callback</code>, <code>set_close_callback</code>, +  <code>set_callbacks</code></p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>query_fd</b></span>   </dt>   <dd><p><code><code class='datatype'>int</code> <b><span class='method'>query_fd</span>(</b><b>)</b></code></p></dd>   
autodoc.git/traditional_manual/chapter_9.html:1365:    but it certainly helps to increase data transfer speed when it does.</p>   </dd>   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>open_socket()</code>, <code>accept()</code></p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>set_callbacks</b></span> + </dt> + <dd><p><code><code class='datatype'>void</code> <b><span class='method'>set_callbacks</span>(</b><code class='datatype'>void</code>|<code class='datatype'>function</code>(<code class='datatype'>mixed</code>, <code class='datatype'>string</code>:<code class='datatype'>int</code>) <code class='argument'>read_cb</code>, <code class='datatype'>void</code>|<code class='datatype'>function</code>(<code class='datatype'>mixed</code>:<code class='datatype'>int</code>) <code class='argument'>write_cb</code>, <code class='datatype'>void</code>|<code class='datatype'>function</code>(<code class='datatype'>mixed</code>:<code class='datatype'>int</code>) <code class='argument'>close_cb</code>, <code class='datatype'>void</code>|<code class='datatype'>function</code>(<code class='datatype'>mixed</code>, <code class='datatype'>string</code>:<code class='datatype'>int</code>) <code class='argument'>read_oob_cb</code>, <code class='datatype'>void</code>|<code class='datatype'>function</code>(<code class='datatype'>mixed</code>:<code class='datatype'>int</code>) <code class='argument'>write_oob_cb</code><b>)</b></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Installs all the specified callbacks at once. Use <code>UNDEFINED</code> +  to keep the current setting for a callback.</p> + <p> Like <code>set_nonblocking</code>, the callbacks are installed atomically. +  As opposed to <code>set_nonblocking</code>, this function does not do +  anything with the stream, and it doesn't even have to be open.</p> + </dd> + <dt class='head--doc'>See also</dt> + <dd class='body--doc'><p><code>set_read_callback</code>, <code>set_write_callback</code>, +  <code>set_read_oob_callback</code>, <code>set_write_oob_callback</code>, +  <code>set_close_callback</code>, <code>query_callbacks</code></p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>set_read_callback</b></span><br>   <span class='homogen--type'>Method</span>   <span class='homogen--name'><b>set_write_callback</b></span><br>   <span class='homogen--type'>Method</span>   <span class='homogen--name'><b>set_read_oob_callback</b></span><br>   <span class='homogen--type'>Method</span>   <span class='homogen--name'><b>set_write_oob_callback</b></span><br>   <span class='homogen--type'>Method</span>   <span class='homogen--name'><b>set_close_callback</b></span><br>   </dt>
autodoc.git/traditional_manual/chapter_9.html:1451:   <p> If a callback returns <code class='expr'>-1</code>, no other callback or call out    will be called by the backend in that round. I.e. the caller of    the backend will get control back right away. For the default    backend that means it will immediately start another round and    check files and call outs anew.</p>   </dd>   <dt class='head--doc'>Note</dt>   <dd class='body--doc'><p>These functions do not set the file nonblocking.</p>   </dd>   <dt class='head--doc'>Note</dt> - <dd class='body--doc'><p>Callbacks are also set by <code>set_nonblocking()</code>.</p> + <dd class='body--doc'><p>Callbacks are also set by <code>set_callbacks</code> and +  <code>set_nonblocking()</code>.</p>   </dd>   <dt class='head--doc'>Note</dt>   <dd class='body--doc'><p>After a callback has been called, it's disabled until it has    accessed the stream accordingly, i.e. the <code>write_cb</code> callback    is disabled after it's been called until something has been    written with <code>write</code>, and the <code>write_oob_cb</code> callback is    likewise disabled until something has been written with    <code>write_oob</code>. Since the data already has been read when the read    callbacks are called, this effect is not noticeable for them.</p>   </dd>
autodoc.git/traditional_manual/chapter_9.html:1490:   <dd class='body--doc'><p>The file object will stay referenced from the backend object as    long as there are callbacks that can receive events.</p>   </dd>   <dt class='head--doc'>Bugs</dt>   <dd class='body--doc'><p>Setting a close callback without a read callback currently only    works when there's no risk of getting more data on the stream.    Otherwise the close callback will be silently deregistered if    data arrives.</p>   </dd>   <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>set_nonblocking()</code>, <code>set_id()</code>, <code>set_backend</code>, -  <code>query_read_callback</code>, <code>query_write_callback</code>, + <dd class='body--doc'><p><code>set_callbacks</code>, <code>set_nonblocking()</code>, <code>set_id()</code>, +  <code>set_backend</code>, <code>query_read_callback</code>, <code>query_write_callback</code>,    <code>query_read_oob_callback</code>, <code>query_write_oob_callback</code>,    <code>query_close_callback</code></p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>set_close_on_exec</b></span>   </dt>
autodoc.git/traditional_manual/chapter_9.html:1592:    this function will set all the callbacks and nonblocking mode    atomically so that no callback gets called in between. That    avoids races in case the backend is executed by another thread.</p>   </dd>   <dt class='head--doc'>Note</dt>   <dd class='body--doc'><p>Out-of-band data was not be supported on Pike 0.5 and earlier,    and not on Pike 0.6 through 7.4 if they were compiled with the    option <tt>'--without-oob'</tt>.</p>   </dd>   <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>set_blocking()</code>, <code>set_read_callback()</code>, + <dd class='body--doc'><p><code>set_blocking()</code>, <code>set_callbacks</code>, <code>set_read_callback()</code>,    <code>set_write_callback()</code>, <code>set_read_oob_callback()</code>,    <code>set_write_oob_callback()</code>, <code>set_close_callback()</code>    <code>set_nonblocking_keep_callbacks()</code>,    <code>set_blocking_keep_callbacks()</code></p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span>