Sophie

Sophie

distrib > Mandriva > current > i586 > media > main-updates > by-pkgid > 7c859c6f61469ed11e2ab179848b0178 > files > 67

libapr-util-devel-1.4.1-0.1mdv2010.2.i586.rpm

<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Apache Portable Runtime Utility Library: include/apr_buckets.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Generated by Doxygen 1.6.3 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <img id="MSearchSelect" src="search/search.png"
             onmouseover="return searchBox.OnSearchSelectShow()"
             onmouseout="return searchBox.OnSearchSelectHide()"
             alt=""/>
        <input type="text" id="MSearchField" value="Search" accesskey="S"
             onfocus="searchBox.OnSearchFieldFocus(true)" 
             onblur="searchBox.OnSearchFieldFocus(false)" 
             onkeyup="searchBox.OnSearchFieldChange(event)"/>
        <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
        </div>
      </li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
<h1>include/apr_buckets.h</h1><a href="apr__buckets_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00002"></a>00002 <span class="comment"> * contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00003"></a>00003 <span class="comment"> * this work for additional information regarding copyright ownership.</span>
<a name="l00004"></a>00004 <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00005"></a>00005 <span class="comment"> * (the &quot;License&quot;); you may not use this file except in compliance with</span>
<a name="l00006"></a>00006 <span class="comment"> * the License.  You may obtain a copy of the License at</span>
<a name="l00007"></a>00007 <span class="comment"> *</span>
<a name="l00008"></a>00008 <span class="comment"> *     http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00011"></a>00011 <span class="comment"> * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span>
<a name="l00012"></a>00012 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00013"></a>00013 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00014"></a>00014 <span class="comment"> * limitations under the License.</span>
<a name="l00015"></a>00015 <span class="comment"> */</span>
<a name="l00021"></a>00021 <span class="preprocessor">#ifndef APR_BUCKETS_H</span>
<a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor">#define APR_BUCKETS_H</span>
<a name="l00023"></a>00023 <span class="preprocessor"></span>
<a name="l00024"></a>00024 <span class="preprocessor">#if defined(APR_BUCKET_DEBUG) &amp;&amp; !defined(APR_RING_DEBUG)</span>
<a name="l00025"></a>00025 <span class="preprocessor"></span><span class="preprocessor">#define APR_RING_DEBUG</span>
<a name="l00026"></a>00026 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00027"></a>00027 <span class="preprocessor"></span>
<a name="l00028"></a>00028 <span class="preprocessor">#include &quot;apu.h&quot;</span>
<a name="l00029"></a>00029 <span class="preprocessor">#include &quot;apr_network_io.h&quot;</span>
<a name="l00030"></a>00030 <span class="preprocessor">#include &quot;apr_file_io.h&quot;</span>
<a name="l00031"></a>00031 <span class="preprocessor">#include &quot;apr_general.h&quot;</span>
<a name="l00032"></a>00032 <span class="preprocessor">#include &quot;apr_mmap.h&quot;</span>
<a name="l00033"></a>00033 <span class="preprocessor">#include &quot;apr_errno.h&quot;</span>
<a name="l00034"></a>00034 <span class="preprocessor">#include &quot;apr_ring.h&quot;</span>
<a name="l00035"></a>00035 <span class="preprocessor">#include &quot;apr.h&quot;</span>
<a name="l00036"></a>00036 <span class="preprocessor">#if APR_HAVE_SYS_UIO_H</span>
<a name="l00037"></a>00037 <span class="preprocessor"></span><span class="preprocessor">#include &lt;sys/uio.h&gt;</span>    <span class="comment">/* for struct iovec */</span>
<a name="l00038"></a>00038 <span class="preprocessor">#endif</span>
<a name="l00039"></a>00039 <span class="preprocessor"></span><span class="preprocessor">#if APR_HAVE_STDARG_H</span>
<a name="l00040"></a>00040 <span class="preprocessor"></span><span class="preprocessor">#include &lt;stdarg.h&gt;</span>
<a name="l00041"></a>00041 <span class="preprocessor">#endif</span>
<a name="l00042"></a>00042 <span class="preprocessor"></span>
<a name="l00043"></a>00043 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00044"></a>00044 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {
<a name="l00045"></a>00045 <span class="preprocessor">#endif</span>
<a name="l00046"></a>00046 <span class="preprocessor"></span>
<a name="l00054"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga82bf404af30875135c65e2c13ad035e5">00054</a> <span class="preprocessor">#define APR_BUCKET_BUFF_SIZE 8000</span>
<a name="l00055"></a>00055 <span class="preprocessor"></span>
<a name="l00057"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga756973fb6392bd1026c3d96b4519776d">00057</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
<a name="l00058"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#gga756973fb6392bd1026c3d96b4519776da2d983f5b7fd996434e0dded171c261d8">00058</a>     <a class="code" href="group___a_p_r___util___bucket___brigades.html#gga756973fb6392bd1026c3d96b4519776da2d983f5b7fd996434e0dded171c261d8">APR_BLOCK_READ</a>,   
<a name="l00059"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#gga756973fb6392bd1026c3d96b4519776da42b97663ca71fbbf2e2af7c8192e5dd8">00059</a>     <a class="code" href="group___a_p_r___util___bucket___brigades.html#gga756973fb6392bd1026c3d96b4519776da42b97663ca71fbbf2e2af7c8192e5dd8">APR_NONBLOCK_READ</a> 
<a name="l00060"></a>00060 } <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga756973fb6392bd1026c3d96b4519776d">apr_read_type_e</a>;
<a name="l00061"></a>00061 
<a name="l00114"></a>00114 <span class="comment">/*</span>
<a name="l00115"></a>00115 <span class="comment"> * Forward declaration of the main types.</span>
<a name="l00116"></a>00116 <span class="comment"> */</span>
<a name="l00117"></a>00117 
<a name="l00119"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga9f50254e85c7aad79ca289a0ba069025">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="structapr__bucket__brigade.html">apr_bucket_brigade</a>;
<a name="l00121"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#gaa17a456120961b1c5af0525f4900a457">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="structapr__bucket.html">apr_bucket</a>;
<a name="l00123"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga9a30babfeb6e290db124d8f9b69e49e4">00123</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga9a30babfeb6e290db124d8f9b69e49e4">apr_bucket_alloc_t</a> <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga9a30babfeb6e290db124d8f9b69e49e4">apr_bucket_alloc_t</a>;
<a name="l00124"></a>00124 
<a name="l00126"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga4a152aaf7d851c81af73b7e84dc1a8a2">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="structapr__bucket__type__t.html">apr_bucket_type_t</a>;
<a name="l00127"></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="structapr__bucket__type__t.html">apr_bucket_type_t</a> {
<a name="l00135"></a><a class="code" href="structapr__bucket__type__t.html#ac6d779be45de214c6abd2cc205c48901">00135</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structapr__bucket__type__t.html#ac6d779be45de214c6abd2cc205c48901">name</a>;
<a name="l00140"></a><a class="code" href="structapr__bucket__type__t.html#ad4bd2ffb03cb2f5f3b3941ce20468038">00140</a>     <span class="keywordtype">int</span> <a class="code" href="structapr__bucket__type__t.html#ad4bd2ffb03cb2f5f3b3941ce20468038">num_func</a>;
<a name="l00151"></a>00151     <span class="keyword">enum</span> {
<a name="l00153"></a><a class="code" href="structapr__bucket__type__t.html#a117f85e4a58c5e7d7e373705ad138f85a53d3ef9d6a275fe2b72a91acea7017d5">00153</a>         <a class="code" href="structapr__bucket__type__t.html#a117f85e4a58c5e7d7e373705ad138f85a53d3ef9d6a275fe2b72a91acea7017d5">APR_BUCKET_DATA</a> = 0,
<a name="l00155"></a><a class="code" href="structapr__bucket__type__t.html#a117f85e4a58c5e7d7e373705ad138f85a9bf38b4eb3ea41c4af230432ac7a5fb1">00155</a>         <a class="code" href="structapr__bucket__type__t.html#a117f85e4a58c5e7d7e373705ad138f85a9bf38b4eb3ea41c4af230432ac7a5fb1">APR_BUCKET_METADATA</a> = 1
<a name="l00156"></a>00156     } <a class="code" href="structapr__bucket__type__t.html#a34cef542a8eee5bb734ba8dcd8329711">is_metadata</a>;
<a name="l00164"></a><a class="code" href="structapr__bucket__type__t.html#aa5a8ae7611ba3be480e3fd12ff3ac352">00164</a>     void (*<a class="code" href="structapr__bucket__type__t.html#aa5a8ae7611ba3be480e3fd12ff3ac352">destroy</a>)(<span class="keywordtype">void</span> *data);
<a name="l00165"></a>00165 
<a name="l00176"></a><a class="code" href="structapr__bucket__type__t.html#a8e9f3f5b2a5513691f3cea130a1aa54b">00176</a>     apr_status_t (*<a class="code" href="structapr__bucket__type__t.html#a8e9f3f5b2a5513691f3cea130a1aa54b">read</a>)(<a class="code" href="structapr__bucket.html">apr_bucket</a> *b, <span class="keyword">const</span> <span class="keywordtype">char</span> **str, apr_size_t *len, 
<a name="l00177"></a>00177                          <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga756973fb6392bd1026c3d96b4519776d">apr_read_type_e</a> block);
<a name="l00178"></a>00178     
<a name="l00192"></a><a class="code" href="structapr__bucket__type__t.html#a4e2015fd6e927ed55157a9b003ed5fdb">00192</a>     apr_status_t (*<a class="code" href="structapr__bucket__type__t.html#a4e2015fd6e927ed55157a9b003ed5fdb">setaside</a>)(<a class="code" href="structapr__bucket.html">apr_bucket</a> *e, apr_pool_t *pool);
<a name="l00193"></a>00193 
<a name="l00203"></a><a class="code" href="structapr__bucket__type__t.html#af30959bc15fc60e21224d5e3c8c0a814">00203</a>     apr_status_t (*<a class="code" href="structapr__bucket__type__t.html#af30959bc15fc60e21224d5e3c8c0a814">split</a>)(<a class="code" href="structapr__bucket.html">apr_bucket</a> *e, apr_size_t point);
<a name="l00204"></a>00204 
<a name="l00211"></a><a class="code" href="structapr__bucket__type__t.html#a300d6b15d55a3a1f13eeec7379100c38">00211</a>     apr_status_t (*<a class="code" href="structapr__bucket__type__t.html#a300d6b15d55a3a1f13eeec7379100c38">copy</a>)(<a class="code" href="structapr__bucket.html">apr_bucket</a> *e, <a class="code" href="structapr__bucket.html">apr_bucket</a> **c);
<a name="l00212"></a>00212 
<a name="l00213"></a>00213 };
<a name="l00214"></a>00214 
<a name="l00224"></a><a class="code" href="structapr__bucket.html">00224</a> <span class="keyword">struct </span><a class="code" href="structapr__bucket.html">apr_bucket</a> {
<a name="l00226"></a>00226     <a class="code" href="structapr__bucket.html#ab1acff965e57e067dfde80321d04dea7">APR_RING_ENTRY</a>(<a class="code" href="structapr__bucket.html">apr_bucket</a>) link;
<a name="l00228"></a><a class="code" href="structapr__bucket.html#ac27fa5ce798e688ad243ebe1615937fc">00228</a>     <span class="keyword">const</span> <a class="code" href="structapr__bucket__type__t.html">apr_bucket_type_t</a> *<a class="code" href="structapr__bucket.html#ac27fa5ce798e688ad243ebe1615937fc">type</a>;
<a name="l00234"></a><a class="code" href="structapr__bucket.html#a0898dfc78d9275187189b9a745e619bf">00234</a>     apr_size_t <a class="code" href="structapr__bucket.html#a0898dfc78d9275187189b9a745e619bf">length</a>;
<a name="l00242"></a><a class="code" href="structapr__bucket.html#a4a8791b606b3ad613b8672ec94145628">00242</a>     apr_off_t <a class="code" href="structapr__bucket.html#a4a8791b606b3ad613b8672ec94145628">start</a>;
<a name="l00244"></a><a class="code" href="structapr__bucket.html#a7fc4604750889b3f762bda1a786d276a">00244</a>     <span class="keywordtype">void</span> *<a class="code" href="structapr__bucket.html#a7fc4604750889b3f762bda1a786d276a">data</a>; 
<a name="l00252"></a><a class="code" href="structapr__bucket.html#ac50b1c1de2b171938c33bf3ac478f359">00252</a>     void (*<a class="code" href="structapr__bucket.html#ac50b1c1de2b171938c33bf3ac478f359">free</a>)(<span class="keywordtype">void</span> *e);
<a name="l00254"></a><a class="code" href="structapr__bucket.html#a5a500b80105834621514d6c0814d0966">00254</a>     <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga9a30babfeb6e290db124d8f9b69e49e4">apr_bucket_alloc_t</a> *<a class="code" href="structapr__bucket.html#a5a500b80105834621514d6c0814d0966">list</a>;
<a name="l00255"></a>00255 };
<a name="l00256"></a>00256 
<a name="l00258"></a><a class="code" href="structapr__bucket__brigade.html">00258</a> <span class="keyword">struct </span><a class="code" href="structapr__bucket__brigade.html">apr_bucket_brigade</a> {
<a name="l00264"></a><a class="code" href="structapr__bucket__brigade.html#a8e03b4dd531903709ae3ae8ebe9e46ee">00264</a>     apr_pool_t *<a class="code" href="structapr__bucket__brigade.html#a8e03b4dd531903709ae3ae8ebe9e46ee">p</a>;
<a name="l00266"></a>00266     <span class="comment">/*</span>
<a name="l00267"></a>00267 <span class="comment">     * The apr_bucket_list structure doesn&#39;t actually need a name tag</span>
<a name="l00268"></a>00268 <span class="comment">     * because it has no existence independent of struct apr_bucket_brigade;</span>
<a name="l00269"></a>00269 <span class="comment">     * the ring macros are designed so that you can leave the name tag</span>
<a name="l00270"></a>00270 <span class="comment">     * argument empty in this situation but apparently the Windows compiler</span>
<a name="l00271"></a>00271 <span class="comment">     * doesn&#39;t like that.</span>
<a name="l00272"></a>00272 <span class="comment">     */</span>
<a name="l00273"></a>00273     <a class="code" href="structapr__bucket__brigade.html#a76a313afc83dd161916f3f9b83eea734">APR_RING_HEAD</a>(apr_bucket_list, <a class="code" href="structapr__bucket.html">apr_bucket</a>) list;
<a name="l00275"></a><a class="code" href="structapr__bucket__brigade.html#a9f58f90a088f02ebb6f935f004092aaa">00275</a>     <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga9a30babfeb6e290db124d8f9b69e49e4">apr_bucket_alloc_t</a> *<a class="code" href="structapr__bucket__brigade.html#a9f58f90a088f02ebb6f935f004092aaa">bucket_alloc</a>;
<a name="l00276"></a>00276 };
<a name="l00277"></a>00277 
<a name="l00278"></a>00278 
<a name="l00282"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#gacdf6dc9d4c81c64834e5e509281f7f16">00282</a> typedef apr_status_t (*<a class="code" href="group___a_p_r___util___bucket___brigades.html#gacdf6dc9d4c81c64834e5e509281f7f16">apr_brigade_flush</a>)(<a class="code" href="structapr__bucket__brigade.html">apr_bucket_brigade</a> *bb, <span class="keywordtype">void</span> *ctx);
<a name="l00283"></a>00283 
<a name="l00284"></a>00284 <span class="comment">/*</span>
<a name="l00285"></a>00285 <span class="comment"> * define APR_BUCKET_DEBUG if you want your brigades to be checked for</span>
<a name="l00286"></a>00286 <span class="comment"> * validity at every possible instant.  this will slow your code down</span>
<a name="l00287"></a>00287 <span class="comment"> * substantially but is a very useful debugging tool.</span>
<a name="l00288"></a>00288 <span class="comment"> */</span>
<a name="l00289"></a>00289 <span class="preprocessor">#ifdef APR_BUCKET_DEBUG</span>
<a name="l00290"></a>00290 <span class="preprocessor"></span>
<a name="l00291"></a>00291 <span class="preprocessor">#define APR_BRIGADE_CHECK_CONSISTENCY(b)                                \</span>
<a name="l00292"></a>00292 <span class="preprocessor">        APR_RING_CHECK_CONSISTENCY(&amp;(b)-&gt;list, apr_bucket, link)</span>
<a name="l00293"></a>00293 <span class="preprocessor"></span>
<a name="l00294"></a>00294 <span class="preprocessor">#define APR_BUCKET_CHECK_CONSISTENCY(e)                                 \</span>
<a name="l00295"></a>00295 <span class="preprocessor">        APR_RING_CHECK_ELEM_CONSISTENCY((e), apr_bucket, link)</span>
<a name="l00296"></a>00296 <span class="preprocessor"></span>
<a name="l00297"></a>00297 <span class="preprocessor">#else</span>
<a name="l00298"></a>00298 <span class="preprocessor"></span>
<a name="l00304"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#gae1dfe8bf117d10e7dc5b8e0c08f0ebb2">00304</a> <span class="preprocessor">#define APR_BRIGADE_CHECK_CONSISTENCY(b)</span>
<a name="l00305"></a>00305 <span class="preprocessor"></span>
<a name="l00311"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#gaedaeb3fbe71aac408377471b8a54dc08">00311</a> <span class="preprocessor">#define APR_BUCKET_CHECK_CONSISTENCY(e)</span>
<a name="l00312"></a>00312 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00313"></a>00313 <span class="preprocessor"></span>
<a name="l00314"></a>00314 
<a name="l00331"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga858da66dccab1e063415678bb115788a">00331</a> <span class="preprocessor">#define APR_BRIGADE_SENTINEL(b) APR_RING_SENTINEL(&amp;(b)-&gt;list, apr_bucket, link)</span>
<a name="l00332"></a>00332 <span class="preprocessor"></span>
<a name="l00338"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga836f61da6cce15074eff257ce4b6fc0f">00338</a> <span class="preprocessor">#define APR_BRIGADE_EMPTY(b)    APR_RING_EMPTY(&amp;(b)-&gt;list, apr_bucket, link)</span>
<a name="l00339"></a>00339 <span class="preprocessor"></span>
<a name="l00345"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#gab5826a11eb6ba90786a94282f806c230">00345</a> <span class="preprocessor">#define APR_BRIGADE_FIRST(b)    APR_RING_FIRST(&amp;(b)-&gt;list)</span>
<a name="l00346"></a>00346 <span class="preprocessor"></span>
<a name="l00351"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga40e0ef2a904aa519ca9d63288dee0b4d">00351</a> <span class="preprocessor">#define APR_BRIGADE_LAST(b)     APR_RING_LAST(&amp;(b)-&gt;list)</span>
<a name="l00352"></a>00352 <span class="preprocessor"></span>
<a name="l00358"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga6dc39d8757e18941a6fb069b0c18fbd3">00358</a> <span class="preprocessor">#define APR_BRIGADE_INSERT_HEAD(b, e) do {                              \</span>
<a name="l00359"></a>00359 <span class="preprocessor">        apr_bucket *ap__b = (e);                                        \</span>
<a name="l00360"></a>00360 <span class="preprocessor">        APR_RING_INSERT_HEAD(&amp;(b)-&gt;list, ap__b, apr_bucket, link);      \</span>
<a name="l00361"></a>00361 <span class="preprocessor">        APR_BRIGADE_CHECK_CONSISTENCY((b));                             \</span>
<a name="l00362"></a>00362 <span class="preprocessor">    } while (0)</span>
<a name="l00363"></a>00363 <span class="preprocessor"></span>
<a name="l00369"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga5447595f8374296c5ffe208db39b2f5d">00369</a> <span class="preprocessor">#define APR_BRIGADE_INSERT_TAIL(b, e) do {                              \</span>
<a name="l00370"></a>00370 <span class="preprocessor">        apr_bucket *ap__b = (e);                                        \</span>
<a name="l00371"></a>00371 <span class="preprocessor">        APR_RING_INSERT_TAIL(&amp;(b)-&gt;list, ap__b, apr_bucket, link);      \</span>
<a name="l00372"></a>00372 <span class="preprocessor">        APR_BRIGADE_CHECK_CONSISTENCY((b));                             \</span>
<a name="l00373"></a>00373 <span class="preprocessor">    } while (0)</span>
<a name="l00374"></a>00374 <span class="preprocessor"></span>
<a name="l00380"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga7cecbc89be912ce9ab24c889eb8f955b">00380</a> <span class="preprocessor">#define APR_BRIGADE_CONCAT(a, b) do {                                   \</span>
<a name="l00381"></a>00381 <span class="preprocessor">        APR_RING_CONCAT(&amp;(a)-&gt;list, &amp;(b)-&gt;list, apr_bucket, link);      \</span>
<a name="l00382"></a>00382 <span class="preprocessor">        APR_BRIGADE_CHECK_CONSISTENCY((a));                             \</span>
<a name="l00383"></a>00383 <span class="preprocessor">    } while (0)</span>
<a name="l00384"></a>00384 <span class="preprocessor"></span>
<a name="l00390"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga52ba212f76507a79ccae213875150ad1">00390</a> <span class="preprocessor">#define APR_BRIGADE_PREPEND(a, b) do {                                  \</span>
<a name="l00391"></a>00391 <span class="preprocessor">        APR_RING_PREPEND(&amp;(a)-&gt;list, &amp;(b)-&gt;list, apr_bucket, link);     \</span>
<a name="l00392"></a>00392 <span class="preprocessor">        APR_BRIGADE_CHECK_CONSISTENCY((a));                             \</span>
<a name="l00393"></a>00393 <span class="preprocessor">    } while (0)</span>
<a name="l00394"></a>00394 <span class="preprocessor"></span>
<a name="l00400"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#gae012adeccda754eabc42b7855bec081e">00400</a> <span class="preprocessor">#define APR_BUCKET_INSERT_BEFORE(a, b) do {                             \</span>
<a name="l00401"></a>00401 <span class="preprocessor">        apr_bucket *ap__a = (a), *ap__b = (b);                          \</span>
<a name="l00402"></a>00402 <span class="preprocessor">        APR_RING_INSERT_BEFORE(ap__a, ap__b, link);                     \</span>
<a name="l00403"></a>00403 <span class="preprocessor">        APR_BUCKET_CHECK_CONSISTENCY(ap__a);                            \</span>
<a name="l00404"></a>00404 <span class="preprocessor">    } while (0)</span>
<a name="l00405"></a>00405 <span class="preprocessor"></span>
<a name="l00411"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga1f8114b7316d1fef1deb95abc8f02341">00411</a> <span class="preprocessor">#define APR_BUCKET_INSERT_AFTER(a, b) do {                              \</span>
<a name="l00412"></a>00412 <span class="preprocessor">        apr_bucket *ap__a = (a), *ap__b = (b);                          \</span>
<a name="l00413"></a>00413 <span class="preprocessor">        APR_RING_INSERT_AFTER(ap__a, ap__b, link);                      \</span>
<a name="l00414"></a>00414 <span class="preprocessor">        APR_BUCKET_CHECK_CONSISTENCY(ap__a);                            \</span>
<a name="l00415"></a>00415 <span class="preprocessor">    } while (0)</span>
<a name="l00416"></a>00416 <span class="preprocessor"></span>
<a name="l00422"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga7171f690b203d548a5b6ae0b079068d8">00422</a> <span class="preprocessor">#define APR_BUCKET_NEXT(e)      APR_RING_NEXT((e), link)</span>
<a name="l00423"></a>00423 <span class="preprocessor"></span>
<a name="l00428"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#gaf229fecd4174efd4d6a9774e3048ae28">00428</a> <span class="preprocessor">#define APR_BUCKET_PREV(e)      APR_RING_PREV((e), link)</span>
<a name="l00429"></a>00429 <span class="preprocessor"></span>
<a name="l00434"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga2c46a1b717a87b68bd98b425e0c64977">00434</a> <span class="preprocessor">#define APR_BUCKET_REMOVE(e)    APR_RING_REMOVE((e), link)</span>
<a name="l00435"></a>00435 <span class="preprocessor"></span>
<a name="l00440"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga00c2e104125f124c3a52627863432de9">00440</a> <span class="preprocessor">#define APR_BUCKET_INIT(e)      APR_RING_ELEM_INIT((e), link)</span>
<a name="l00441"></a>00441 <span class="preprocessor"></span>
<a name="l00448"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga506cb29cc1ec1abeb487e01b122bd4d9">00448</a> <span class="preprocessor">#define APR_BUCKET_IS_METADATA(e)    ((e)-&gt;type-&gt;is_metadata)</span>
<a name="l00449"></a>00449 <span class="preprocessor"></span>
<a name="l00455"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga24105da0bb755a775c4b2a519d7c25f9">00455</a> <span class="preprocessor">#define APR_BUCKET_IS_FLUSH(e)       ((e)-&gt;type == &amp;apr_bucket_type_flush)</span>
<a name="l00456"></a>00456 <span class="preprocessor"></span>
<a name="l00461"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga89b225e1c08473766eec719b985ca0d6">00461</a> <span class="preprocessor">#define APR_BUCKET_IS_EOS(e)         ((e)-&gt;type == &amp;apr_bucket_type_eos)</span>
<a name="l00462"></a>00462 <span class="preprocessor"></span>
<a name="l00467"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga1d54037bb6953c73d5c61f64c311d470">00467</a> <span class="preprocessor">#define APR_BUCKET_IS_FILE(e)        ((e)-&gt;type == &amp;apr_bucket_type_file)</span>
<a name="l00468"></a>00468 <span class="preprocessor"></span>
<a name="l00473"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga03e62d86c994d1d1cc9be3eb8b8f6ac6">00473</a> <span class="preprocessor">#define APR_BUCKET_IS_PIPE(e)        ((e)-&gt;type == &amp;apr_bucket_type_pipe)</span>
<a name="l00474"></a>00474 <span class="preprocessor"></span>
<a name="l00479"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga4b8315b498e4eb67efde1c83bdbe8b87">00479</a> <span class="preprocessor">#define APR_BUCKET_IS_SOCKET(e)      ((e)-&gt;type == &amp;apr_bucket_type_socket)</span>
<a name="l00480"></a>00480 <span class="preprocessor"></span>
<a name="l00485"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga3dee4fbd5b4e16e5188a6cfec40b6961">00485</a> <span class="preprocessor">#define APR_BUCKET_IS_HEAP(e)        ((e)-&gt;type == &amp;apr_bucket_type_heap)</span>
<a name="l00486"></a>00486 <span class="preprocessor"></span>
<a name="l00491"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga1a7e7ac5fddbab4ce189e8d3007446ff">00491</a> <span class="preprocessor">#define APR_BUCKET_IS_TRANSIENT(e)   ((e)-&gt;type == &amp;apr_bucket_type_transient)</span>
<a name="l00492"></a>00492 <span class="preprocessor"></span>
<a name="l00497"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga53f1188c168acf7dcfabfa1ac5a08655">00497</a> <span class="preprocessor">#define APR_BUCKET_IS_IMMORTAL(e)    ((e)-&gt;type == &amp;apr_bucket_type_immortal)</span>
<a name="l00498"></a>00498 <span class="preprocessor"></span><span class="preprocessor">#if APR_HAS_MMAP</span>
<a name="l00499"></a>00499 <span class="preprocessor"></span>
<a name="l00504"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga1693d49aeb0287e3b171c922c6b633d2">00504</a> <span class="preprocessor">#define APR_BUCKET_IS_MMAP(e)        ((e)-&gt;type == &amp;apr_bucket_type_mmap)</span>
<a name="l00505"></a>00505 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00506"></a>00506 <span class="preprocessor"></span>
<a name="l00511"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#gadbe80a9016da6a06ab414ba61d6625d0">00511</a> <span class="preprocessor">#define APR_BUCKET_IS_POOL(e)        ((e)-&gt;type == &amp;apr_bucket_type_pool)</span>
<a name="l00512"></a>00512 <span class="preprocessor"></span>
<a name="l00513"></a>00513 <span class="comment">/*</span>
<a name="l00514"></a>00514 <span class="comment"> * General-purpose reference counting for the various bucket types.</span>
<a name="l00515"></a>00515 <span class="comment"> *</span>
<a name="l00516"></a>00516 <span class="comment"> * Any bucket type that keeps track of the resources it uses (i.e.</span>
<a name="l00517"></a>00517 <span class="comment"> * most of them except for IMMORTAL, TRANSIENT, and EOS) needs to</span>
<a name="l00518"></a>00518 <span class="comment"> * attach a reference count to the resource so that it can be freed</span>
<a name="l00519"></a>00519 <span class="comment"> * when the last bucket that uses it goes away. Resource-sharing may</span>
<a name="l00520"></a>00520 <span class="comment"> * occur because of bucket splits or buckets that refer to globally</span>
<a name="l00521"></a>00521 <span class="comment"> * cached data. */</span>
<a name="l00522"></a>00522 
<a name="l00524"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga785fd3402961b30315975b0c87c87706">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="structapr__bucket__refcount.html">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="structapr__bucket__refcount.html">apr_bucket_refcount</a> {
<a name="l00533"></a><a class="code" href="structapr__bucket__refcount.html#a75040af03e3ad3c722bccea1048e3dae">00533</a>     <span class="keywordtype">int</span>          refcount;
<a name="l00534"></a>00534 };
<a name="l00535"></a>00535 
<a name="l00536"></a>00536 <span class="comment">/*  *****  Reference-counted bucket types  *****  */</span>
<a name="l00537"></a>00537 
<a name="l00539"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#gaede6e77d621d0f3f7d2685d489d01283">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="structapr__bucket__heap.html">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="structapr__bucket__heap.html">apr_bucket_heap</a> {
<a name="l00545"></a><a class="code" href="structapr__bucket__heap.html#ab87003dea25caef69aa3b30a1948024e">00545</a>     <a class="code" href="structapr__bucket__refcount.html">apr_bucket_refcount</a>  refcount;
<a name="l00549"></a><a class="code" href="structapr__bucket__heap.html#ac6386e2f635c6af19075123749e1fa71">00549</a>     <span class="keywordtype">char</span>    *base;
<a name="l00551"></a><a class="code" href="structapr__bucket__heap.html#ae373dada96f2e005a6aaf80e41c4cf6d">00551</a>     apr_size_t  alloc_len;
<a name="l00553"></a><a class="code" href="structapr__bucket__heap.html#aac6fce0089a10b2b139c28edf9ad6fea">00553</a>     void (*free_func)(<span class="keywordtype">void</span> *data);
<a name="l00554"></a>00554 };
<a name="l00555"></a>00555 
<a name="l00557"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga211e00d871029de148116cd24b070aed">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="structapr__bucket__pool.html">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="structapr__bucket__pool.html">apr_bucket_pool</a> {
<a name="l00573"></a><a class="code" href="structapr__bucket__pool.html#a0fe0b0dedea28fb1ed0a1a0f42338225">00573</a>     <a class="code" href="structapr__bucket__heap.html">apr_bucket_heap</a>  heap;
<a name="l00579"></a><a class="code" href="structapr__bucket__pool.html#a9ee5297361ba548a20c3aa626a37c068">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#af55591a1e7f3b097e7c271683bc80968">00586</a>     apr_pool_t *pool;
<a name="l00590"></a><a class="code" href="structapr__bucket__pool.html#a651aa0c18658342daf72ff86680bfaca">00590</a>     <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga9a30babfeb6e290db124d8f9b69e49e4">apr_bucket_alloc_t</a> *list;
<a name="l00591"></a>00591 };
<a name="l00592"></a>00592 
<a name="l00593"></a>00593 <span class="preprocessor">#if APR_HAS_MMAP</span>
<a name="l00594"></a>00594 <span class="preprocessor"></span>
<a name="l00595"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga27ede7c3a29627c7d184dc7cfbc4f767">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="structapr__bucket__mmap.html">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="structapr__bucket__mmap.html">apr_bucket_mmap</a> {
<a name="l00601"></a><a class="code" href="structapr__bucket__mmap.html#a99f201622002479f4f84ea10598a013c">00601</a>     <a class="code" href="structapr__bucket__refcount.html">apr_bucket_refcount</a>  refcount;
<a name="l00603"></a><a class="code" href="structapr__bucket__mmap.html#a66e9385752aaacb7fef7e96db62f1920">00603</a>     apr_mmap_t *mmap;
<a name="l00604"></a>00604 };
<a name="l00605"></a>00605 <span class="preprocessor">#endif</span>
<a name="l00606"></a>00606 <span class="preprocessor"></span>
<a name="l00608"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga1a786f7edac4d7a2c212f0fe74457b3d">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="structapr__bucket__file.html">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="structapr__bucket__file.html">apr_bucket_file</a> {
<a name="l00614"></a><a class="code" href="structapr__bucket__file.html#ab0c123f34b85a07b601dc9794f8eed09">00614</a>     <a class="code" href="structapr__bucket__refcount.html">apr_bucket_refcount</a>  refcount;
<a name="l00616"></a><a class="code" href="structapr__bucket__file.html#aa43154c0bc9d41ba4b0762c906de432f">00616</a>     apr_file_t *fd;
<a name="l00619"></a><a class="code" href="structapr__bucket__file.html#a61b5603482215f6c9ace7b26fa12b884">00619</a>     apr_pool_t *readpool;
<a name="l00620"></a>00620 <span class="preprocessor">#if APR_HAS_MMAP</span>
<a name="l00621"></a>00621 <span class="preprocessor"></span>
<a name="l00623"></a><a class="code" href="structapr__bucket__file.html#a7812a8d6e6f10d0095569f04d3423e83">00623</a>     <span class="keywordtype">int</span> can_mmap;
<a name="l00624"></a>00624 <span class="preprocessor">#endif </span><span class="comment">/* APR_HAS_MMAP */</span>
<a name="l00625"></a>00625 };
<a name="l00626"></a>00626 
<a name="l00628"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga3c0929c971f94de4521fb0fea6fd3209">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="unionapr__bucket__structs.html">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="unionapr__bucket__structs.html">apr_bucket_structs</a> {
<a name="l00634"></a><a class="code" href="unionapr__bucket__structs.html#a840c42a20727de2e4534ca05f1f6c990">00634</a>     <a class="code" href="structapr__bucket.html">apr_bucket</a>      b;      
<a name="l00635"></a><a class="code" href="unionapr__bucket__structs.html#a5335dc82d8250e511a9c55e5fea97141">00635</a>     <a class="code" href="structapr__bucket__heap.html">apr_bucket_heap</a> heap;   
<a name="l00636"></a><a class="code" href="unionapr__bucket__structs.html#ab926fe2af7c1780c03bf1669766db4a1">00636</a>     <a class="code" href="structapr__bucket__pool.html">apr_bucket_pool</a> pool;   
<a name="l00637"></a>00637 <span class="preprocessor">#if APR_HAS_MMAP</span>
<a name="l00638"></a><a class="code" href="unionapr__bucket__structs.html#a627c4ca697f06bbf4226c8c2acd93cbc">00638</a> <span class="preprocessor"></span>    <a class="code" href="structapr__bucket__mmap.html">apr_bucket_mmap</a> mmap;   
<a name="l00639"></a>00639 <span class="preprocessor">#endif</span>
<a name="l00640"></a><a class="code" href="unionapr__bucket__structs.html#ab339255acdf750133759a0d67b3f2e30">00640</a> <span class="preprocessor"></span>    <a class="code" href="structapr__bucket__file.html">apr_bucket_file</a> file;   
<a name="l00641"></a>00641 };
<a name="l00642"></a>00642 
<a name="l00648"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#gae3ccf4c383c9e7fea28354cc8e029626">00648</a> <span class="preprocessor">#define APR_BUCKET_ALLOC_SIZE  APR_ALIGN_DEFAULT(2*sizeof(apr_bucket_structs))</span>
<a name="l00649"></a>00649 <span class="preprocessor"></span>
<a name="l00650"></a>00650 <span class="comment">/*  *****  Bucket Brigade Functions  *****  */</span>
<a name="l00658"></a>00658 APU_DECLARE(<a class="code" href="structapr__bucket__brigade.html">apr_bucket_brigade</a> *) <a class="code" href="group___a_p_r___util___bucket___brigades.html#gaeb422371006699c68f0ed3b496cc12a2">apr_brigade_create</a>(apr_pool_t *<a class="code" href="structapr__bucket__brigade.html#a8e03b4dd531903709ae3ae8ebe9e46ee">p</a>,
<a name="l00659"></a>00659                                                      <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga9a30babfeb6e290db124d8f9b69e49e4">apr_bucket_alloc_t</a> *list);
<a name="l00660"></a>00660 
<a name="l00666"></a>00666 APU_DECLARE(apr_status_t) <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga2eba1e262dece0d4444ddd25ae7b250a">apr_brigade_destroy</a>(<a class="code" href="structapr__bucket__brigade.html">apr_bucket_brigade</a> *b);
<a name="l00667"></a>00667 
<a name="l00679"></a>00679 APU_DECLARE(apr_status_t) <a class="code" href="group___a_p_r___util___bucket___brigades.html#gafd6a8378a15e8b42a57a5923a03de7f2">apr_brigade_cleanup</a>(<span class="keywordtype">void</span> *data);
<a name="l00680"></a>00680 
<a name="l00695"></a>00695 APU_DECLARE(<a class="code" href="structapr__bucket__brigade.html">apr_bucket_brigade</a> *) <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga36448fa89ab3239fd46591fbc82624e6">apr_brigade_split_ex</a>(<a class="code" href="structapr__bucket__brigade.html">apr_bucket_brigade</a> *b,
<a name="l00696"></a>00696                                                        <a class="code" href="structapr__bucket.html">apr_bucket</a> *e,
<a name="l00697"></a>00697                                                        <a class="code" href="structapr__bucket__brigade.html">apr_bucket_brigade</a> *a);
<a name="l00698"></a>00698 
<a name="l00710"></a>00710 APU_DECLARE(<a class="code" href="structapr__bucket__brigade.html">apr_bucket_brigade</a> *) <a class="code" href="group___a_p_r___util___bucket___brigades.html#gacaf2929f951920a464e170baf2b4c345">apr_brigade_split</a>(<a class="code" href="structapr__bucket__brigade.html">apr_bucket_brigade</a> *b,
<a name="l00711"></a>00711                                                     <a class="code" href="structapr__bucket.html">apr_bucket</a> *e);
<a name="l00712"></a>00712 
<a name="l00725"></a>00725 APU_DECLARE(apr_status_t) <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga4b2f22ba70ac9f65788014c61d4f5b76">apr_brigade_partition</a>(<a class="code" href="structapr__bucket__brigade.html">apr_bucket_brigade</a> *b,
<a name="l00726"></a>00726                                                 apr_off_t point,
<a name="l00727"></a>00727                                                 <a class="code" href="structapr__bucket.html">apr_bucket</a> **after_point);
<a name="l00728"></a>00728 
<a name="l00737"></a>00737 APU_DECLARE(apr_status_t) <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga65075839e31fd85e2c80717f4e9e0461">apr_brigade_length</a>(<a class="code" href="structapr__bucket__brigade.html">apr_bucket_brigade</a> *bb,
<a name="l00738"></a>00738                                              <span class="keywordtype">int</span> read_all,
<a name="l00739"></a>00739                                              apr_off_t *length);
<a name="l00740"></a>00740 
<a name="l00748"></a>00748 APU_DECLARE(apr_status_t) <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga301aeb943e68ef4b99c1ae6a18dcf78e">apr_brigade_flatten</a>(<a class="code" href="structapr__bucket__brigade.html">apr_bucket_brigade</a> *bb,
<a name="l00749"></a>00749                                               <span class="keywordtype">char</span> *c,
<a name="l00750"></a>00750                                               apr_size_t *len);
<a name="l00751"></a>00751 
<a name="l00759"></a>00759 APU_DECLARE(apr_status_t) <a class="code" href="group___a_p_r___util___bucket___brigades.html#gaa5da970af09d1a87e020db054f2d1c94">apr_brigade_pflatten</a>(<a class="code" href="structapr__bucket__brigade.html">apr_bucket_brigade</a> *bb, 
<a name="l00760"></a>00760                                                <span class="keywordtype">char</span> **c,
<a name="l00761"></a>00761                                                apr_size_t *len,
<a name="l00762"></a>00762                                                apr_pool_t *pool);
<a name="l00763"></a>00763 
<a name="l00772"></a>00772 APU_DECLARE(apr_status_t) <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga257dece60dbdc910bc09e1fc0d7db622">apr_brigade_split_line</a>(<a class="code" href="structapr__bucket__brigade.html">apr_bucket_brigade</a> *bbOut,
<a name="l00773"></a>00773                                                  <a class="code" href="structapr__bucket__brigade.html">apr_bucket_brigade</a> *bbIn,
<a name="l00774"></a>00774                                                  <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga756973fb6392bd1026c3d96b4519776d">apr_read_type_e</a> block,
<a name="l00775"></a>00775                                                  apr_off_t maxbytes);
<a name="l00776"></a>00776 
<a name="l00786"></a>00786 APU_DECLARE(apr_status_t) <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga904bdc4a9a9c800d2d2b20b4ddefa6f7">apr_brigade_to_iovec</a>(<a class="code" href="structapr__bucket__brigade.html">apr_bucket_brigade</a> *b, 
<a name="l00787"></a>00787                                                struct iovec *vec, <span class="keywordtype">int</span> *nvec);
<a name="l00788"></a>00788 
<a name="l00797"></a>00797 APU_DECLARE(apr_status_t) <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga382871c1aec5cf9fbbcf19d67cff6b43">apr_brigade_vputstrs</a>(<a class="code" href="structapr__bucket__brigade.html">apr_bucket_brigade</a> *b,
<a name="l00798"></a>00798                                                <a class="code" href="group___a_p_r___util___bucket___brigades.html#gacdf6dc9d4c81c64834e5e509281f7f16">apr_brigade_flush</a> flush,
<a name="l00799"></a>00799                                                <span class="keywordtype">void</span> *ctx,
<a name="l00800"></a>00800                                                va_list va);
<a name="l00801"></a>00801 
<a name="l00825"></a>00825 APU_DECLARE(apr_status_t) <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga7242dae50995fc1a9174476ca3053d99">apr_brigade_write</a>(<a class="code" href="structapr__bucket__brigade.html">apr_bucket_brigade</a> *b,
<a name="l00826"></a>00826                                             <a class="code" href="group___a_p_r___util___bucket___brigades.html#gacdf6dc9d4c81c64834e5e509281f7f16">apr_brigade_flush</a> flush, <span class="keywordtype">void</span> *ctx,
<a name="l00827"></a>00827                                             const <span class="keywordtype">char</span> *str, apr_size_t nbyte);
<a name="l00828"></a>00828 
<a name="l00838"></a>00838 APU_DECLARE(apr_status_t) <a class="code" href="group___a_p_r___util___bucket___brigades.html#gafc116a4359b717cd3a78a19ddf169486">apr_brigade_writev</a>(<a class="code" href="structapr__bucket__brigade.html">apr_bucket_brigade</a> *b,
<a name="l00839"></a>00839                                              <a class="code" href="group___a_p_r___util___bucket___brigades.html#gacdf6dc9d4c81c64834e5e509281f7f16">apr_brigade_flush</a> flush,
<a name="l00840"></a>00840                                              <span class="keywordtype">void</span> *ctx,
<a name="l00841"></a>00841                                              const struct iovec *vec,
<a name="l00842"></a>00842                                              apr_size_t nvec);
<a name="l00843"></a>00843 
<a name="l00852"></a>00852 APU_DECLARE(apr_status_t) <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga2d1fed26db94e3006223098737a06f5a">apr_brigade_puts</a>(<a class="code" href="structapr__bucket__brigade.html">apr_bucket_brigade</a> *bb,
<a name="l00853"></a>00853                                            <a class="code" href="group___a_p_r___util___bucket___brigades.html#gacdf6dc9d4c81c64834e5e509281f7f16">apr_brigade_flush</a> flush, <span class="keywordtype">void</span> *ctx,
<a name="l00854"></a>00854                                            const <span class="keywordtype">char</span> *str);
<a name="l00855"></a>00855 
<a name="l00864"></a>00864 APU_DECLARE(apr_status_t) <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga362999cb255297fd0fd433f03236302d">apr_brigade_putc</a>(<a class="code" href="structapr__bucket__brigade.html">apr_bucket_brigade</a> *b,
<a name="l00865"></a>00865                                            <a class="code" href="group___a_p_r___util___bucket___brigades.html#gacdf6dc9d4c81c64834e5e509281f7f16">apr_brigade_flush</a> flush, <span class="keywordtype">void</span> *ctx,
<a name="l00866"></a>00866                                            const <span class="keywordtype">char</span> c);
<a name="l00867"></a>00867 
<a name="l00876"></a>00876 APU_DECLARE_NONSTD(apr_status_t) <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga1f27949d92196cbf150b7d6256cbf4b7">apr_brigade_putstrs</a>(<a class="code" href="structapr__bucket__brigade.html">apr_bucket_brigade</a> *b,
<a name="l00877"></a>00877                                                      <a class="code" href="group___a_p_r___util___bucket___brigades.html#gacdf6dc9d4c81c64834e5e509281f7f16">apr_brigade_flush</a> flush,
<a name="l00878"></a>00878                                                      <span class="keywordtype">void</span> *ctx, ...);
<a name="l00879"></a>00879 
<a name="l00890"></a>00890 APU_DECLARE_NONSTD(apr_status_t) <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga4120ba3834c545db3b9229d858e33b47">apr_brigade_printf</a>(<a class="code" href="structapr__bucket__brigade.html">apr_bucket_brigade</a> *b, 
<a name="l00891"></a>00891                                                     <a class="code" href="group___a_p_r___util___bucket___brigades.html#gacdf6dc9d4c81c64834e5e509281f7f16">apr_brigade_flush</a> flush,
<a name="l00892"></a>00892                                                     <span class="keywordtype">void</span> *ctx,
<a name="l00893"></a>00893                                                     const <span class="keywordtype">char</span> *fmt, ...)
<a name="l00894"></a>00894         __attribute__((format(printf,4,5)));
<a name="l00895"></a>00895 
<a name="l00906"></a>00906 APU_DECLARE(apr_status_t) <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga9e1af8c10946264e1bb37a3f56e4bfd8">apr_brigade_vprintf</a>(<a class="code" href="structapr__bucket__brigade.html">apr_bucket_brigade</a> *b, 
<a name="l00907"></a>00907                                               <a class="code" href="group___a_p_r___util___bucket___brigades.html#gacdf6dc9d4c81c64834e5e509281f7f16">apr_brigade_flush</a> flush,
<a name="l00908"></a>00908                                               <span class="keywordtype">void</span> *ctx,
<a name="l00909"></a>00909                                               const <span class="keywordtype">char</span> *fmt, va_list va);
<a name="l00910"></a>00910 
<a name="l00923"></a>00923 APU_DECLARE(<a class="code" href="structapr__bucket.html">apr_bucket</a> *) <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga7c4981f7050333a181e440e753c20555">apr_brigade_insert_file</a>(<a class="code" href="structapr__bucket__brigade.html">apr_bucket_brigade</a> *bb,
<a name="l00924"></a>00924                                                   apr_file_t *f,
<a name="l00925"></a>00925                                                   apr_off_t start,
<a name="l00926"></a>00926                                                   apr_off_t len,
<a name="l00927"></a>00927                                                   apr_pool_t *p);
<a name="l00928"></a>00928 
<a name="l00929"></a>00929 
<a name="l00930"></a>00930 
<a name="l00931"></a>00931 <span class="comment">/*  *****  Bucket freelist functions *****  */</span>
<a name="l00945"></a>00945 APU_DECLARE_NONSTD(<a class="code" href="group___a_p_r___util___bucket___brigades.html#ga9a30babfeb6e290db124d8f9b69e49e4">apr_bucket_alloc_t</a> *) <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga2d96fa729a17a86dc5221958e8c13c96">apr_bucket_alloc_create</a>(apr_pool_t *p);
<a name="l00946"></a>00946 
<a name="l00955"></a>00955 APU_DECLARE_NONSTD(<a class="code" href="group___a_p_r___util___bucket___brigades.html#ga9a30babfeb6e290db124d8f9b69e49e4">apr_bucket_alloc_t</a> *) <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga252642139099350d0b987889d5c0868c">apr_bucket_alloc_create_ex</a>(apr_allocator_t *allocator);
<a name="l00956"></a>00956 
<a name="l00961"></a>00961 APU_DECLARE_NONSTD(<span class="keywordtype">void</span>) <a class="code" href="group___a_p_r___util___bucket___brigades.html#gaf5eb58cc232851c8449ba1d98d049a0a">apr_bucket_alloc_destroy</a>(<a class="code" href="group___a_p_r___util___bucket___brigades.html#ga9a30babfeb6e290db124d8f9b69e49e4">apr_bucket_alloc_t</a> *list);
<a name="l00962"></a>00962 
<a name="l00968"></a>00968 APU_DECLARE_NONSTD(<span class="keywordtype">void</span> *) <a class="code" href="group___a_p_r___util___bucket___brigades.html#gae47c2235a3740432f4a0990fccfe4102">apr_bucket_alloc</a>(apr_size_t size, <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga9a30babfeb6e290db124d8f9b69e49e4">apr_bucket_alloc_t</a> *list);
<a name="l00969"></a>00969 
<a name="l00974"></a>00974 APU_DECLARE_NONSTD(<span class="keywordtype">void</span>) <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga951beb3a8249648214e130ab06275a3a">apr_bucket_free</a>(<span class="keywordtype">void</span> *block);
<a name="l00975"></a>00975 
<a name="l00976"></a>00976 
<a name="l00977"></a>00977 <span class="comment">/*  *****  Bucket Functions  *****  */</span>
<a name="l00984"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#gafc0dae1e90a798284ed777a0c9e90ec6">00984</a> <span class="preprocessor">#define apr_bucket_destroy(e) do {                                      \</span>
<a name="l00985"></a>00985 <span class="preprocessor">        (e)-&gt;type-&gt;destroy((e)-&gt;data);                                  \</span>
<a name="l00986"></a>00986 <span class="preprocessor">        (e)-&gt;free(e);                                                   \</span>
<a name="l00987"></a>00987 <span class="preprocessor">    } while (0)</span>
<a name="l00988"></a>00988 <span class="preprocessor"></span>
<a name="l01000"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga8925c02a7f95e8c1c3986294d4678797">01000</a> <span class="preprocessor">#define apr_bucket_delete(e) do {                                       \</span>
<a name="l01001"></a>01001 <span class="preprocessor">        APR_BUCKET_REMOVE(e);                                           \</span>
<a name="l01002"></a>01002 <span class="preprocessor">        apr_bucket_destroy(e);                                          \</span>
<a name="l01003"></a>01003 <span class="preprocessor">    } while (0)</span>
<a name="l01004"></a>01004 <span class="preprocessor"></span>
<a name="l01072"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#gae44ae938c6c60e148430fdb098dcf28f">01072</a> <span class="preprocessor">#define apr_bucket_read(e,str,len,block) (e)-&gt;type-&gt;read(e, str, len, block)</span>
<a name="l01073"></a>01073 <span class="preprocessor"></span>
<a name="l01080"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#gab00941ffd472982693eb415a964de7af">01080</a> <span class="preprocessor">#define apr_bucket_setaside(e,p) (e)-&gt;type-&gt;setaside(e,p)</span>
<a name="l01081"></a>01081 <span class="preprocessor"></span>
<a name="l01092"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#ga5bb8827a8dd1baa6ac32682e13e9d8c2">01092</a> <span class="preprocessor">#define apr_bucket_split(e,point) (e)-&gt;type-&gt;split(e, point)</span>
<a name="l01093"></a>01093 <span class="preprocessor"></span>
<a name="l01099"></a><a class="code" href="group___a_p_r___util___bucket___brigades.html#gab33cc08b7f064d06397f312e427279c3">01099</a> <span class="preprocessor">#define apr_bucket_copy(e,c) (e)-&gt;type-&gt;copy(e, c)</span>
<a name="l01100"></a>01100 <span class="preprocessor"></span>
<a name="l01101"></a>01101 <span class="comment">/* Bucket type handling */</span>
<a name="l01102"></a>01102 
<a name="l01112"></a>01112 APU_DECLARE_NONSTD(apr_status_t) <a class="code" href="group___a_p_r___util___bucket___brigades.html#gae6135b83d9f7bd7e1b60dbc761a3ca5f">apr_bucket_setaside_noop</a>(<a class="code" href="structapr__bucket.html">apr_bucket</a> *data,
<a name="l01113"></a>01113                                                           apr_pool_t *pool);
<a name="l01114"></a>01114 
<a name="l01122"></a>01122 APU_DECLARE_NONSTD(apr_status_t) <a class="code" href="group___a_p_r___util___bucket___brigades.html#gade52b057161f657a6b298d9c6a78b339">apr_bucket_setaside_notimpl</a>(<a class="code" href="structapr__bucket.html">apr_bucket</a> *data,
<a name="l01123"></a>01123                                                              apr_pool_t *pool);
<a name="l01124"></a>01124 
<a name="l01132"></a>01132 APU_DECLARE_NONSTD(apr_status_t) <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga305766ff39440711da93e72f5b348a3a">apr_bucket_split_notimpl</a>(<a class="code" href="structapr__bucket.html">apr_bucket</a> *data,
<a name="l01133"></a>01133                                                           apr_size_t point);
<a name="l01134"></a>01134 
<a name="l01142"></a>01142 APU_DECLARE_NONSTD(apr_status_t) <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga5fc17c10cee2abf02557669f6f507e89">apr_bucket_copy_notimpl</a>(<a class="code" href="structapr__bucket.html">apr_bucket</a> *e,
<a name="l01143"></a>01143                                                          <a class="code" href="structapr__bucket.html">apr_bucket</a> **c);
<a name="l01144"></a>01144 
<a name="l01154"></a>01154 APU_DECLARE_NONSTD(<span class="keywordtype">void</span>) <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga09221bea9541ca2340a4e8b5e1e7ac56">apr_bucket_destroy_noop</a>(<span class="keywordtype">void</span> *data);
<a name="l01155"></a>01155 
<a name="l01162"></a>01162 <span class="comment">/* There is no apr_bucket_read_notimpl, because it is a required function</span>
<a name="l01163"></a>01163 <span class="comment"> */</span>
<a name="l01164"></a>01164 
<a name="l01165"></a>01165 
<a name="l01166"></a>01166 <span class="comment">/* All of the bucket types implemented by the core */</span>
<a name="l01171"></a>01171 APU_DECLARE_DATA extern const <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#gaecc113cfcc7751dfe70876437a2f51d7">apr_bucket_type_flush</a>;
<a name="l01177"></a>01177 APU_DECLARE_DATA extern const <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#ga829cac9b4843b85a902ddd64dffbfb12">apr_bucket_type_eos</a>;
<a name="l01181"></a>01181 APU_DECLARE_DATA extern const <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#ga5f17aa7e616179411a06475ec09626e9">apr_bucket_type_file</a>;
<a name="l01186"></a>01186 APU_DECLARE_DATA extern const <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#ga2c5608267ed7b860657f5a1c89c2f40d">apr_bucket_type_heap</a>;
<a name="l01187"></a>01187 <span class="preprocessor">#if APR_HAS_MMAP</span>
<a name="l01188"></a>01188 <span class="preprocessor"></span>
<a name="l01191"></a>01191 APU_DECLARE_DATA <span class="keyword">extern</span> <span class="keyword">const</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#ga63f9ce8e4d6e796921aad14a218a3b23">apr_bucket_type_mmap</a>;
<a name="l01192"></a>01192 <span class="preprocessor">#endif</span>
<a name="l01193"></a>01193 <span class="preprocessor"></span>
<a name="l01198"></a>01198 APU_DECLARE_DATA <span class="keyword">extern</span> <span class="keyword">const</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#ga87bace819fdbf07c12497a8289b3567b">apr_bucket_type_pool</a>;
<a name="l01202"></a>01202 APU_DECLARE_DATA <span class="keyword">extern</span> <span class="keyword">const</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#ga334a875abb2908364a40abbfa80c401f">apr_bucket_type_pipe</a>;
<a name="l01208"></a>01208 APU_DECLARE_DATA <span class="keyword">extern</span> <span class="keyword">const</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#ga391ac24b2c85969e8efa504588b364bb">apr_bucket_type_immortal</a>;
<a name="l01214"></a>01214 APU_DECLARE_DATA <span class="keyword">extern</span> <span class="keyword">const</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#ga1692ced61c1966e67adc05ec2a69ce9b">apr_bucket_type_transient</a>;
<a name="l01218"></a>01218 APU_DECLARE_DATA <span class="keyword">extern</span> <span class="keyword">const</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#gaa6d9978cc10895bdf0a4686728822a84">apr_bucket_type_socket</a>;
<a name="l01219"></a>01219 
<a name="l01220"></a>01220 
<a name="l01221"></a>01221 <span class="comment">/*  *****  Simple buckets  *****  */</span>
<a name="l01222"></a>01222 
<a name="l01234"></a>01234 APU_DECLARE_NONSTD(apr_status_t) <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga9fd8c7d9e42dd04b8f153072655e875c">apr_bucket_simple_split</a>(<a class="code" href="structapr__bucket.html">apr_bucket</a> *b,
<a name="l01235"></a>01235                                                          apr_size_t point);
<a name="l01236"></a>01236 
<a name="l01247"></a>01247 APU_DECLARE_NONSTD(apr_status_t) <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga123c95e832734f92e6f1139b6a68cfa6">apr_bucket_simple_copy</a>(<a class="code" href="structapr__bucket.html">apr_bucket</a> *a,
<a name="l01248"></a>01248                                                         <a class="code" href="structapr__bucket.html">apr_bucket</a> **b);
<a name="l01249"></a>01249 
<a name="l01250"></a>01250 
<a name="l01251"></a>01251 <span class="comment">/*  *****  Shared, reference-counted buckets  *****  */</span>
<a name="l01252"></a>01252 
<a name="l01267"></a>01267 APU_DECLARE(<a class="code" href="structapr__bucket.html">apr_bucket</a> *) <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga562251ac5776e88f7384158b85e74be8">apr_bucket_shared_make</a>(<a class="code" href="structapr__bucket.html">apr_bucket</a> *b, <span class="keywordtype">void</span> *data,
<a name="l01268"></a>01268                                                  apr_off_t start, 
<a name="l01269"></a>01269                                                  apr_size_t length);
<a name="l01270"></a>01270 
<a name="l01279"></a>01279 APU_DECLARE(<span class="keywordtype">int</span>) <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga43c7dc7e3eb961a91bbc0b69a47e503c">apr_bucket_shared_destroy</a>(<span class="keywordtype">void</span> *data);
<a name="l01280"></a>01280 
<a name="l01292"></a>01292 APU_DECLARE_NONSTD(apr_status_t) <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga871e54ba20487a2085a73a673ffa4110">apr_bucket_shared_split</a>(<a class="code" href="structapr__bucket.html">apr_bucket</a> *b,
<a name="l01293"></a>01293                                                          apr_size_t point);
<a name="l01294"></a>01294 
<a name="l01304"></a>01304 APU_DECLARE_NONSTD(apr_status_t) <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga2e9a035d340ef6b4279b178eff614670">apr_bucket_shared_copy</a>(<a class="code" href="structapr__bucket.html">apr_bucket</a> *a,
<a name="l01305"></a>01305                                                         <a class="code" href="structapr__bucket.html">apr_bucket</a> **b);
<a name="l01306"></a>01306 
<a name="l01307"></a>01307 
<a name="l01308"></a>01308 <span class="comment">/*  *****  Functions to Create Buckets of varying types  *****  */</span>
<a name="l01309"></a>01309 <span class="comment">/*</span>
<a name="l01310"></a>01310 <span class="comment"> * Each bucket type foo has two initialization functions:</span>
<a name="l01311"></a>01311 <span class="comment"> * apr_bucket_foo_make which sets up some already-allocated memory as a</span>
<a name="l01312"></a>01312 <span class="comment"> * bucket of type foo; and apr_bucket_foo_create which allocates memory</span>
<a name="l01313"></a>01313 <span class="comment"> * for the bucket, calls apr_bucket_make_foo, and initializes the</span>
<a name="l01314"></a>01314 <span class="comment"> * bucket&#39;s list pointers. The apr_bucket_foo_make functions are used</span>
<a name="l01315"></a>01315 <span class="comment"> * inside the bucket code to change the type of buckets in place;</span>
<a name="l01316"></a>01316 <span class="comment"> * other code should call apr_bucket_foo_create. All the initialization</span>
<a name="l01317"></a>01317 <span class="comment"> * functions change nothing if they fail.</span>
<a name="l01318"></a>01318 <span class="comment"> */</span>
<a name="l01319"></a>01319 
<a name="l01326"></a>01326 APU_DECLARE(<a class="code" href="structapr__bucket.html">apr_bucket</a> *) <a class="code" href="group___a_p_r___util___bucket___brigades.html#gaac308b459ecdab87e94b12adad1b8760">apr_bucket_eos_create</a>(<a class="code" href="group___a_p_r___util___bucket___brigades.html#ga9a30babfeb6e290db124d8f9b69e49e4">apr_bucket_alloc_t</a> *list);
<a name="l01327"></a>01327 
<a name="l01335"></a>01335 APU_DECLARE(<a class="code" href="structapr__bucket.html">apr_bucket</a> *) <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga06312ba339cb0ec1844b698d30e754c4">apr_bucket_eos_make</a>(<a class="code" href="structapr__bucket.html">apr_bucket</a> *b);
<a name="l01336"></a>01336 
<a name="l01344"></a>01344 APU_DECLARE(<a class="code" href="structapr__bucket.html">apr_bucket</a> *) <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga48347f3f7d5738cdb61fe35c25c09666">apr_bucket_flush_create</a>(<a class="code" href="group___a_p_r___util___bucket___brigades.html#ga9a30babfeb6e290db124d8f9b69e49e4">apr_bucket_alloc_t</a> *list);
<a name="l01345"></a>01345 
<a name="l01353"></a>01353 APU_DECLARE(<a class="code" href="structapr__bucket.html">apr_bucket</a> *) <a class="code" href="group___a_p_r___util___bucket___brigades.html#gaee543b95249a320a27ae9bb03e2c4f23">apr_bucket_flush_make</a>(<a class="code" href="structapr__bucket.html">apr_bucket</a> *b);
<a name="l01354"></a>01354 
<a name="l01362"></a>01362 APU_DECLARE(<a class="code" href="structapr__bucket.html">apr_bucket</a> *) <a class="code" href="group___a_p_r___util___bucket___brigades.html#gad81543da24b144c0e100dd1e6d843adb">apr_bucket_immortal_create</a>(const <span class="keywordtype">char</span> *buf, 
<a name="l01363"></a>01363                                                      apr_size_t nbyte,
<a name="l01364"></a>01364                                                      <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga9a30babfeb6e290db124d8f9b69e49e4">apr_bucket_alloc_t</a> *list);
<a name="l01365"></a>01365 
<a name="l01373"></a>01373 APU_DECLARE(<a class="code" href="structapr__bucket.html">apr_bucket</a> *) <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga33b21eb55cad9d28b5cdd40ad4181774">apr_bucket_immortal_make</a>(<a class="code" href="structapr__bucket.html">apr_bucket</a> *b, 
<a name="l01374"></a>01374                                                    const <span class="keywordtype">char</span> *buf, 
<a name="l01375"></a>01375                                                    apr_size_t nbyte);
<a name="l01376"></a>01376 
<a name="l01384"></a>01384 APU_DECLARE(<a class="code" href="structapr__bucket.html">apr_bucket</a> *) <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga554f2d87c718f30a9259d52c6f81a405">apr_bucket_transient_create</a>(const <span class="keywordtype">char</span> *buf, 
<a name="l01385"></a>01385                                                       apr_size_t nbyte,
<a name="l01386"></a>01386                                                       <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga9a30babfeb6e290db124d8f9b69e49e4">apr_bucket_alloc_t</a> *list);
<a name="l01387"></a>01387 
<a name="l01395"></a>01395 APU_DECLARE(<a class="code" href="structapr__bucket.html">apr_bucket</a> *) <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga7e1f9a0ae64781ff4430d08c25e6e831">apr_bucket_transient_make</a>(<a class="code" href="structapr__bucket.html">apr_bucket</a> *b, 
<a name="l01396"></a>01396                                                     const <span class="keywordtype">char</span> *buf,
<a name="l01397"></a>01397                                                     apr_size_t nbyte);
<a name="l01398"></a>01398 
<a name="l01413"></a>01413 APU_DECLARE(<a class="code" href="structapr__bucket.html">apr_bucket</a> *) <a class="code" href="group___a_p_r___util___bucket___brigades.html#gadde6843cfe311a60d290adc1d6635cac">apr_bucket_heap_create</a>(const <span class="keywordtype">char</span> *buf, 
<a name="l01414"></a>01414                                                  apr_size_t nbyte,
<a name="l01415"></a>01415                                                  <span class="keywordtype">void</span> (*free_func)(<span class="keywordtype">void</span> *data),
<a name="l01416"></a>01416                                                  <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga9a30babfeb6e290db124d8f9b69e49e4">apr_bucket_alloc_t</a> *list);
<a name="l01426"></a>01426 APU_DECLARE(<a class="code" href="structapr__bucket.html">apr_bucket</a> *) <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga71de285204d21507420068f05b12a541">apr_bucket_heap_make</a>(<a class="code" href="structapr__bucket.html">apr_bucket</a> *b, const <span class="keywordtype">char</span> *buf,
<a name="l01427"></a>01427                                                apr_size_t nbyte,
<a name="l01428"></a>01428                                                <span class="keywordtype">void</span> (*free_func)(<span class="keywordtype">void</span> *data));
<a name="l01429"></a>01429 
<a name="l01439"></a>01439 APU_DECLARE(<a class="code" href="structapr__bucket.html">apr_bucket</a> *) <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga154ea763ee9de4ccb8692b9e3b60ebb2">apr_bucket_pool_create</a>(const <span class="keywordtype">char</span> *buf, 
<a name="l01440"></a>01440                                                  apr_size_t length,
<a name="l01441"></a>01441                                                  apr_pool_t *pool,
<a name="l01442"></a>01442                                                  <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga9a30babfeb6e290db124d8f9b69e49e4">apr_bucket_alloc_t</a> *list);
<a name="l01443"></a>01443 
<a name="l01452"></a>01452 APU_DECLARE(<a class="code" href="structapr__bucket.html">apr_bucket</a> *) <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga01197c5b2cda6382354628cecdeae145">apr_bucket_pool_make</a>(<a class="code" href="structapr__bucket.html">apr_bucket</a> *b, const <span class="keywordtype">char</span> *buf,
<a name="l01453"></a>01453                                                apr_size_t length, 
<a name="l01454"></a>01454                                                apr_pool_t *pool);
<a name="l01455"></a>01455 
<a name="l01456"></a>01456 <span class="preprocessor">#if APR_HAS_MMAP</span>
<a name="l01457"></a>01457 <span class="preprocessor"></span>
<a name="l01466"></a>01466 APU_DECLARE(<a class="code" href="structapr__bucket.html">apr_bucket</a> *) <a class="code" href="group___a_p_r___util___bucket___brigades.html#gaee338c7d218ce1fbbf8c1aefedcc0632">apr_bucket_mmap_create</a>(apr_mmap_t *mm, 
<a name="l01467"></a>01467                                                  apr_off_t start,
<a name="l01468"></a>01468                                                  apr_size_t length,
<a name="l01469"></a>01469                                                  <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga9a30babfeb6e290db124d8f9b69e49e4">apr_bucket_alloc_t</a> *list);
<a name="l01470"></a>01470 
<a name="l01480"></a>01480 APU_DECLARE(<a class="code" href="structapr__bucket.html">apr_bucket</a> *) <a class="code" href="group___a_p_r___util___bucket___brigades.html#gab561ac92d1811e5a2589783536e64a1a">apr_bucket_mmap_make</a>(<a class="code" href="structapr__bucket.html">apr_bucket</a> *b, apr_mmap_t *mm,
<a name="l01481"></a>01481                                                apr_off_t start, 
<a name="l01482"></a>01482                                                apr_size_t length);
<a name="l01483"></a>01483 <span class="preprocessor">#endif</span>
<a name="l01484"></a>01484 <span class="preprocessor"></span>
<a name="l01491"></a>01491 APU_DECLARE(<a class="code" href="structapr__bucket.html">apr_bucket</a> *) <a class="code" href="group___a_p_r___util___bucket___brigades.html#gacd9f08b40eb2204cd93b42e58338aeb2">apr_bucket_socket_create</a>(apr_socket_t *thissock,
<a name="l01492"></a>01492                                                    <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga9a30babfeb6e290db124d8f9b69e49e4">apr_bucket_alloc_t</a> *list);
<a name="l01499"></a>01499 APU_DECLARE(<a class="code" href="structapr__bucket.html">apr_bucket</a> *) <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga2fffd4c4701ad55c6df27cdee0c47200">apr_bucket_socket_make</a>(<a class="code" href="structapr__bucket.html">apr_bucket</a> *b, 
<a name="l01500"></a>01500                                                  apr_socket_t *thissock);
<a name="l01501"></a>01501 
<a name="l01508"></a>01508 APU_DECLARE(<a class="code" href="structapr__bucket.html">apr_bucket</a> *) <a class="code" href="group___a_p_r___util___bucket___brigades.html#gab9ea07d5f9246e06c1bb3e76ee90cd71">apr_bucket_pipe_create</a>(apr_file_t *thispipe,
<a name="l01509"></a>01509                                                  <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga9a30babfeb6e290db124d8f9b69e49e4">apr_bucket_alloc_t</a> *list);
<a name="l01510"></a>01510 
<a name="l01517"></a>01517 APU_DECLARE(<a class="code" href="structapr__bucket.html">apr_bucket</a> *) <a class="code" href="group___a_p_r___util___bucket___brigades.html#gae7b4daa1318226beda4bf0eead2f5582">apr_bucket_pipe_make</a>(<a class="code" href="structapr__bucket.html">apr_bucket</a> *b, 
<a name="l01518"></a>01518                                                apr_file_t *thispipe);
<a name="l01519"></a>01519 
<a name="l01536"></a>01536 APU_DECLARE(<a class="code" href="structapr__bucket.html">apr_bucket</a> *) <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga421f96e8e9387a9c27fe010ebdee0202">apr_bucket_file_create</a>(apr_file_t *fd,
<a name="l01537"></a>01537                                                  apr_off_t offset,
<a name="l01538"></a>01538                                                  apr_size_t len, 
<a name="l01539"></a>01539                                                  apr_pool_t *p,
<a name="l01540"></a>01540                                                  <a class="code" href="group___a_p_r___util___bucket___brigades.html#ga9a30babfeb6e290db124d8f9b69e49e4">apr_bucket_alloc_t</a> *list);
<a name="l01541"></a>01541 
<a name="l01552"></a>01552 APU_DECLARE(<a class="code" href="structapr__bucket.html">apr_bucket</a> *) <a class="code" href="group___a_p_r___util___bucket___brigades.html#gacb716dea400092f2f8c84a3f0f6d3a10">apr_bucket_file_make</a>(<a class="code" href="structapr__bucket.html">apr_bucket</a> *b, apr_file_t *fd,
<a name="l01553"></a>01553                                                apr_off_t offset,
<a name="l01554"></a>01554                                                apr_size_t len, apr_pool_t *p);
<a name="l01555"></a>01555 
<a name="l01562"></a>01562 APU_DECLARE(apr_status_t) <a class="code" href="group___a_p_r___util___bucket___brigades.html#gab18ee46f66634c35ad79b6a74559cbb8">apr_bucket_file_enable_mmap</a>(<a class="code" href="structapr__bucket.html">apr_bucket</a> *b,
<a name="l01563"></a>01563                                                       <span class="keywordtype">int</span> enabled);
<a name="l01564"></a>01564 
<a name="l01566"></a>01566 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l01567"></a>01567 <span class="preprocessor"></span>}
<a name="l01568"></a>01568 <span class="preprocessor">#endif</span>
<a name="l01569"></a>01569 <span class="preprocessor"></span>
<a name="l01570"></a>01570 <span class="preprocessor">#endif </span><span class="comment">/* !APR_BUCKETS_H */</span>
</pre></div></div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&nbsp;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&nbsp;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&nbsp;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&nbsp;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&nbsp;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&nbsp;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&nbsp;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&nbsp;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&nbsp;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&nbsp;</span>Defines</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<hr class="footer"/><address style="text-align: right;"><small>Generated on Wed Feb 1 12:19:48 2012 for Apache Portable Runtime Utility Library by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>