You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apr.apache.org by je...@apache.org on 2005/02/08 00:11:52 UTC

svn commit: r151768 [5/47] - in apr/site/trunk/docs/docs/apr: ./ iconv/ util/

Modified: apr/site/trunk/docs/docs/apr-util/apr__buckets_8h-source.html
URL: http://svn.apache.org/viewcvs/apr/site/trunk/docs/docs/apr-util/apr__buckets_8h-source.html?view=diff&r1=151767&r2=151768
==============================================================================
--- apr/site/trunk/docs/docs/apr-util/apr__buckets_8h-source.html (original)
+++ apr/site/trunk/docs/docs/apr-util/apr__buckets_8h-source.html Mon Feb  7 15:10:17 2005
@@ -3,528 +3,537 @@
 <title>Apache Portable Runtime Utility Library: include/apr_buckets.h Source File</title>
 <link href="doxygen.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.3.8 -->
+<!-- Generated by Doxygen 1.3.7 -->
 <div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
-<h1>include/apr_buckets.h</h1><a href="apr__buckets_8h.html">Go to the documentation of this file.</a><pre class="fragment"><div>00001 <span class="comment">/* Copyright 2000-2004 The Apache Software Foundation</span>
-00002 <span class="comment"> *</span>
-00003 <span class="comment"> * Licensed under the Apache License, Version 2.0 (the "License");</span>
-00004 <span class="comment"> * you may not use this file except in compliance with the License.</span>
-00005 <span class="comment"> * You may obtain a copy of the License at</span>
-00006 <span class="comment"> *</span>
-00007 <span class="comment"> *     http://www.apache.org/licenses/LICENSE-2.0</span>
-00008 <span class="comment"> *</span>
-00009 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
-00010 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
-00011 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
-00012 <span class="comment"> * See the License for the specific language governing permissions and</span>
-00013 <span class="comment"> * limitations under the License.</span>
-00014 <span class="comment"> */</span>
-00020 <span class="preprocessor">#ifndef APR_BUCKETS_H</span>
-00021 <span class="preprocessor"></span><span class="preprocessor">#define APR_BUCKETS_H</span>
-00022 <span class="preprocessor"></span>
-00023 <span class="preprocessor">#if defined(APR_BUCKET_DEBUG) &amp;&amp; !defined(APR_RING_DEBUG)</span>
-00024 <span class="preprocessor"></span><span class="preprocessor">#define APR_RING_DEBUG</span>
-00025 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-00026 <span class="preprocessor"></span>
-00027 <span class="preprocessor">#include "apu.h"</span>
-00028 <span class="preprocessor">#include "apr_network_io.h"</span>
-00029 <span class="preprocessor">#include "apr_file_io.h"</span>
-00030 <span class="preprocessor">#include "apr_general.h"</span>
-00031 <span class="preprocessor">#include "apr_mmap.h"</span>
-00032 <span class="preprocessor">#include "apr_errno.h"</span>
-00033 <span class="preprocessor">#include "apr_ring.h"</span>
-00034 <span class="preprocessor">#include "apr.h"</span>
-00035 <span class="preprocessor">#if APR_HAVE_SYS_UIO_H</span>
-00036 <span class="preprocessor"></span><span class="preprocessor">#include &lt;sys/uio.h&gt;</span>    <span class="comment">/* for struct iovec */</span>
-00037 <span class="preprocessor">#endif</span>
-00038 <span class="preprocessor"></span><span class="preprocessor">#if APR_HAVE_STDARG_H</span>
-00039 <span class="preprocessor"></span><span class="preprocessor">#include &lt;stdarg.h&gt;</span>
-00040 <span class="preprocessor">#endif</span>
-00041 <span class="preprocessor"></span>
-00042 <span class="preprocessor">#ifdef __cplusplus</span>
-00043 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {
-00044 <span class="preprocessor">#endif</span>
-00045 <span class="preprocessor"></span>
-<a name="l00053"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga76">00053</a> <span class="preprocessor">#define APR_BUCKET_BUFF_SIZE 8000</span>
-00054 <span class="preprocessor"></span>
-<a name="l00056"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga111">00056</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
-00057     <a class="code" href="group___a_p_r___util___bucket___brigades.html#gga111a56">APR_BLOCK_READ</a>,   
-00058     <a class="code" href="group___a_p_r___util___bucket___brigades.html#gga111a57">APR_NONBLOCK_READ</a> 
-00059 } <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga111">apr_read_type_e</a>;
-00060 
-00113 <span class="comment">/*</span>
-00114 <span class="comment"> * Forward declaration of the main types.</span>
-00115 <span class="comment"> */</span>
-00116 
-<a name="l00118"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga0">00118</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structapr__bucket__brigade.html">apr_bucket_brigade</a> <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga0">apr_bucket_brigade</a>;
-<a name="l00120"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga1">00120</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structapr__bucket.html">apr_bucket</a> <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga1">apr_bucket</a>;
-<a name="l00122"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga2">00122</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga2">apr_bucket_alloc_t</a> <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga2">apr_bucket_alloc_t</a>;
-00123 
-<a name="l00125"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga3">00125</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structapr__bucket__type__t.html">apr_bucket_type_t</a> <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga3">apr_bucket_type_t</a>;
-00126 
-<a name="l00130"></a><a class="code" href="structapr__bucket__type__t.html">00130</a> <span class="keyword">struct </span><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga3">apr_bucket_type_t</a> {
-<a name="l00134"></a><a class="code" href="structapr__bucket__type__t.html#o0">00134</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structapr__bucket__type__t.html#o0">name</a>;
-<a name="l00139"></a><a class="code" href="structapr__bucket__type__t.html#o1">00139</a>     <span class="keywordtype">int</span> <a class="code" href="structapr__bucket__type__t.html#o1">num_func</a>;
-00150     <span class="keyword">enum</span> {
-00152         <a class="code" href="structapr__bucket__type__t.html#w2w0">APR_BUCKET_DATA</a> = 0,
-00154         <a class="code" href="structapr__bucket__type__t.html#w2w1">APR_BUCKET_METADATA</a> = 1
-00155     } is_metadata;
-00163     void (*destroy)(<span class="keywordtype">void</span> *data);
-00164 
-00175     apr_status_t (*read)(<a class="code" href="group___a_p_r___util___bucket___brigades.html#ga1">apr_bucket</a> *b, <span class="keyword">const</span> <span class="keywordtype">char</span> **str, apr_size_t *len, 
-00176                          <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga111">apr_read_type_e</a> block);
-00177     
-00191     apr_status_t (*setaside)(<a class="code" href="group___a_p_r___util___bucket___brigades.html#ga1">apr_bucket</a> *e, apr_pool_t *pool);
-00192 
-00202     apr_status_t (*split)(<a class="code" href="group___a_p_r___util___bucket___brigades.html#ga1">apr_bucket</a> *e, apr_size_t point);
-00203 
-00210     apr_status_t (*copy)(<a class="code" href="group___a_p_r___util___bucket___brigades.html#ga1">apr_bucket</a> *e, <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga1">apr_bucket</a> **c);
-00211 
-00212 };
-00213 
-<a name="l00223"></a><a class="code" href="structapr__bucket.html">00223</a> <span class="keyword">struct </span><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga1">apr_bucket</a> {
-00225     <a class="code" href="structapr__bucket.html#a0">APR_RING_ENTRY</a>(<a class="code" href="group___a_p_r___util___bucket___brigades.html#ga1">apr_bucket</a>) link;
-<a name="l00227"></a><a class="code" href="structapr__bucket.html#o0">00227</a>     <span class="keyword">const</span> <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga3">apr_bucket_type_t</a> *<a class="code" href="structapr__bucket.html#o0">type</a>;
-<a name="l00233"></a><a class="code" href="structapr__bucket.html#o1">00233</a>     apr_size_t <a class="code" href="structapr__bucket.html#o1">length</a>;
-<a name="l00241"></a><a class="code" href="structapr__bucket.html#o2">00241</a>     apr_off_t <a class="code" href="structapr__bucket.html#o2">start</a>;
-<a name="l00243"></a><a class="code" href="structapr__bucket.html#o3">00243</a>     <span class="keywordtype">void</span> *<a class="code" href="structapr__bucket.html#o3">data</a>; 
-00251     void (*free)(<span class="keywordtype">void</span> *e);
-<a name="l00253"></a><a class="code" href="structapr__bucket.html#o5">00253</a>     <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga2">apr_bucket_alloc_t</a> *<a class="code" href="structapr__bucket.html#o5">list</a>;
-00254 };
-00255 
-<a name="l00257"></a><a class="code" href="structapr__bucket__brigade.html">00257</a> <span class="keyword">struct </span><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga0">apr_bucket_brigade</a> {
-<a name="l00263"></a><a class="code" href="structapr__bucket__brigade.html#o0">00263</a>     apr_pool_t *<a class="code" href="structapr__bucket__brigade.html#o0">p</a>;
-00265     <span class="comment">/*</span>
-00266 <span class="comment">     * The apr_bucket_list structure doesn't actually need a name tag</span>
-00267 <span class="comment">     * because it has no existence independent of struct apr_bucket_brigade;</span>
-00268 <span class="comment">     * the ring macros are designed so that you can leave the name tag</span>
-00269 <span class="comment">     * argument empty in this situation but apparently the Windows compiler</span>
-00270 <span class="comment">     * doesn't like that.</span>
-00271 <span class="comment">     */</span>
-00272     <a class="code" href="structapr__bucket__brigade.html#a0">APR_RING_HEAD</a>(apr_bucket_list, apr_bucket) list;
-<a name="l00274"></a><a class="code" href="structapr__bucket__brigade.html#o1">00274</a>     apr_bucket_alloc_t *bucket_alloc;
-00275 };
-00276 
+<h1>include/apr_buckets.h</h1><a href="apr__buckets_8h.html">Go to the documentation of this file.</a><pre class="fragment"><div>00001 <span class="comment">/* Copyright 2000-2005 The Apache Software Foundation or its licensors, as</span>
+00002 <span class="comment"> * applicable.</span>
+00003 <span class="comment"> *</span>
+00004 <span class="comment"> * Licensed under the Apache License, Version 2.0 (the "License");</span>
+00005 <span class="comment"> * you may not use this file except in compliance with the License.</span>
+00006 <span class="comment"> * You may obtain a copy of the License at</span>
+00007 <span class="comment"> *</span>
+00008 <span class="comment"> *     http://www.apache.org/licenses/LICENSE-2.0</span>
+00009 <span class="comment"> *</span>
+00010 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
+00011 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
+00012 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
+00013 <span class="comment"> * See the License for the specific language governing permissions and</span>
+00014 <span class="comment"> * limitations under the License.</span>
+00015 <span class="comment"> */</span>
+00021 <span class="preprocessor">#ifndef APR_BUCKETS_H</span>
+00022 <span class="preprocessor"></span><span class="preprocessor">#define APR_BUCKETS_H</span>
+00023 <span class="preprocessor"></span>
+00024 <span class="preprocessor">#if defined(APR_BUCKET_DEBUG) &amp;&amp; !defined(APR_RING_DEBUG)</span>
+00025 <span class="preprocessor"></span><span class="preprocessor">#define APR_RING_DEBUG</span>
+00026 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+00027 <span class="preprocessor"></span>
+00028 <span class="preprocessor">#include "apu.h"</span>
+00029 <span class="preprocessor">#include "apr_network_io.h"</span>
+00030 <span class="preprocessor">#include "apr_file_io.h"</span>
+00031 <span class="preprocessor">#include "apr_general.h"</span>
+00032 <span class="preprocessor">#include "apr_mmap.h"</span>
+00033 <span class="preprocessor">#include "apr_errno.h"</span>
+00034 <span class="preprocessor">#include "apr_ring.h"</span>
+00035 <span class="preprocessor">#include "apr.h"</span>
+00036 <span class="preprocessor">#if APR_HAVE_SYS_UIO_H</span>
+00037 <span class="preprocessor"></span><span class="preprocessor">#include &lt;sys/uio.h&gt;</span>    <span class="comment">/* for struct iovec */</span>
+00038 <span class="preprocessor">#endif</span>
+00039 <span class="preprocessor"></span><span class="preprocessor">#if APR_HAVE_STDARG_H</span>
+00040 <span class="preprocessor"></span><span class="preprocessor">#include &lt;stdarg.h&gt;</span>
+00041 <span class="preprocessor">#endif</span>
+00042 <span class="preprocessor"></span>
+00043 <span class="preprocessor">#ifdef __cplusplus</span>
+00044 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {
+00045 <span class="preprocessor">#endif</span>
+00046 <span class="preprocessor"></span>
+<a name="l00054"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga77">00054</a> <span class="preprocessor">#define APR_BUCKET_BUFF_SIZE 8000</span>
+00055 <span class="preprocessor"></span>
+<a name="l00057"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga112">00057</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
+00058     <a class="code" href="group___a_p_r___util___bucket___brigades.html#gga112a56">APR_BLOCK_READ</a>,   
+00059     <a class="code" href="group___a_p_r___util___bucket___brigades.html#gga112a57">APR_NONBLOCK_READ</a> 
+00060 } <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga112">apr_read_type_e</a>;
+00061 
+00114 <span class="comment">/*</span>
+00115 <span class="comment"> * Forward declaration of the main types.</span>
+00116 <span class="comment"> */</span>
+00117 
+<a name="l00119"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga0">00119</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structapr__bucket__brigade.html">apr_bucket_brigade</a> <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga0">apr_bucket_brigade</a>;
+<a name="l00121"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga1">00121</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structapr__bucket.html">apr_bucket</a> <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga1">apr_bucket</a>;
+<a name="l00123"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga2">00123</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga2">apr_bucket_alloc_t</a> <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga2">apr_bucket_alloc_t</a>;
+00124 
+<a name="l00126"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga3">00126</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structapr__bucket__type__t.html">apr_bucket_type_t</a> <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga3">apr_bucket_type_t</a>;
+00127 
+<a name="l00131"></a><a class="code" href="structapr__bucket__type__t.html">00131</a> <span class="keyword">struct </span><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga3">apr_bucket_type_t</a> {
+<a name="l00135"></a><a class="code" href="structapr__bucket__type__t.html#o0">00135</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structapr__bucket__type__t.html#o0">name</a>;
+<a name="l00140"></a><a class="code" href="structapr__bucket__type__t.html#o1">00140</a>     <span class="keywordtype">int</span> <a class="code" href="structapr__bucket__type__t.html#o1">num_func</a>;
+00151     <span class="keyword">enum</span> {
+00153         <a class="code" href="structapr__bucket__type__t.html#w2w0">APR_BUCKET_DATA</a> = 0,
+00155         <a class="code" href="structapr__bucket__type__t.html#w2w1">APR_BUCKET_METADATA</a> = 1
+00156     } is_metadata;
+00164     void (*destroy)(<span class="keywordtype">void</span> *data);
+00165 
+00176     apr_status_t (*read)(<a class="code" href="group___a_p_r___util___bucket___brigades.html#ga1">apr_bucket</a> *b, <span class="keyword">const</span> <span class="keywordtype">char</span> **str, apr_size_t *len, 
+00177                          <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga112">apr_read_type_e</a> block);
+00178     
+00192     apr_status_t (*setaside)(<a class="code" href="group___a_p_r___util___bucket___brigades.html#ga1">apr_bucket</a> *e, apr_pool_t *pool);
+00193 
+00203     apr_status_t (*split)(<a class="code" href="group___a_p_r___util___bucket___brigades.html#ga1">apr_bucket</a> *e, apr_size_t point);
+00204 
+00211     apr_status_t (*copy)(<a class="code" href="group___a_p_r___util___bucket___brigades.html#ga1">apr_bucket</a> *e, <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga1">apr_bucket</a> **c);
+00212 
+00213 };
+00214 
+<a name="l00224"></a><a class="code" href="structapr__bucket.html">00224</a> <span class="keyword">struct </span><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga1">apr_bucket</a> {
+00226     <a class="code" href="structapr__bucket.html#a0">APR_RING_ENTRY</a>(<a class="code" href="group___a_p_r___util___bucket___brigades.html#ga1">apr_bucket</a>) link;
+<a name="l00228"></a><a class="code" href="structapr__bucket.html#o0">00228</a>     <span class="keyword">const</span> <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga3">apr_bucket_type_t</a> *<a class="code" href="structapr__bucket.html#o0">type</a>;
+<a name="l00234"></a><a class="code" href="structapr__bucket.html#o1">00234</a>     apr_size_t <a class="code" href="structapr__bucket.html#o1">length</a>;
+<a name="l00242"></a><a class="code" href="structapr__bucket.html#o2">00242</a>     apr_off_t <a class="code" href="structapr__bucket.html#o2">start</a>;
+<a name="l00244"></a><a class="code" href="structapr__bucket.html#o3">00244</a>     <span class="keywordtype">void</span> *<a class="code" href="structapr__bucket.html#o3">data</a>; 
+00252     void (*free)(<span class="keywordtype">void</span> *e);
+<a name="l00254"></a><a class="code" href="structapr__bucket.html#o5">00254</a>     <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga2">apr_bucket_alloc_t</a> *<a class="code" href="structapr__bucket.html#o5">list</a>;
+00255 };
+00256 
+<a name="l00258"></a><a class="code" href="structapr__bucket__brigade.html">00258</a> <span class="keyword">struct </span><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga0">apr_bucket_brigade</a> {
+<a name="l00264"></a><a class="code" href="structapr__bucket__brigade.html#o0">00264</a>     apr_pool_t *<a class="code" href="structapr__bucket__brigade.html#o0">p</a>;
+00266     <span class="comment">/*</span>
+00267 <span class="comment">     * The apr_bucket_list structure doesn't actually need a name tag</span>
+00268 <span class="comment">     * because it has no existence independent of struct apr_bucket_brigade;</span>
+00269 <span class="comment">     * the ring macros are designed so that you can leave the name tag</span>
+00270 <span class="comment">     * argument empty in this situation but apparently the Windows compiler</span>
+00271 <span class="comment">     * doesn't like that.</span>
+00272 <span class="comment">     */</span>
+00273     <a class="code" href="structapr__bucket__brigade.html#a0">APR_RING_HEAD</a>(apr_bucket_list, apr_bucket) list;
+<a name="l00275"></a><a class="code" href="structapr__bucket__brigade.html#o1">00275</a>     apr_bucket_alloc_t *bucket_alloc;
+00276 };
 00277 
-<a name="l00281"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga4">00281</a> typedef apr_status_t (*<a class="code" href="group___a_p_r___util___bucket___brigades.html#ga4">apr_brigade_flush</a>)(apr_bucket_brigade *bb, <span class="keywordtype">void</span> *ctx);
-00282 
-00283 <span class="comment">/*</span>
-00284 <span class="comment"> * define APR_BUCKET_DEBUG if you want your brigades to be checked for</span>
-00285 <span class="comment"> * validity at every possible instant.  this will slow your code down</span>
-00286 <span class="comment"> * substantially but is a very useful debugging tool.</span>
-00287 <span class="comment"> */</span>
-00288 #ifdef APR_BUCKET_DEBUG
-00289 
-00290 #define APR_BRIGADE_CHECK_CONSISTENCY(b)                                \
-00291         APR_RING_CHECK_CONSISTENCY(&amp;(b)-&gt;list, apr_bucket, link)
-00292 
-00293 #define APR_BUCKET_CHECK_CONSISTENCY(e)                                 \
-00294         APR_RING_CHECK_ELEM_CONSISTENCY((e), apr_bucket, link)
-00295 
-00296 #else
-<a name="l00303"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga77">00303</a> #define APR_BRIGADE_CHECK_CONSISTENCY(b)
-<a name="l00310"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga78">00310</a> #define APR_BUCKET_CHECK_CONSISTENCY(e)
-00311 #endif
-00312 
+00278 
+<a name="l00282"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga4">00282</a> typedef apr_status_t (*<a class="code" href="group___a_p_r___util___bucket___brigades.html#ga4">apr_brigade_flush</a>)(apr_bucket_brigade *bb, <span class="keywordtype">void</span> *ctx);
+00283 
+00284 <span class="comment">/*</span>
+00285 <span class="comment"> * define APR_BUCKET_DEBUG if you want your brigades to be checked for</span>
+00286 <span class="comment"> * validity at every possible instant.  this will slow your code down</span>
+00287 <span class="comment"> * substantially but is a very useful debugging tool.</span>
+00288 <span class="comment"> */</span>
+00289 #ifdef APR_BUCKET_DEBUG
+00290 
+00291 #define APR_BRIGADE_CHECK_CONSISTENCY(b)                                \
+00292         APR_RING_CHECK_CONSISTENCY(&amp;(b)-&gt;list, apr_bucket, link)
+00293 
+00294 #define APR_BUCKET_CHECK_CONSISTENCY(e)                                 \
+00295         APR_RING_CHECK_ELEM_CONSISTENCY((e), apr_bucket, link)
+00296 
+00297 #else
+<a name="l00304"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga78">00304</a> #define APR_BRIGADE_CHECK_CONSISTENCY(b)
+<a name="l00311"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga79">00311</a> #define APR_BUCKET_CHECK_CONSISTENCY(e)
+00312 #endif
 00313 
-<a name="l00330"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga79">00330</a> #define APR_BRIGADE_SENTINEL(b) APR_RING_SENTINEL(&amp;(b)-&gt;list, apr_bucket, link)
-00331 
-<a name="l00337"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga80">00337</a> #define APR_BRIGADE_EMPTY(b)    APR_RING_EMPTY(&amp;(b)-&gt;list, apr_bucket, link)
-00338 
-<a name="l00344"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga81">00344</a> #define APR_BRIGADE_FIRST(b)    APR_RING_FIRST(&amp;(b)-&gt;list)
-<a name="l00350"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga82">00350</a> #define APR_BRIGADE_LAST(b)     APR_RING_LAST(&amp;(b)-&gt;list)
-00351 
-<a name="l00357"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga83">00357</a> #define APR_BRIGADE_INSERT_HEAD(b, e) do {                              \
-00358         <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga1">apr_bucket</a> *ap__b = (e);                                        \
-00359         APR_RING_INSERT_HEAD(&amp;(b)-&gt;list, ap__b, <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga1">apr_bucket</a>, link);      \
-00360         <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga77">APR_BRIGADE_CHECK_CONSISTENCY</a>((b));                             \
-00361     } <span class="keywordflow">while</span> (0)
-00362 
-<a name="l00368"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga84">00368</a> <span class="preprocessor">#define APR_BRIGADE_INSERT_TAIL(b, e) do {                              \</span>
-00369 <span class="preprocessor">        apr_bucket *ap__b = (e);                                        \</span>
-00370 <span class="preprocessor">        APR_RING_INSERT_TAIL(&amp;(b)-&gt;list, ap__b, apr_bucket, link);      \</span>
-00371 <span class="preprocessor">        APR_BRIGADE_CHECK_CONSISTENCY((b));                             \</span>
-00372 <span class="preprocessor">    } while (0)</span>
-00373 <span class="preprocessor"></span>
-<a name="l00379"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga85">00379</a> <span class="preprocessor">#define APR_BRIGADE_CONCAT(a, b) do {                                   \</span>
-00380 <span class="preprocessor">        APR_RING_CONCAT(&amp;(a)-&gt;list, &amp;(b)-&gt;list, apr_bucket, link);      \</span>
-00381 <span class="preprocessor">        APR_BRIGADE_CHECK_CONSISTENCY((a));                             \</span>
-00382 <span class="preprocessor">    } while (0)</span>
-00383 <span class="preprocessor"></span>
-<a name="l00389"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga86">00389</a> <span class="preprocessor">#define APR_BRIGADE_PREPEND(a, b) do {                                  \</span>
-00390 <span class="preprocessor">        APR_RING_PREPEND(&amp;(a)-&gt;list, &amp;(b)-&gt;list, apr_bucket, link);     \</span>
-00391 <span class="preprocessor">        APR_BRIGADE_CHECK_CONSISTENCY((a));                             \</span>
-00392 <span class="preprocessor">    } while (0)</span>
-00393 <span class="preprocessor"></span>
-<a name="l00399"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga87">00399</a> <span class="preprocessor">#define APR_BUCKET_INSERT_BEFORE(a, b) do {                             \</span>
-00400 <span class="preprocessor">        apr_bucket *ap__a = (a), *ap__b = (b);                          \</span>
-00401 <span class="preprocessor">        APR_RING_INSERT_BEFORE(ap__a, ap__b, link);                     \</span>
-00402 <span class="preprocessor">        APR_BUCKET_CHECK_CONSISTENCY(ap__a);                            \</span>
-00403 <span class="preprocessor">    } while (0)</span>
-00404 <span class="preprocessor"></span>
-<a name="l00410"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga88">00410</a> <span class="preprocessor">#define APR_BUCKET_INSERT_AFTER(a, b) do {                              \</span>
-00411 <span class="preprocessor">        apr_bucket *ap__a = (a), *ap__b = (b);                          \</span>
-00412 <span class="preprocessor">        APR_RING_INSERT_AFTER(ap__a, ap__b, link);                      \</span>
-00413 <span class="preprocessor">        APR_BUCKET_CHECK_CONSISTENCY(ap__a);                            \</span>
-00414 <span class="preprocessor">    } while (0)</span>
-00415 <span class="preprocessor"></span>
-<a name="l00421"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga89">00421</a> <span class="preprocessor">#define APR_BUCKET_NEXT(e)      APR_RING_NEXT((e), link)</span>
-00422 <span class="preprocessor"></span>
-<a name="l00427"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga90">00427</a> <span class="preprocessor">#define APR_BUCKET_PREV(e)      APR_RING_PREV((e), link)</span>
-00428 <span class="preprocessor"></span>
-<a name="l00433"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga91">00433</a> <span class="preprocessor">#define APR_BUCKET_REMOVE(e)    APR_RING_REMOVE((e), link)</span>
-00434 <span class="preprocessor"></span>
-<a name="l00439"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga92">00439</a> <span class="preprocessor">#define APR_BUCKET_INIT(e)      APR_RING_ELEM_INIT((e), link)</span>
-00440 <span class="preprocessor"></span>
-<a name="l00447"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga93">00447</a> <span class="preprocessor">#define APR_BUCKET_IS_METADATA(e)    ((e)-&gt;type-&gt;is_metadata)</span>
-00448 <span class="preprocessor"></span>
-<a name="l00454"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga94">00454</a> <span class="preprocessor">#define APR_BUCKET_IS_FLUSH(e)       ((e)-&gt;type == &amp;apr_bucket_type_flush)</span>
-00455 <span class="preprocessor"></span>
-<a name="l00460"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga95">00460</a> <span class="preprocessor">#define APR_BUCKET_IS_EOS(e)         ((e)-&gt;type == &amp;apr_bucket_type_eos)</span>
-00461 <span class="preprocessor"></span>
-<a name="l00466"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga96">00466</a> <span class="preprocessor">#define APR_BUCKET_IS_FILE(e)        ((e)-&gt;type == &amp;apr_bucket_type_file)</span>
-00467 <span class="preprocessor"></span>
-<a name="l00472"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga97">00472</a> <span class="preprocessor">#define APR_BUCKET_IS_PIPE(e)        ((e)-&gt;type == &amp;apr_bucket_type_pipe)</span>
-00473 <span class="preprocessor"></span>
-<a name="l00478"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga98">00478</a> <span class="preprocessor">#define APR_BUCKET_IS_SOCKET(e)      ((e)-&gt;type == &amp;apr_bucket_type_socket)</span>
-00479 <span class="preprocessor"></span>
-<a name="l00484"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga99">00484</a> <span class="preprocessor">#define APR_BUCKET_IS_HEAP(e)        ((e)-&gt;type == &amp;apr_bucket_type_heap)</span>
-00485 <span class="preprocessor"></span>
-<a name="l00490"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga100">00490</a> <span class="preprocessor">#define APR_BUCKET_IS_TRANSIENT(e)   ((e)-&gt;type == &amp;apr_bucket_type_transient)</span>
-00491 <span class="preprocessor"></span>
-<a name="l00496"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga101">00496</a> <span class="preprocessor">#define APR_BUCKET_IS_IMMORTAL(e)    ((e)-&gt;type == &amp;apr_bucket_type_immortal)</span>
-00497 <span class="preprocessor"></span><span class="preprocessor">#if APR_HAS_MMAP</span>
-00498 <span class="preprocessor"></span>
-<a name="l00503"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga102">00503</a> <span class="preprocessor">#define APR_BUCKET_IS_MMAP(e)        ((e)-&gt;type == &amp;apr_bucket_type_mmap)</span>
-00504 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-00505 <span class="preprocessor"></span>
-<a name="l00510"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga103">00510</a> <span class="preprocessor">#define APR_BUCKET_IS_POOL(e)        ((e)-&gt;type == &amp;apr_bucket_type_pool)</span>
-00511 <span class="preprocessor"></span>
-00512 <span class="comment">/*</span>
-00513 <span class="comment"> * General-purpose reference counting for the various bucket types.</span>
-00514 <span class="comment"> *</span>
-00515 <span class="comment"> * Any bucket type that keeps track of the resources it uses (i.e.</span>
-00516 <span class="comment"> * most of them except for IMMORTAL, TRANSIENT, and EOS) needs to</span>
-00517 <span class="comment"> * attach a reference count to the resource so that it can be freed</span>
-00518 <span class="comment"> * when the last bucket that uses it goes away. Resource-sharing may</span>
-00519 <span class="comment"> * occur because of bucket splits or buckets that refer to globally</span>
-00520 <span class="comment"> * cached data. */</span>
-00521 
-<a name="l00523"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga5">00523</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structapr__bucket__refcount.html">apr_bucket_refcount</a> <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga5">apr_bucket_refcount</a>;
-<a name="l00530"></a><a class="code" href="structapr__bucket__refcount.html">00530</a> <span class="keyword">struct </span><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga5">apr_bucket_refcount</a> {
-<a name="l00532"></a><a class="code" href="structapr__bucket__refcount.html#o0">00532</a>     <span class="keywordtype">int</span>          refcount;
-00533 };
-00534 
-00535 <span class="comment">/*  *****  Reference-counted bucket types  *****  */</span>
-00536 
-<a name="l00538"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga6">00538</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structapr__bucket__heap.html">apr_bucket_heap</a> <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga6">apr_bucket_heap</a>;
-<a name="l00542"></a><a class="code" href="structapr__bucket__heap.html">00542</a> <span class="keyword">struct </span><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga6">apr_bucket_heap</a> {
-<a name="l00544"></a><a class="code" href="structapr__bucket__heap.html#o0">00544</a>     <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga5">apr_bucket_refcount</a>  refcount;
-<a name="l00548"></a><a class="code" href="structapr__bucket__heap.html#o1">00548</a>     <span class="keywordtype">char</span>    *base;
-<a name="l00550"></a><a class="code" href="structapr__bucket__heap.html#o2">00550</a>     apr_size_t  alloc_len;
-00552     void (*free_func)(<span class="keywordtype">void</span> *data);
-00553 };
-00554 
-<a name="l00556"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga7">00556</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structapr__bucket__pool.html">apr_bucket_pool</a> <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga7">apr_bucket_pool</a>;
-<a name="l00560"></a><a class="code" href="structapr__bucket__pool.html">00560</a> <span class="keyword">struct </span><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga7">apr_bucket_pool</a> {
-<a name="l00572"></a><a class="code" href="structapr__bucket__pool.html#o0">00572</a>     <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga6">apr_bucket_heap</a>  heap;
-<a name="l00578"></a><a class="code" href="structapr__bucket__pool.html#o1">00578</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> *base;
-<a name="l00585"></a><a class="code" href="structapr__bucket__pool.html#o2">00585</a>     apr_pool_t *pool;
-<a name="l00589"></a><a class="code" href="structapr__bucket__pool.html#o3">00589</a>     <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga2">apr_bucket_alloc_t</a> *list;
-00590 };
-00591 
-00592 <span class="preprocessor">#if APR_HAS_MMAP</span>
-00593 <span class="preprocessor"></span>
-<a name="l00594"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga8">00594</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structapr__bucket__mmap.html">apr_bucket_mmap</a> <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga8">apr_bucket_mmap</a>;
-<a name="l00598"></a><a class="code" href="structapr__bucket__mmap.html">00598</a> <span class="keyword">struct </span><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga8">apr_bucket_mmap</a> {
-<a name="l00600"></a><a class="code" href="structapr__bucket__mmap.html#o0">00600</a>     <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga5">apr_bucket_refcount</a>  refcount;
-<a name="l00602"></a><a class="code" href="structapr__bucket__mmap.html#o1">00602</a>     apr_mmap_t *mmap;
-00603 };
-00604 <span class="preprocessor">#endif</span>
-00605 <span class="preprocessor"></span>
-<a name="l00607"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga9">00607</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structapr__bucket__file.html">apr_bucket_file</a> <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga9">apr_bucket_file</a>;
-<a name="l00611"></a><a class="code" href="structapr__bucket__file.html">00611</a> <span class="keyword">struct </span><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga9">apr_bucket_file</a> {
-<a name="l00613"></a><a class="code" href="structapr__bucket__file.html#o0">00613</a>     <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga5">apr_bucket_refcount</a>  refcount;
-<a name="l00615"></a><a class="code" href="structapr__bucket__file.html#o1">00615</a>     apr_file_t *fd;
-<a name="l00618"></a><a class="code" href="structapr__bucket__file.html#o2">00618</a>     apr_pool_t *readpool;
-00619 <span class="preprocessor">#if APR_HAS_MMAP</span>
-00620 <span class="preprocessor"></span>
-<a name="l00622"></a><a class="code" href="structapr__bucket__file.html#o3">00622</a>     <span class="keywordtype">int</span> can_mmap;
-00623 <span class="preprocessor">#endif </span><span class="comment">/* APR_HAS_MMAP */</span>
-00624 };
-00625 
-<a name="l00627"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga10">00627</a> <span class="keyword">typedef</span> <span class="keyword">union </span><a class="code" href="unionapr__bucket__structs.html">apr_bucket_structs</a> <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga10">apr_bucket_structs</a>;
-<a name="l00632"></a><a class="code" href="unionapr__bucket__structs.html">00632</a> <span class="keyword">union </span><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga10">apr_bucket_structs</a> {
-<a name="l00633"></a><a class="code" href="unionapr__bucket__structs.html#o0">00633</a>     <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga1">apr_bucket</a>      b;      
-<a name="l00634"></a><a class="code" href="unionapr__bucket__structs.html#o1">00634</a>     <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga6">apr_bucket_heap</a> heap;   
-<a name="l00635"></a><a class="code" href="unionapr__bucket__structs.html#o2">00635</a>     <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga7">apr_bucket_pool</a> pool;   
-00636 <span class="preprocessor">#if APR_HAS_MMAP</span>
-<a name="l00637"></a><a class="code" href="unionapr__bucket__structs.html#o3">00637</a> <span class="preprocessor"></span>    <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga8">apr_bucket_mmap</a> mmap;   
-00638 <span class="preprocessor">#endif</span>
-<a name="l00639"></a><a class="code" href="unionapr__bucket__structs.html#o4">00639</a> <span class="preprocessor"></span>    <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga9">apr_bucket_file</a> file;   
-00640 };
-00641 
-<a name="l00647"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga104">00647</a> <span class="preprocessor">#define APR_BUCKET_ALLOC_SIZE  APR_ALIGN_DEFAULT(2*sizeof(apr_bucket_structs))</span>
-00648 <span class="preprocessor"></span>
-00649 <span class="comment">/*  *****  Bucket Brigade Functions  *****  */</span>
-00657 APU_DECLARE(apr_bucket_brigade *) apr_brigade_create(apr_pool_t *p,
-00658                                                      apr_bucket_alloc_t *list);
-00659 
-00665 APU_DECLARE(apr_status_t) apr_brigade_destroy(apr_bucket_brigade *b);
-00666 
-00678 APU_DECLARE(apr_status_t) apr_brigade_cleanup(<span class="keywordtype">void</span> *data);
-00679 
-00689 APU_DECLARE(apr_bucket_brigade *) apr_brigade_split(apr_bucket_brigade *b,
-00690                                                     apr_bucket *e);
-00691 
-00700 APU_DECLARE(apr_status_t) apr_brigade_partition(apr_bucket_brigade *b,
-00701                                                 apr_off_t point,
-00702                                                 apr_bucket **after_point);
-00703 
-00711 APU_DECLARE(apr_status_t) apr_brigade_length(apr_bucket_brigade *bb,
-00712                                              <span class="keywordtype">int</span> read_all,
-00713                                              apr_off_t *length);
-00714 
-00722 APU_DECLARE(apr_status_t) apr_brigade_flatten(apr_bucket_brigade *bb,
-00723                                               <span class="keywordtype">char</span> *c,
-00724                                               apr_size_t *len);
-00725 
-00733 APU_DECLARE(apr_status_t) apr_brigade_pflatten(apr_bucket_brigade *bb, 
-00734                                                <span class="keywordtype">char</span> **c,
-00735                                                apr_size_t *len,
-00736                                                apr_pool_t *pool);
-00737 
-00746 APU_DECLARE(apr_status_t) apr_brigade_split_line(apr_bucket_brigade *bbOut,
-00747                                                  apr_bucket_brigade *bbIn,
-00748                                                  apr_read_type_e block,
-00749                                                  apr_off_t maxbytes);
-00750 
-00760 APU_DECLARE(apr_status_t) apr_brigade_to_iovec(apr_bucket_brigade *b, 
-00761                                                struct iovec *vec, <span class="keywordtype">int</span> *nvec);
-00762 
-00771 APU_DECLARE(apr_status_t) apr_brigade_vputstrs(apr_bucket_brigade *b,
-00772                                                <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga4">apr_brigade_flush</a> flush,
-00773                                                <span class="keywordtype">void</span> *ctx,
-00774                                                va_list va);
-00775 
-00785 APU_DECLARE(apr_status_t) apr_brigade_write(apr_bucket_brigade *b,
-00786                                             <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga4">apr_brigade_flush</a> flush, <span class="keywordtype">void</span> *ctx,
-00787                                             const <span class="keywordtype">char</span> *str, apr_size_t nbyte);
-00788 
-00798 APU_DECLARE(apr_status_t) apr_brigade_writev(apr_bucket_brigade *b,
-00799                                              <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga4">apr_brigade_flush</a> flush,
-00800                                              <span class="keywordtype">void</span> *ctx,
-00801                                              const struct iovec *vec,
-00802                                              apr_size_t nvec);
-00803 
-00812 APU_DECLARE(apr_status_t) apr_brigade_puts(apr_bucket_brigade *bb,
-00813                                            <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga4">apr_brigade_flush</a> flush, <span class="keywordtype">void</span> *ctx,
-00814                                            const <span class="keywordtype">char</span> *str);
-00815 
-00824 APU_DECLARE(apr_status_t) apr_brigade_putc(apr_bucket_brigade *b,
-00825                                            <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga4">apr_brigade_flush</a> flush, <span class="keywordtype">void</span> *ctx,
-00826                                            const <span class="keywordtype">char</span> c);
-00827 
-00836 APU_DECLARE_NONSTD(apr_status_t) apr_brigade_putstrs(apr_bucket_brigade *b,
-00837                                                      <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga4">apr_brigade_flush</a> flush,
-00838                                                      <span class="keywordtype">void</span> *ctx, ...);
-00839 
-00850 APU_DECLARE_NONSTD(apr_status_t) apr_brigade_printf(apr_bucket_brigade *b, 
-00851                                                     <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga4">apr_brigade_flush</a> flush,
-00852                                                     <span class="keywordtype">void</span> *ctx,
-00853                                                     const <span class="keywordtype">char</span> *fmt, ...)
-00854         __attribute__((format(printf,4,5)));
-00855 
-00866 APU_DECLARE(apr_status_t) apr_brigade_vprintf(apr_bucket_brigade *b, 
-00867                                               <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga4">apr_brigade_flush</a> flush,
-00868                                               <span class="keywordtype">void</span> *ctx,
-00869                                               const <span class="keywordtype">char</span> *fmt, va_list va);
-00870 
-00871 <span class="comment">/*  *****  Bucket freelist functions *****  */</span>
-00885 APU_DECLARE_NONSTD(apr_bucket_alloc_t *) apr_bucket_alloc_create(apr_pool_t *p);
-00886 
-00895 APU_DECLARE_NONSTD(apr_bucket_alloc_t *) apr_bucket_alloc_create_ex(apr_allocator_t *allocator);
-00896 
-00901 APU_DECLARE_NONSTD(<span class="keywordtype">void</span>) apr_bucket_alloc_destroy(apr_bucket_alloc_t *list);
-00902 
-00908 APU_DECLARE_NONSTD(<span class="keywordtype">void</span> *) apr_bucket_alloc(apr_size_t size, apr_bucket_alloc_t *list);
-00909 
-00914 APU_DECLARE_NONSTD(<span class="keywordtype">void</span>) apr_bucket_free(<span class="keywordtype">void</span> *block);
-00915 
-00916 
-00917 <span class="comment">/*  *****  Bucket Functions  *****  */</span>
-<a name="l00924"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga105">00924</a> #define apr_bucket_destroy(e) do {                                      \
-00925         (e)-&gt;type-&gt;destroy((e)-&gt;data);                                  \
-00926         (e)-&gt;free(e);                                                   \
-00927     } <span class="keywordflow">while</span> (0)
-00928 
-<a name="l00940"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga106">00940</a> <span class="preprocessor">#define apr_bucket_delete(e) do {                                       \</span>
-00941 <span class="preprocessor">        APR_BUCKET_REMOVE(e);                                           \</span>
-00942 <span class="preprocessor">        apr_bucket_destroy(e);                                          \</span>
-00943 <span class="preprocessor">    } while (0)</span>
-00944 <span class="preprocessor"></span>
-<a name="l00952"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga107">00952</a> <span class="preprocessor">#define apr_bucket_read(e,str,len,block) (e)-&gt;type-&gt;read(e, str, len, block)</span>
-00953 <span class="preprocessor"></span>
-<a name="l00960"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga108">00960</a> <span class="preprocessor">#define apr_bucket_setaside(e,p) (e)-&gt;type-&gt;setaside(e,p)</span>
-00961 <span class="preprocessor"></span>
-<a name="l00967"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga109">00967</a> <span class="preprocessor">#define apr_bucket_split(e,point) (e)-&gt;type-&gt;split(e, point)</span>
-00968 <span class="preprocessor"></span>
-<a name="l00974"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga110">00974</a> <span class="preprocessor">#define apr_bucket_copy(e,c) (e)-&gt;type-&gt;copy(e, c)</span>
-00975 <span class="preprocessor"></span>
-00976 <span class="comment">/* Bucket type handling */</span>
-00977 
-00987 APU_DECLARE_NONSTD(apr_status_t) apr_bucket_setaside_noop(apr_bucket *data,
-00988                                                           apr_pool_t *pool);
-00989 
-00997 APU_DECLARE_NONSTD(apr_status_t) apr_bucket_setaside_notimpl(apr_bucket *data,
-00998                                                              apr_pool_t *pool);
-00999 
-01007 APU_DECLARE_NONSTD(apr_status_t) apr_bucket_split_notimpl(apr_bucket *data,
-01008                                                           apr_size_t point);
-01009 
-01017 APU_DECLARE_NONSTD(apr_status_t) apr_bucket_copy_notimpl(apr_bucket *e,
-01018                                                          apr_bucket **c);
-01019 
-01029 APU_DECLARE_NONSTD(<span class="keywordtype">void</span>) apr_bucket_destroy_noop(<span class="keywordtype">void</span> *data);
+00314 
+<a name="l00331"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga80">00331</a> #define APR_BRIGADE_SENTINEL(b) APR_RING_SENTINEL(&amp;(b)-&gt;list, apr_bucket, link)
+00332 
+<a name="l00338"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga81">00338</a> #define APR_BRIGADE_EMPTY(b)    APR_RING_EMPTY(&amp;(b)-&gt;list, apr_bucket, link)
+00339 
+<a name="l00345"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga82">00345</a> #define APR_BRIGADE_FIRST(b)    APR_RING_FIRST(&amp;(b)-&gt;list)
+<a name="l00351"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga83">00351</a> #define APR_BRIGADE_LAST(b)     APR_RING_LAST(&amp;(b)-&gt;list)
+00352 
+<a name="l00358"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga84">00358</a> #define APR_BRIGADE_INSERT_HEAD(b, e) do {                              \
+00359         <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga1">apr_bucket</a> *ap__b = (e);                                        \
+00360         APR_RING_INSERT_HEAD(&amp;(b)-&gt;list, ap__b, <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga1">apr_bucket</a>, link);      \
+00361         <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga78">APR_BRIGADE_CHECK_CONSISTENCY</a>((b));                             \
+00362     } <span class="keywordflow">while</span> (0)
+00363 
+<a name="l00369"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga85">00369</a> <span class="preprocessor">#define APR_BRIGADE_INSERT_TAIL(b, e) do {                              \</span>
+00370 <span class="preprocessor">        apr_bucket *ap__b = (e);                                        \</span>
+00371 <span class="preprocessor">        APR_RING_INSERT_TAIL(&amp;(b)-&gt;list, ap__b, apr_bucket, link);      \</span>
+00372 <span class="preprocessor">        APR_BRIGADE_CHECK_CONSISTENCY((b));                             \</span>
+00373 <span class="preprocessor">    } while (0)</span>
+00374 <span class="preprocessor"></span>
+<a name="l00380"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga86">00380</a> <span class="preprocessor">#define APR_BRIGADE_CONCAT(a, b) do {                                   \</span>
+00381 <span class="preprocessor">        APR_RING_CONCAT(&amp;(a)-&gt;list, &amp;(b)-&gt;list, apr_bucket, link);      \</span>
+00382 <span class="preprocessor">        APR_BRIGADE_CHECK_CONSISTENCY((a));                             \</span>
+00383 <span class="preprocessor">    } while (0)</span>
+00384 <span class="preprocessor"></span>
+<a name="l00390"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga87">00390</a> <span class="preprocessor">#define APR_BRIGADE_PREPEND(a, b) do {                                  \</span>
+00391 <span class="preprocessor">        APR_RING_PREPEND(&amp;(a)-&gt;list, &amp;(b)-&gt;list, apr_bucket, link);     \</span>
+00392 <span class="preprocessor">        APR_BRIGADE_CHECK_CONSISTENCY((a));                             \</span>
+00393 <span class="preprocessor">    } while (0)</span>
+00394 <span class="preprocessor"></span>
+<a name="l00400"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga88">00400</a> <span class="preprocessor">#define APR_BUCKET_INSERT_BEFORE(a, b) do {                             \</span>
+00401 <span class="preprocessor">        apr_bucket *ap__a = (a), *ap__b = (b);                          \</span>
+00402 <span class="preprocessor">        APR_RING_INSERT_BEFORE(ap__a, ap__b, link);                     \</span>
+00403 <span class="preprocessor">        APR_BUCKET_CHECK_CONSISTENCY(ap__a);                            \</span>
+00404 <span class="preprocessor">    } while (0)</span>
+00405 <span class="preprocessor"></span>
+<a name="l00411"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga89">00411</a> <span class="preprocessor">#define APR_BUCKET_INSERT_AFTER(a, b) do {                              \</span>
+00412 <span class="preprocessor">        apr_bucket *ap__a = (a), *ap__b = (b);                          \</span>
+00413 <span class="preprocessor">        APR_RING_INSERT_AFTER(ap__a, ap__b, link);                      \</span>
+00414 <span class="preprocessor">        APR_BUCKET_CHECK_CONSISTENCY(ap__a);                            \</span>
+00415 <span class="preprocessor">    } while (0)</span>
+00416 <span class="preprocessor"></span>
+<a name="l00422"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga90">00422</a> <span class="preprocessor">#define APR_BUCKET_NEXT(e)      APR_RING_NEXT((e), link)</span>
+00423 <span class="preprocessor"></span>
+<a name="l00428"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga91">00428</a> <span class="preprocessor">#define APR_BUCKET_PREV(e)      APR_RING_PREV((e), link)</span>
+00429 <span class="preprocessor"></span>
+<a name="l00434"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga92">00434</a> <span class="preprocessor">#define APR_BUCKET_REMOVE(e)    APR_RING_REMOVE((e), link)</span>
+00435 <span class="preprocessor"></span>
+<a name="l00440"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga93">00440</a> <span class="preprocessor">#define APR_BUCKET_INIT(e)      APR_RING_ELEM_INIT((e), link)</span>
+00441 <span class="preprocessor"></span>
+<a name="l00448"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga94">00448</a> <span class="preprocessor">#define APR_BUCKET_IS_METADATA(e)    ((e)-&gt;type-&gt;is_metadata)</span>
+00449 <span class="preprocessor"></span>
+<a name="l00455"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga95">00455</a> <span class="preprocessor">#define APR_BUCKET_IS_FLUSH(e)       ((e)-&gt;type == &amp;apr_bucket_type_flush)</span>
+00456 <span class="preprocessor"></span>
+<a name="l00461"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga96">00461</a> <span class="preprocessor">#define APR_BUCKET_IS_EOS(e)         ((e)-&gt;type == &amp;apr_bucket_type_eos)</span>
+00462 <span class="preprocessor"></span>
+<a name="l00467"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga97">00467</a> <span class="preprocessor">#define APR_BUCKET_IS_FILE(e)        ((e)-&gt;type == &amp;apr_bucket_type_file)</span>
+00468 <span class="preprocessor"></span>
+<a name="l00473"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga98">00473</a> <span class="preprocessor">#define APR_BUCKET_IS_PIPE(e)        ((e)-&gt;type == &amp;apr_bucket_type_pipe)</span>
+00474 <span class="preprocessor"></span>
+<a name="l00479"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga99">00479</a> <span class="preprocessor">#define APR_BUCKET_IS_SOCKET(e)      ((e)-&gt;type == &amp;apr_bucket_type_socket)</span>
+00480 <span class="preprocessor"></span>
+<a name="l00485"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga100">00485</a> <span class="preprocessor">#define APR_BUCKET_IS_HEAP(e)        ((e)-&gt;type == &amp;apr_bucket_type_heap)</span>
+00486 <span class="preprocessor"></span>
+<a name="l00491"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga101">00491</a> <span class="preprocessor">#define APR_BUCKET_IS_TRANSIENT(e)   ((e)-&gt;type == &amp;apr_bucket_type_transient)</span>
+00492 <span class="preprocessor"></span>
+<a name="l00497"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga102">00497</a> <span class="preprocessor">#define APR_BUCKET_IS_IMMORTAL(e)    ((e)-&gt;type == &amp;apr_bucket_type_immortal)</span>
+00498 <span class="preprocessor"></span><span class="preprocessor">#if APR_HAS_MMAP</span>
+00499 <span class="preprocessor"></span>
+<a name="l00504"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga103">00504</a> <span class="preprocessor">#define APR_BUCKET_IS_MMAP(e)        ((e)-&gt;type == &amp;apr_bucket_type_mmap)</span>
+00505 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+00506 <span class="preprocessor"></span>
+<a name="l00511"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga104">00511</a> <span class="preprocessor">#define APR_BUCKET_IS_POOL(e)        ((e)-&gt;type == &amp;apr_bucket_type_pool)</span>
+00512 <span class="preprocessor"></span>
+00513 <span class="comment">/*</span>
+00514 <span class="comment"> * General-purpose reference counting for the various bucket types.</span>
+00515 <span class="comment"> *</span>
+00516 <span class="comment"> * Any bucket type that keeps track of the resources it uses (i.e.</span>
+00517 <span class="comment"> * most of them except for IMMORTAL, TRANSIENT, and EOS) needs to</span>
+00518 <span class="comment"> * attach a reference count to the resource so that it can be freed</span>
+00519 <span class="comment"> * when the last bucket that uses it goes away. Resource-sharing may</span>
+00520 <span class="comment"> * occur because of bucket splits or buckets that refer to globally</span>
+00521 <span class="comment"> * cached data. */</span>
+00522 
+<a name="l00524"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga5">00524</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structapr__bucket__refcount.html">apr_bucket_refcount</a> <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga5">apr_bucket_refcount</a>;
+<a name="l00531"></a><a class="code" href="structapr__bucket__refcount.html">00531</a> <span class="keyword">struct </span><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga5">apr_bucket_refcount</a> {
+<a name="l00533"></a><a class="code" href="structapr__bucket__refcount.html#o0">00533</a>     <span class="keywordtype">int</span>          refcount;
+00534 };
+00535 
+00536 <span class="comment">/*  *****  Reference-counted bucket types  *****  */</span>
+00537 
+<a name="l00539"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga6">00539</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structapr__bucket__heap.html">apr_bucket_heap</a> <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga6">apr_bucket_heap</a>;
+<a name="l00543"></a><a class="code" href="structapr__bucket__heap.html">00543</a> <span class="keyword">struct </span><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga6">apr_bucket_heap</a> {
+<a name="l00545"></a><a class="code" href="structapr__bucket__heap.html#o0">00545</a>     <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga5">apr_bucket_refcount</a>  refcount;
+<a name="l00549"></a><a class="code" href="structapr__bucket__heap.html#o1">00549</a>     <span class="keywordtype">char</span>    *base;
+<a name="l00551"></a><a class="code" href="structapr__bucket__heap.html#o2">00551</a>     apr_size_t  alloc_len;
+00553     void (*free_func)(<span class="keywordtype">void</span> *data);
+00554 };
+00555 
+<a name="l00557"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga7">00557</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structapr__bucket__pool.html">apr_bucket_pool</a> <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga7">apr_bucket_pool</a>;
+<a name="l00561"></a><a class="code" href="structapr__bucket__pool.html">00561</a> <span class="keyword">struct </span><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga7">apr_bucket_pool</a> {
+<a name="l00573"></a><a class="code" href="structapr__bucket__pool.html#o0">00573</a>     <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga6">apr_bucket_heap</a>  heap;
+<a name="l00579"></a><a class="code" href="structapr__bucket__pool.html#o1">00579</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> *base;
+<a name="l00586"></a><a class="code" href="structapr__bucket__pool.html#o2">00586</a>     apr_pool_t *pool;
+<a name="l00590"></a><a class="code" href="structapr__bucket__pool.html#o3">00590</a>     <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga2">apr_bucket_alloc_t</a> *list;
+00591 };
+00592 
+00593 <span class="preprocessor">#if APR_HAS_MMAP</span>
+00594 <span class="preprocessor"></span>
+<a name="l00595"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga8">00595</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structapr__bucket__mmap.html">apr_bucket_mmap</a> <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga8">apr_bucket_mmap</a>;
+<a name="l00599"></a><a class="code" href="structapr__bucket__mmap.html">00599</a> <span class="keyword">struct </span><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga8">apr_bucket_mmap</a> {
+<a name="l00601"></a><a class="code" href="structapr__bucket__mmap.html#o0">00601</a>     <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga5">apr_bucket_refcount</a>  refcount;
+<a name="l00603"></a><a class="code" href="structapr__bucket__mmap.html#o1">00603</a>     apr_mmap_t *mmap;
+00604 };
+00605 <span class="preprocessor">#endif</span>
+00606 <span class="preprocessor"></span>
+<a name="l00608"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga9">00608</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structapr__bucket__file.html">apr_bucket_file</a> <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga9">apr_bucket_file</a>;
+<a name="l00612"></a><a class="code" href="structapr__bucket__file.html">00612</a> <span class="keyword">struct </span><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga9">apr_bucket_file</a> {
+<a name="l00614"></a><a class="code" href="structapr__bucket__file.html#o0">00614</a>     <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga5">apr_bucket_refcount</a>  refcount;
+<a name="l00616"></a><a class="code" href="structapr__bucket__file.html#o1">00616</a>     apr_file_t *fd;
+<a name="l00619"></a><a class="code" href="structapr__bucket__file.html#o2">00619</a>     apr_pool_t *readpool;
+00620 <span class="preprocessor">#if APR_HAS_MMAP</span>
+00621 <span class="preprocessor"></span>
+<a name="l00623"></a><a class="code" href="structapr__bucket__file.html#o3">00623</a>     <span class="keywordtype">int</span> can_mmap;
+00624 <span class="preprocessor">#endif </span><span class="comment">/* APR_HAS_MMAP */</span>
+00625 };
+00626 
+<a name="l00628"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga10">00628</a> <span class="keyword">typedef</span> <span class="keyword">union </span><a class="code" href="unionapr__bucket__structs.html">apr_bucket_structs</a> <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga10">apr_bucket_structs</a>;
+<a name="l00633"></a><a class="code" href="unionapr__bucket__structs.html">00633</a> <span class="keyword">union </span><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga10">apr_bucket_structs</a> {
+<a name="l00634"></a><a class="code" href="unionapr__bucket__structs.html#o0">00634</a>     <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga1">apr_bucket</a>      b;      
+<a name="l00635"></a><a class="code" href="unionapr__bucket__structs.html#o1">00635</a>     <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga6">apr_bucket_heap</a> heap;   
+<a name="l00636"></a><a class="code" href="unionapr__bucket__structs.html#o2">00636</a>     <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga7">apr_bucket_pool</a> pool;   
+00637 <span class="preprocessor">#if APR_HAS_MMAP</span>
+<a name="l00638"></a><a class="code" href="unionapr__bucket__structs.html#o3">00638</a> <span class="preprocessor"></span>    <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga8">apr_bucket_mmap</a> mmap;   
+00639 <span class="preprocessor">#endif</span>
+<a name="l00640"></a><a class="code" href="unionapr__bucket__structs.html#o4">00640</a> <span class="preprocessor"></span>    <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga9">apr_bucket_file</a> file;   
+00641 };
+00642 
+<a name="l00648"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga105">00648</a> <span class="preprocessor">#define APR_BUCKET_ALLOC_SIZE  APR_ALIGN_DEFAULT(2*sizeof(apr_bucket_structs))</span>
+00649 <span class="preprocessor"></span>
+00650 <span class="comment">/*  *****  Bucket Brigade Functions  *****  */</span>
+00658 APU_DECLARE(apr_bucket_brigade *) apr_brigade_create(apr_pool_t *p,
+00659                                                      apr_bucket_alloc_t *list);
+00660 
+00666 APU_DECLARE(apr_status_t) apr_brigade_destroy(apr_bucket_brigade *b);
+00667 
+00679 APU_DECLARE(apr_status_t) apr_brigade_cleanup(<span class="keywordtype">void</span> *data);
+00680 
+00690 APU_DECLARE(apr_bucket_brigade *) apr_brigade_split(apr_bucket_brigade *b,
+00691                                                     apr_bucket *e);
+00692 
+00701 APU_DECLARE(apr_status_t) apr_brigade_partition(apr_bucket_brigade *b,
+00702                                                 apr_off_t point,
+00703                                                 apr_bucket **after_point);
+00704 
+00712 APU_DECLARE(apr_status_t) apr_brigade_length(apr_bucket_brigade *bb,
+00713                                              <span class="keywordtype">int</span> read_all,
+00714                                              apr_off_t *length);
+00715 
+00723 APU_DECLARE(apr_status_t) apr_brigade_flatten(apr_bucket_brigade *bb,
+00724                                               <span class="keywordtype">char</span> *c,
+00725                                               apr_size_t *len);
+00726 
+00734 APU_DECLARE(apr_status_t) apr_brigade_pflatten(apr_bucket_brigade *bb, 
+00735                                                <span class="keywordtype">char</span> **c,
+00736                                                apr_size_t *len,
+00737                                                apr_pool_t *pool);
+00738 
+00747 APU_DECLARE(apr_status_t) apr_brigade_split_line(apr_bucket_brigade *bbOut,
+00748                                                  apr_bucket_brigade *bbIn,
+00749                                                  apr_read_type_e block,
+00750                                                  apr_off_t maxbytes);
+00751 
+00761 APU_DECLARE(apr_status_t) apr_brigade_to_iovec(apr_bucket_brigade *b, 
+00762                                                struct iovec *vec, <span class="keywordtype">int</span> *nvec);
+00763 
+00772 APU_DECLARE(apr_status_t) apr_brigade_vputstrs(apr_bucket_brigade *b,
+00773                                                apr_brigade_flush flush,
+00774                                                <span class="keywordtype">void</span> *ctx,
+00775                                                va_list va);
+00776 
+00786 APU_DECLARE(apr_status_t) apr_brigade_write(apr_bucket_brigade *b,
+00787                                             apr_brigade_flush flush, <span class="keywordtype">void</span> *ctx,
+00788                                             const <span class="keywordtype">char</span> *str, apr_size_t nbyte);
+00789 
+00799 APU_DECLARE(apr_status_t) apr_brigade_writev(apr_bucket_brigade *b,
+00800                                              apr_brigade_flush flush,
+00801                                              <span class="keywordtype">void</span> *ctx,
+00802                                              const struct iovec *vec,
+00803                                              apr_size_t nvec);
+00804 
+00813 APU_DECLARE(apr_status_t) apr_brigade_puts(apr_bucket_brigade *bb,
+00814                                            apr_brigade_flush flush, <span class="keywordtype">void</span> *ctx,
+00815                                            const <span class="keywordtype">char</span> *str);
+00816 
+00825 APU_DECLARE(apr_status_t) apr_brigade_putc(apr_bucket_brigade *b,
+00826                                            apr_brigade_flush flush, <span class="keywordtype">void</span> *ctx,
+00827                                            const <span class="keywordtype">char</span> c);
+00828 
+00837 APU_DECLARE_NONSTD(apr_status_t) apr_brigade_putstrs(apr_bucket_brigade *b,
+00838                                                      apr_brigade_flush flush,
+00839                                                      <span class="keywordtype">void</span> *ctx, ...);
+00840 
+00851 APU_DECLARE_NONSTD(apr_status_t) apr_brigade_printf(apr_bucket_brigade *b, 
+00852                                                     apr_brigade_flush flush,
+00853                                                     <span class="keywordtype">void</span> *ctx,
+00854                                                     const <span class="keywordtype">char</span> *fmt, ...)
+00855         __attribute__((format(printf,4,5)));
+00856 
+00867 APU_DECLARE(apr_status_t) apr_brigade_vprintf(apr_bucket_brigade *b, 
+00868                                               apr_brigade_flush flush,
+00869                                               <span class="keywordtype">void</span> *ctx,
+00870                                               const <span class="keywordtype">char</span> *fmt, va_list va);
+00871 
+00884 APU_DECLARE(apr_bucket *) apr_brigade_insert_file(apr_bucket_brigade *bb,
+00885                                                   apr_file_t *f,
+00886                                                   apr_off_t start,
+00887                                                   apr_off_t len,
+00888                                                   apr_pool_t *p);
+00889 
+00890 
+00891 
+00892 <span class="comment">/*  *****  Bucket freelist functions *****  */</span>
+00906 APU_DECLARE_NONSTD(apr_bucket_alloc_t *) apr_bucket_alloc_create(apr_pool_t *p);
+00907 
+00916 APU_DECLARE_NONSTD(apr_bucket_alloc_t *) apr_bucket_alloc_create_ex(apr_allocator_t *allocator);
+00917 
+00922 APU_DECLARE_NONSTD(<span class="keywordtype">void</span>) apr_bucket_alloc_destroy(apr_bucket_alloc_t *list);
+00923 
+00929 APU_DECLARE_NONSTD(<span class="keywordtype">void</span> *) apr_bucket_alloc(apr_size_t size, apr_bucket_alloc_t *list);
+00930 
+00935 APU_DECLARE_NONSTD(<span class="keywordtype">void</span>) apr_bucket_free(<span class="keywordtype">void</span> *block);
+00936 
+00937 
+00938 <span class="comment">/*  *****  Bucket Functions  *****  */</span>
+<a name="l00945"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga106">00945</a> #define apr_bucket_destroy(e) do {                                      \
+00946         (e)-&gt;type-&gt;destroy((e)-&gt;data);                                  \
+00947         (e)-&gt;free(e);                                                   \
+00948     } <span class="keywordflow">while</span> (0)
+00949 
+<a name="l00961"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga107">00961</a> <span class="preprocessor">#define apr_bucket_delete(e) do {                                       \</span>
+00962 <span class="preprocessor">        APR_BUCKET_REMOVE(e);                                           \</span>
+00963 <span class="preprocessor">        apr_bucket_destroy(e);                                          \</span>
+00964 <span class="preprocessor">    } while (0)</span>
+00965 <span class="preprocessor"></span>
+<a name="l00973"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga108">00973</a> <span class="preprocessor">#define apr_bucket_read(e,str,len,block) (e)-&gt;type-&gt;read(e, str, len, block)</span>
+00974 <span class="preprocessor"></span>
+<a name="l00981"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga109">00981</a> <span class="preprocessor">#define apr_bucket_setaside(e,p) (e)-&gt;type-&gt;setaside(e,p)</span>
+00982 <span class="preprocessor"></span>
+<a name="l00988"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga110">00988</a> <span class="preprocessor">#define apr_bucket_split(e,point) (e)-&gt;type-&gt;split(e, point)</span>
+00989 <span class="preprocessor"></span>
+<a name="l00995"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga111">00995</a> <span class="preprocessor">#define apr_bucket_copy(e,c) (e)-&gt;type-&gt;copy(e, c)</span>
+00996 <span class="preprocessor"></span>
+00997 <span class="comment">/* Bucket type handling */</span>
+00998 
+01008 APU_DECLARE_NONSTD(apr_status_t) apr_bucket_setaside_noop(apr_bucket *data,
+01009                                                           apr_pool_t *pool);
+01010 
+01018 APU_DECLARE_NONSTD(apr_status_t) apr_bucket_setaside_notimpl(apr_bucket *data,
+01019                                                              apr_pool_t *pool);
+01020 
+01028 APU_DECLARE_NONSTD(apr_status_t) apr_bucket_split_notimpl(apr_bucket *data,
+01029                                                           apr_size_t point);
 01030 
-01037 <span class="comment">/* There is no apr_bucket_read_notimpl, because it is a required function</span>
-01038 <span class="comment"> */</span>
-01039 
+01038 APU_DECLARE_NONSTD(apr_status_t) apr_bucket_copy_notimpl(apr_bucket *e,
+01039                                                          apr_bucket **c);
 01040 
-01041 <span class="comment">/* All of the bucket types implemented by the core */</span>
-01046 APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_flush;
-01052 APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_eos;
-01056 APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_file;
-01061 APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_heap;
-01062 #if APR_HAS_MMAP
-01066 APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_mmap;
-01067 #endif
-01073 APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_pool;
-01077 APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_pipe;
-01083 APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_immortal;
-01089 APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_transient;
-01093 APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_socket;
-01094 
-01095 
-01096 <span class="comment">/*  *****  Simple buckets  *****  */</span>
-01097 
-01109 APU_DECLARE_NONSTD(apr_status_t) apr_bucket_simple_split(apr_bucket *b,
-01110                                                          apr_size_t point);
-01111 
-01122 APU_DECLARE_NONSTD(apr_status_t) apr_bucket_simple_copy(apr_bucket *a,
-01123                                                         apr_bucket **b);
-01124 
-01125 
-01126 <span class="comment">/*  *****  Shared, reference-counted buckets  *****  */</span>
-01127 
-01142 APU_DECLARE(apr_bucket *) apr_bucket_shared_make(apr_bucket *b, <span class="keywordtype">void</span> *data,
-01143                                                  apr_off_t start, 
-01144                                                  apr_size_t length);
+01050 APU_DECLARE_NONSTD(<span class="keywordtype">void</span>) apr_bucket_destroy_noop(<span class="keywordtype">void</span> *data);
+01051 
+01058 <span class="comment">/* There is no apr_bucket_read_notimpl, because it is a required function</span>
+01059 <span class="comment"> */</span>
+01060 
+01061 
+01062 <span class="comment">/* All of the bucket types implemented by the core */</span>
+<a name="l01067"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga11">01067</a> APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_flush;
+<a name="l01073"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga12">01073</a> APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_eos;
+<a name="l01077"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga13">01077</a> APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_file;
+<a name="l01082"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga14">01082</a> APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_heap;
+01083 #if APR_HAS_MMAP
+<a name="l01087"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga15">01087</a> APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_mmap;
+01088 #endif
+<a name="l01094"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga16">01094</a> APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_pool;
+<a name="l01098"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga17">01098</a> APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_pipe;
+<a name="l01104"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga18">01104</a> APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_immortal;
+<a name="l01110"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga19">01110</a> APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_transient;
+<a name="l01114"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga20">01114</a> APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_socket;
+01115 
+01116 
+01117 <span class="comment">/*  *****  Simple buckets  *****  */</span>
+01118 
+01130 APU_DECLARE_NONSTD(apr_status_t) apr_bucket_simple_split(apr_bucket *b,
+01131                                                          apr_size_t point);
+01132 
+01143 APU_DECLARE_NONSTD(apr_status_t) apr_bucket_simple_copy(apr_bucket *a,
+01144                                                         apr_bucket **b);
 01145 
-01154 APU_DECLARE(<span class="keywordtype">int</span>) apr_bucket_shared_destroy(<span class="keywordtype">void</span> *data);
-01155 
-01167 APU_DECLARE_NONSTD(apr_status_t) apr_bucket_shared_split(apr_bucket *b,
-01168                                                          apr_size_t point);
-01169 
-01179 APU_DECLARE_NONSTD(apr_status_t) apr_bucket_shared_copy(apr_bucket *a,
-01180                                                         apr_bucket **b);
-01181 
-01182 
-01183 <span class="comment">/*  *****  Functions to Create Buckets of varying types  *****  */</span>
-01184 <span class="comment">/*</span>
-01185 <span class="comment"> * Each bucket type foo has two initialization functions:</span>
-01186 <span class="comment"> * apr_bucket_foo_make which sets up some already-allocated memory as a</span>
-01187 <span class="comment"> * bucket of type foo; and apr_bucket_foo_create which allocates memory</span>
-01188 <span class="comment"> * for the bucket, calls apr_bucket_make_foo, and initializes the</span>
-01189 <span class="comment"> * bucket's list pointers. The apr_bucket_foo_make functions are used</span>
-01190 <span class="comment"> * inside the bucket code to change the type of buckets in place;</span>
-01191 <span class="comment"> * other code should call apr_bucket_foo_create. All the initialization</span>
-01192 <span class="comment"> * functions change nothing if they fail.</span>
-01193 <span class="comment"> */</span>
-01194 
-01201 APU_DECLARE(apr_bucket *) apr_bucket_eos_create(apr_bucket_alloc_t *list);
+01146 
+01147 <span class="comment">/*  *****  Shared, reference-counted buckets  *****  */</span>
+01148 
+01163 APU_DECLARE(apr_bucket *) apr_bucket_shared_make(apr_bucket *b, <span class="keywordtype">void</span> *data,
+01164                                                  apr_off_t start, 
+01165                                                  apr_size_t length);
+01166 
+01175 APU_DECLARE(<span class="keywordtype">int</span>) apr_bucket_shared_destroy(<span class="keywordtype">void</span> *data);
+01176 
+01188 APU_DECLARE_NONSTD(apr_status_t) apr_bucket_shared_split(apr_bucket *b,
+01189                                                          apr_size_t point);
+01190 
+01200 APU_DECLARE_NONSTD(apr_status_t) apr_bucket_shared_copy(apr_bucket *a,
+01201                                                         apr_bucket **b);
 01202 
-01210 APU_DECLARE(apr_bucket *) apr_bucket_eos_make(apr_bucket *b);
-01211 
-01219 APU_DECLARE(apr_bucket *) apr_bucket_flush_create(apr_bucket_alloc_t *list);
-01220 
-01228 APU_DECLARE(apr_bucket *) apr_bucket_flush_make(apr_bucket *b);
-01229 
-01237 APU_DECLARE(apr_bucket *) apr_bucket_immortal_create(const <span class="keywordtype">char</span> *buf, 
-01238                                                      apr_size_t nbyte,
-01239                                                      apr_bucket_alloc_t *list);
-01240 
-01248 APU_DECLARE(apr_bucket *) apr_bucket_immortal_make(apr_bucket *b, 
-01249                                                    const <span class="keywordtype">char</span> *buf, 
-01250                                                    apr_size_t nbyte);
-01251 
-01259 APU_DECLARE(apr_bucket *) apr_bucket_transient_create(const <span class="keywordtype">char</span> *buf, 
-01260                                                       apr_size_t nbyte,
-01261                                                       apr_bucket_alloc_t *list);
-01262 
-01270 APU_DECLARE(apr_bucket *) apr_bucket_transient_make(apr_bucket *b, 
-01271                                                     const <span class="keywordtype">char</span> *buf,
-01272                                                     apr_size_t nbyte);
-01273 
-01288 APU_DECLARE(apr_bucket *) apr_bucket_heap_create(const <span class="keywordtype">char</span> *buf, 
-01289                                                  apr_size_t nbyte,
-01290                                                  <span class="keywordtype">void</span> (*free_func)(<span class="keywordtype">void</span> *data),
-01291                                                  apr_bucket_alloc_t *list);
-01301 APU_DECLARE(apr_bucket *) apr_bucket_heap_make(apr_bucket *b, const <span class="keywordtype">char</span> *buf,
-01302                                                apr_size_t nbyte,
-01303                                                <span class="keywordtype">void</span> (*free_func)(<span class="keywordtype">void</span> *data));
-01304 
-01314 APU_DECLARE(apr_bucket *) apr_bucket_pool_create(const <span class="keywordtype">char</span> *buf, 
-01315                                                  apr_size_t length,
-01316                                                  apr_pool_t *pool,
-01317                                                  apr_bucket_alloc_t *list);
-01318 
-01327 APU_DECLARE(apr_bucket *) apr_bucket_pool_make(apr_bucket *b, const <span class="keywordtype">char</span> *buf,
-01328                                                apr_size_t length, 
-01329                                                apr_pool_t *pool);
-01330 
-01331 #if APR_HAS_MMAP
-01341 APU_DECLARE(apr_bucket *) apr_bucket_mmap_create(apr_mmap_t *mm, 
-01342                                                  apr_off_t start,
-01343                                                  apr_size_t length,
-01344                                                  apr_bucket_alloc_t *list);
-01345 
-01355 APU_DECLARE(apr_bucket *) apr_bucket_mmap_make(apr_bucket *b, apr_mmap_t *mm,
-01356                                                apr_off_t start, 
-01357                                                apr_size_t length);
-01358 #endif
-01359 
-01366 APU_DECLARE(apr_bucket *) apr_bucket_socket_create(apr_socket_t *thissock,
-01367                                                    apr_bucket_alloc_t *list);
-01374 APU_DECLARE(apr_bucket *) apr_bucket_socket_make(apr_bucket *b, 
-01375                                                  apr_socket_t *thissock);
-01376 
-01383 APU_DECLARE(apr_bucket *) apr_bucket_pipe_create(apr_file_t *thispipe,
-01384                                                  apr_bucket_alloc_t *list);
-01385 
-01392 APU_DECLARE(apr_bucket *) apr_bucket_pipe_make(apr_bucket *b, 
-01393                                                apr_file_t *thispipe);
-01394 
-01405 APU_DECLARE(apr_bucket *) apr_bucket_file_create(apr_file_t *fd,
-01406                                                  apr_off_t offset,
-01407                                                  apr_size_t len, 
-01408                                                  apr_pool_t *p,
-01409                                                  apr_bucket_alloc_t *list);
-01410 
-01421 APU_DECLARE(apr_bucket *) apr_bucket_file_make(apr_bucket *b, apr_file_t *fd,
-01422                                                apr_off_t offset,
-01423                                                apr_size_t len, apr_pool_t *p);
-01424 
-01431 APU_DECLARE(apr_status_t) apr_bucket_file_enable_mmap(apr_bucket *b,
-01432                                                       <span class="keywordtype">int</span> enabled);
-01433 
-01435 #ifdef __cplusplus
-01436 }
-01437 #endif
-01438 
-01439 #endif <span class="comment">/* !APR_BUCKETS_H */</span>
-</div></pre><hr size="1"><address style="align: right;"><small>Generated on Wed Sep 1 21:35:50 2004 for Apache Portable Runtime Utility Library by
+01203 
+01204 <span class="comment">/*  *****  Functions to Create Buckets of varying types  *****  */</span>
+01205 <span class="comment">/*</span>
+01206 <span class="comment"> * Each bucket type foo has two initialization functions:</span>
+01207 <span class="comment"> * apr_bucket_foo_make which sets up some already-allocated memory as a</span>
+01208 <span class="comment"> * bucket of type foo; and apr_bucket_foo_create which allocates memory</span>
+01209 <span class="comment"> * for the bucket, calls apr_bucket_make_foo, and initializes the</span>
+01210 <span class="comment"> * bucket's list pointers. The apr_bucket_foo_make functions are used</span>
+01211 <span class="comment"> * inside the bucket code to change the type of buckets in place;</span>
+01212 <span class="comment"> * other code should call apr_bucket_foo_create. All the initialization</span>
+01213 <span class="comment"> * functions change nothing if they fail.</span>
+01214 <span class="comment"> */</span>
+01215 
+01222 APU_DECLARE(apr_bucket *) apr_bucket_eos_create(apr_bucket_alloc_t *list);
+01223 
+01231 APU_DECLARE(apr_bucket *) apr_bucket_eos_make(apr_bucket *b);
+01232 
+01240 APU_DECLARE(apr_bucket *) apr_bucket_flush_create(apr_bucket_alloc_t *list);
+01241 
+01249 APU_DECLARE(apr_bucket *) apr_bucket_flush_make(apr_bucket *b);
+01250 
+01258 APU_DECLARE(apr_bucket *) apr_bucket_immortal_create(const <span class="keywordtype">char</span> *buf, 
+01259                                                      apr_size_t nbyte,
+01260                                                      apr_bucket_alloc_t *list);
+01261 
+01269 APU_DECLARE(apr_bucket *) apr_bucket_immortal_make(apr_bucket *b, 

[... 75 lines stripped ...]