Branch: Tag:

2004-04-05

2004-04-05 01:36:05 by Martin Stjernholm <mast@lysator.liu.se>

Adapted for the new backend interface so refcounting should be sane now
(especially for udp which didn't have any extra ref kludges). As a bonus,
callbacks can now be set even when the file isn't open, and the backend can
be set and queried.

Rev: src/modules/files/file.c:1.314
Rev: src/modules/files/file.h:1.35
Rev: src/modules/files/sendfile.c:1.67
Rev: src/modules/files/socket.c:1.85
Rev: src/modules/files/termios.c:1.23
Rev: src/modules/files/udp.c:1.63

1029:   <dd class='body--doc'><p>Set the backend used for the callbacks.</p>   </dd>   <dt class='head--doc'>Note</dt> - <dd class='body--doc'><p>The backend does not keep a reference to this object, not even a -  weak one. So if this object runs out of other references it will -  still be destructed quickly (after closing, if necessary).</p> + <dd class='body--doc'><p>The backend keeps a reference to this object only when it is in +  callback mode. So if this object hasn't got any active callbacks +  and it runs out of other references, it will still be destructed +  quickly (after closing, if necessary).</p> + <p> Also, this object does not keep a reference to the backend.</p>   </dd>   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>query_backend</code>, <code>set_nonblocking</code>, <code>set_read_callback</code>, <code>set_write_callback</code></p>
1917:   <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>query_backend</b></span> + </dt> + <dd><p><code><code class='object unresolved'>Pike.Backend</code> <b><span class='method'>query_backend</span>(</b><b>)</b></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Return the backend used for the accept callback.</p> + </dd> + <dt class='head--doc'>See also</dt> + <dd class='body--doc'><p><code>set_backend</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_id</b></span>   </dt>   <dd><p><code><code class='datatype'>mixed</code> <b><span class='method'>query_id</span>(</b><b>)</b></code></p></dd>
1933:   <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>set_backend</b></span> + </dt> + <dd><p><code><code class='datatype'>void</code> <b><span class='method'>set_backend</span>(</b><code class='object unresolved'>Pike.Backend</code> <code class='argument'>backend</code><b>)</b></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Set the backend used for the accept callback.</p> + </dd> + <dt class='head--doc'>Note</dt> + <dd class='body--doc'><p>The backend keeps a reference to this object as long as the port +  is accepting connections, but this object does not keep a +  reference to the backend.</p> + </dd> + <dt class='head--doc'>See also</dt> + <dd class='body--doc'><p><code>query_backend</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_id</b></span>   </dt>   <dd><p><code><code class='datatype'>mixed</code> <b><span class='method'>set_id</span>(</b><code class='datatype'>mixed</code> <code class='argument'>id</code><b>)</b></code></p></dd>
2098:   <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>query_backend</b></span> + </dt> + <dd><p><code><code class='object unresolved'>Pike.Backend</code> <b><span class='method'>query_backend</span>(</b><b>)</b></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Return the backend used for the read callback.</p> + </dd> + <dt class='head--doc'>See also</dt> + <dd class='body--doc'><p><code>set_backend</code></p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>read</b></span>   </dt>   <dd><p><code><code class='datatype'>mapping</code>(<code class='datatype'>string</code>:<code class='datatype'>int</code>|<code class='datatype'>string</code>) <b><span class='method'>read</span>(</b><b>)</b></code><br>
2142:   <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>set_backend</b></span> + </dt> + <dd><p><code><code class='datatype'>void</code> <b><span class='method'>set_backend</span>(</b><code class='object unresolved'>Pike.Backend</code> <code class='argument'>backend</code><b>)</b></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Set the backend used for the read callback.</p> + </dd> + <dt class='head--doc'>Note</dt> + <dd class='body--doc'><p>The backend keeps a reference to this object as long as there can +  be calls to the read callback, but this object does not keep a +  reference to the backend.</p> + </dd> + <dt class='head--doc'>See also</dt> + <dd class='body--doc'><p><code>query_backend</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_blocking</b></span>   </dt>   <dd><p><code><code class='datatype'>object</code> <b><span class='method'>set_blocking</span>(</b><b>)</b></code></p></dd>