blob: f3c389f8a2eaf6fe22695949dbb7d930c342fc2d [file] [log] [blame]
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Class template basic_managed_heap_memory</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
<link rel="up" href="../../boost_interprocess_reference.html#header.boost.interprocess.managed_heap_memory_hpp" title="Header &lt;boost/interprocess/managed_heap_memory.hpp&gt;">
<link rel="prev" href="basic_managed_external__id818699.html" title="Class template basic_managed_external_buffer">
<link rel="next" href="basic_managed_mapped_file.html" title="Class template basic_managed_mapped_file">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="basic_managed_external__id818699.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../boost_interprocess_reference.html#header.boost.interprocess.managed_heap_memory_hpp"><img src="../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="basic_managed_mapped_file.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="refentry">
<a name="boost.interprocess.basic_managed_heap_memory"></a><div class="titlepage"></div>
<div class="refnamediv">
<h2><span class="refentrytitle">Class template basic_managed_heap_memory</span></h2>
<p>boost::interprocess::basic_managed_heap_memory</p>
</div>
<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: &lt;<a class="link" href="../../boost_interprocess_reference.html#header.boost.interprocess.managed_heap_memory_hpp" title="Header &lt;boost/interprocess/managed_heap_memory.hpp&gt;">boost/interprocess/managed_heap_memory.hpp</a>&gt;
</span><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharType<span class="special">,</span> <span class="keyword">typename</span> AllocationAlgorithm<span class="special">,</span>
<span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">IndexConfig</span> <span class="special">&gt;</span> <span class="keyword">class</span> IndexType<span class="special">&gt;</span>
<span class="keyword">class</span> <a class="link" href="basic_managed_heap_memory.html" title="Class template basic_managed_heap_memory">basic_managed_heap_memory</a> <span class="special">{</span>
<span class="keyword">public</span><span class="special">:</span>
<span class="comment">// <a class="link" href="basic_managed_heap_memory.html#boost.interprocess.basic_managed_heap_memoryconstruct-copy-destruct">construct/copy/destruct</a></span>
<a class="link" href="basic_managed_heap_memory.html#id818932-bb"><span class="identifier">basic_managed_heap_memory</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span>
<a class="link" href="basic_managed_heap_memory.html#id818943-bb"><span class="identifier">basic_managed_heap_memory</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span><span class="special">;</span>
<a class="link" href="basic_managed_heap_memory.html#id818954-bb"><span class="identifier">basic_managed_heap_memory</span></a><span class="special">(</span><a class="link" href="basic_managed_heap_memory.html" title="Class template basic_managed_heap_memory">basic_managed_heap_memory</a> <span class="special">&amp;&amp;</span><span class="special">)</span><span class="special">;</span>
basic_managed_heap_memory&amp; <a class="link" href="basic_managed_heap_memory.html#id818967-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="basic_managed_heap_memory.html" title="Class template basic_managed_heap_memory">basic_managed_heap_memory</a> <span class="special">&amp;&amp;</span><span class="special">)</span><span class="special">;</span>
<a class="link" href="basic_managed_heap_memory.html#id818938-bb"><span class="special">~</span><span class="identifier">basic_managed_heap_memory</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span>
<span class="comment">// <a class="link" href="basic_managed_heap_memory.html#id818884-bb">public member functions</a></span>
<span class="keyword">bool</span> <a class="link" href="basic_managed_heap_memory.html#id818887-bb"><span class="identifier">grow</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">void</span> <a class="link" href="basic_managed_heap_memory.html#id818911-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="basic_managed_heap_memory.html" title="Class template basic_managed_heap_memory">basic_managed_heap_memory</a> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="special">}</span><span class="special">;</span></pre></div>
<div class="refsect1">
<a name="id1468576"></a><h2>Description</h2>
<p>A basic heap memory named object creation class. Initializes the heap memory segment. Inherits all basic functionality from basic_managed_memory_impl&lt;CharType, AllocationAlgorithm, IndexType&gt; </p>
<div class="refsect2">
<a name="id1468589"></a><h3>
<a name="boost.interprocess.basic_managed_heap_memoryconstruct-copy-destruct"></a><code class="computeroutput">basic_managed_heap_memory</code>
public
construct/copy/destruct</h3>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem">
<pre class="literallayout"><a name="id818932-bb"></a><span class="identifier">basic_managed_heap_memory</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre>
<p>Default constructor. Does nothing. Useful in combination with move semantics </p>
</li>
<li class="listitem">
<pre class="literallayout"><a name="id818943-bb"></a><span class="identifier">basic_managed_heap_memory</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> size<span class="special">)</span><span class="special">;</span></pre>
<p>Creates heap memory and initializes the segment manager. This can throw. </p>
</li>
<li class="listitem">
<pre class="literallayout"><a name="id818954-bb"></a><span class="identifier">basic_managed_heap_memory</span><span class="special">(</span><a class="link" href="basic_managed_heap_memory.html" title="Class template basic_managed_heap_memory">basic_managed_heap_memory</a> <span class="special">&amp;&amp;</span> moved<span class="special">)</span><span class="special">;</span></pre>Moves the ownership of "moved"'s managed memory to *this. Does not throw. </li>
<li class="listitem">
<pre class="literallayout">basic_managed_heap_memory&amp; <a name="id818967-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="basic_managed_heap_memory.html" title="Class template basic_managed_heap_memory">basic_managed_heap_memory</a> <span class="special">&amp;&amp;</span> moved<span class="special">)</span><span class="special">;</span></pre>Moves the ownership of "moved"'s managed memory to *this. Does not throw. </li>
<li class="listitem">
<pre class="literallayout"><a name="id818938-bb"></a><span class="special">~</span><span class="identifier">basic_managed_heap_memory</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre>
<p>Destructor. Liberates the heap memory holding the managed data. Never throws. </p>
</li>
</ol></div>
</div>
<div class="refsect2">
<a name="id1468822"></a><h3>
<a name="id818884-bb"></a><code class="computeroutput">basic_managed_heap_memory</code> public member functions</h3>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem">
<pre class="literallayout"><span class="keyword">bool</span> <a name="id818887-bb"></a><span class="identifier">grow</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> extra_bytes<span class="special">)</span><span class="special">;</span></pre>
<p>Tries to resize internal heap memory so that we have room for more objects. WARNING: If memory is reallocated, all the objects will be binary-copied to the new buffer. To be able to use this function, all pointers constructed in this buffer must be offset pointers. Otherwise, the result is undefined. Returns true if the growth has been successful, so you will have some extra bytes to allocate new objects. If returns false, the heap allocation has failed. </p>
</li>
<li class="listitem">
<pre class="literallayout"><span class="keyword">void</span> <a name="id818911-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="basic_managed_heap_memory.html" title="Class template basic_managed_heap_memory">basic_managed_heap_memory</a> <span class="special">&amp;</span> other<span class="special">)</span><span class="special">;</span></pre>
<p>Swaps the ownership of the managed heap memories managed by *this and other. Never throws. </p>
</li>
</ol></div>
</div>
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2005 - 2010 Ion Gaztanaga<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="basic_managed_external__id818699.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../boost_interprocess_reference.html#header.boost.interprocess.managed_heap_memory_hpp"><img src="../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="basic_managed_mapped_file.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>