Sophie

Sophie

distrib > Fedora > 14 > i386 > by-pkgid > 623999701586b0ea103ff2ccad7954a6 > files > 8913

boost-doc-1.44.0-1.fc14.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
  <meta http-equiv="Content-Language" content="en-us">
  <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
  <link href="../pool.css" rel="stylesheet" type="text/css">

  <title>Object Pool Implementation</title>
</head>

<body>
  <img src="../../../../boost.png" width="276" height="86" alt="C++ Boost">

  <h1 align="center">Object Pool Implementation</h1>

  <h2>Dependencies</h2>

  <p>Includes the Boost header <span class="code">"pool.hpp"</span> (see
  <a href="pool.html">pool.html</a>).</p>

  <h2>Extensions to Public Interface</h2>

  <p>Whenever an object of type <span class="code">ObjectPool</span> needs
  memory from the system, it will request it from its <span class=
  "code">UserAllocator</span> template parameter. The amount requested is
  determined using a doubling algorithm; that is, each time more system
  memory is allocated, the amount of system memory requested is doubled.
  Users may control the doubling algorithm by using the following
  extensions.</p>

  <h3>Additional constructor parameter</h3>

  <p>Users may pass an additional constructor parameter to <span class=
  "code">ObjectPool</span>. This parameter is of type <span class=
  "code">size_type</span>, and is the number of chunks to request from the
  system the first time that object needs to allocate system memory. The
  default is 32. This parameter may not be 0.</p>

  <h3><span class="code">next_size</span> accessor functions</h3>

  <p>The pair of functions <span class="code">size_type get_next_size()
  const;</span> and <span class="code">void set_next_size(size_type);</span>
  allow users to explicitly read and write the <span class=
  "code">next_size</span> value. This value is the number of chunks to
  request from the system the next time that object needs to allocate system
  memory. This value should never be set to 0.</p>

  <h2>Protected Interface</h2>

  <h3>Synopsis</h3>
  <pre class="code">
template &lt;typename ElementType, typename UserAllocator = default_user_allocator_new_delete&gt;
class object_pool: protected pool&lt;UserAllocator&gt;
{
  ... // public interface
};
</pre>

  <h3>Protected Derivation</h3>ObjectPool derives from a simple segregated
  storage via protected derivation; this exposes all the <a href=
  "pool.html">Pool implementation details</a> to all classes derived from
  ObjectPool as well.

  <h2><a href="../interfaces/object_pool.html">Interface Description</a></h2>
  <hr>

  <p><a href="http://validator.w3.org/check?uri=referer"><img border="0" src=
  "../../../../doc/images/valid-html401.png" alt="Valid HTML 4.01 Transitional"
  height="31" width="88"></a></p>

  <p>Revised 
  <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B, %Y" startspan -->05
  December, 2006<!--webbot bot="Timestamp" endspan i-checksum="38516" --></p>

  <p><i>Copyright &copy; 2000, 2001 Stephen Cleary (scleary AT jerviswebb DOT
  com)</i></p>

  <p><i>Distributed under the Boost Software License, Version 1.0. (See
  accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
  or copy at <a href=
  "http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</a>)</i></p>
</body>
</html>