autodoc.git
/
traditional_manual
/
chapter_9.html
version
»
Context lines:
10
20
40
80
file
none
3
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>