<h2 id="ob_etaghandler">string ob_etaghandler(string data, int mode)</h2>
<p>For use with ob_start(). Output buffer handler generating an ETag with<br />
the hash algorythm specified with the INI setting "http.etag_mode".</p>
-<h2 id="http_throttle">void http_throttle(double sec[, int bytes = 2097152])</h2>
+<h2 id="http_throttle">void http_throttle(double sec[, int bytes = 40960])</h2>
<p>Sets the throttle delay and send buffer size for use with http_send() API.<br />
Provides a basic throttling mechanism, which will yield the current process<br />
resp. thread until the entity has been completely sent, though.</p>
- compress: bool, whether to allow gzip/deflate content encoding<br />
(defaults to true)<br />
- port: int, use another port as specified in the url<br />
- - referer: string, the referer to sends<br />
+ - referer: string, the referer to send<br />
- useragent: string, the user agent to send<br />
(defaults to PECL::HTTP/version (PHP/version)))<br />
- headers: array, list of custom headers as associative array<br />
<p>Check for feature that require external libraries.</p>
<p>Accpepts an optional in parameter specifying which feature to probe for.<br />
If the parameter is 0 or omitted, the return value contains a bitmask of <br />
-all supported featuers that depend on external libraries.</p>
+all supported features that depend on external libraries.</p>
<p>Available features to probe for are:<br />
<ul> <br />
<li> HTTP_SUPPORT: always set<br />
<h3 id="HttpRequestPool_socketPerform">protected bool HttpRequestPool::socketPerform()</h3>
<p>Returns TRUE until each request has finished its transaction.</p>
<p>Usage:</p><pre><blockquote><code><span style="color: #000000"><br />
-<span style="color: #0000BB"><?php<br /> </span><span style="color: #007700">while (</span><span style="color: #0000BB">$pool</span><span style="color: #007700">-></span><span style="color: #0000BB">socketPerform</span><span style="color: #007700">()) {<br /> </span><span style="color: #0000BB">do_something_else</span><span style="color: #007700">();<br /> if (!</span><span style="color: #0000BB">$pool</span><span style="color: #007700">-></span><span style="color: #0000BB">socketSelect</span><span style="color: #007700">()) {<br /> die(</span><span style="color: #DD0000">'Socket error'</span><span style="color: #007700">);<br /> }<br /> }<br /></span><span style="color: #0000BB">?></span><br />
+<span style="color: #0000BB"><?php<br /></span><span style="color: #007700">class </span><span style="color: #0000BB">MyPool </span><span style="color: #007700">extends </span><span style="color: #0000BB">HttpRequestPool<br /></span><span style="color: #007700">{<br /> public function </span><span style="color: #0000BB">send</span><span style="color: #007700">()<br /> {<br /> while (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">socketPerform</span><span style="color: #007700">()) {<br /> if (!</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">socketSelect</span><span style="color: #007700">()) {<br /> throw new </span><span style="color: #0000BB">HttpSocketExcpetion</span><span style="color: #007700">;<br /> }<br /> }<br /> }<br /> <br /> protected final function </span><span style="color: #0000BB">socketPerform</span><span style="color: #007700">()<br /> {<br /> </span><span style="color: #0000BB">$result </span><span style="color: #007700">= </span><span style="color: #0000BB">parent</span><span style="color: #007700">::</span><span style="color: #0000BB">socketPerform</span><span style="color: #007700">();<br /> foreach (</span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">getFinishedRequests</span><span style="color: #007700">() as </span><span style="color: #0000BB">$r</span><span style="color: #007700">) {<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">detach</span><span style="color: #007700">(</span><span style="color: #0000BB">$r</span><span style="color: #007700">);<br /> </span><span style="color: #FF8000">// handle response of finished request<br /> </span><span style="color: #007700">}<br /> return </span><span style="color: #0000BB">$result</span><span style="color: #007700">;<br /> }<br />} <br /></span><span style="color: #0000BB">?></span><br />
</span></code></blockquote></p>
<p></pre></p>
<h3 id="HttpRequestPool_socketSelect">protected bool HttpRequestPool::socketSelect()</h3>
<p>Implements Iterator::next().</p>
<h3 id="HttpRequestPool_rewind">void HttpRequestPool::rewind()</h3>
<p>Implements Iterator::rewind().</p>
+<h3 id="HttpRequestPool_getAttachedRequests">array HttpRequestPool::getAttachedRequests()</h3>
+<p>Get attached HttpRequest objects.</p>
+<p>Returns an array containing all currently attached HttpRequest objects.</p>
+<h3 id="HttpRequestPool_getFinishedRequests">array HttpRequestPool::getFinishedRequests()</h3>
+<p>Get attached HttpRequest objects that already have finished their work.</p>
+<p>Returns an array containing all attached HttpRequest objects that<br />
+already have finished their work.</p>
<hr noshade>
<h1 id="http_response_object.c">http_response_object.c</h1>
<h3 id="HttpResponse_setHeader">static bool HttpResponse::setHeader(string name, mixed value[, bool replace = true])</h3>
<li><a href="#HttpRequestPool_key">HttpRequestPool::key()</a></li>
<li><a href="#HttpRequestPool_next">HttpRequestPool::next()</a></li>
<li><a href="#HttpRequestPool_rewind">HttpRequestPool::rewind()</a></li>
+<li><a href="#HttpRequestPool_getAttachedRequests">HttpRequestPool::getAttachedRequests()</a></li>
+<li><a href="#HttpRequestPool_getFinishedRequests">HttpRequestPool::getFinishedRequests()</a></li>
</li>
</ul>
</li>
</li>
</ul>
</div>
- <p><b>Generated at: Tue, 11 Oct 2005 11:33:16 +0000</b></p>
+ <p><b>Generated at: Wed, 19 Oct 2005 10:45:25 +0200</b></p>
</body>
</html>
</maintainer>
</maintainers>
<release>
- <version>0.15.0</version>
- <date>2005-10-11</date>
+ <version>0.16.0</version>
+ <date>2005-10-19</date>
<license>PHP License</license>
<state>beta</state>
- <notes>+ Updated documentation (a lot)
-+ Added optional third parameter to HttpRequest::__construct() accepting an array with options
-+ Added compression functions gzencode/gzdecode, deflate/inflate, compress/uncompress
-+ Added http_support() for probing features that depend on external libraries
-
-- Renamed http_absolute_uri() to http_build_uri() (complements with http_build_query())
-- Changed the signature of the negotiator to fill the second parameter with the results array
-
-* Fixed several ETag issues
-* Fixed HttpRequestPools detach() and attach() methods when the iterator is active
-* Fixed parsing messages with Content-Range headers
-* Fixed parsing messages with another Transfer-Encoding header value than chunked
+ <notes>+ Added ext/zlib independant GZIP support
++ Added HttpRequestPool::getAttachedRequests() and getFinishedRequests()
</notes>
<deps>
<dep type="php" rel="ge" version="4.3"/>
<file role="test" name="get_request_data_001.phpt"/>
<file role="test" name="HttpMessage_001.phpt"/>
<file role="test" name="HttpRequestPool_001.phpt"/>
+ <file role="test" name="HttpRequestPool_002.phpt"/>
<file role="test" name="HttpRequest_001.phpt"/>
<file role="test" name="HttpRequest_002.phpt"/>
<file role="test" name="HttpRequest_003.phpt"/>
<file role="test" name="INI_001.phpt"/>
<file role="test" name="log.inc"/>
<file role="test" name="parse_headers_001.phpt"/>
- <file role="test" name="parse_message_001.phpt"/>
+ <file role="test" name="parse_message_002.phpt"/>
+ <file role="test" name="parse_message_003.phpt"/>
+ <file role="test" name="parse_message_004.phpt"/>
<file role="test" name="redirect_001.phpt"/>
<file role="test" name="redirect_001_logging.phpt"/>
<file role="test" name="redirect_002.phpt"/>