haiku-website/static/legacy-docs/bebook/BBlockCache.html

35 lines
9.6 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>The Be Book - Classes And Methods - The Support Kit</title><link rel="stylesheet" href="be_book.css" type="text/css" media="all" /><link rel="shortcut icon" type="image/vnd.microsoft.icon" href="./images/favicon.ico" /><!--[if IE]>
<link rel="stylesheet" type="text/css" href="be_book_ie.css" />
<![endif]--><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /><meta name="keywords" content="Access, BeOS, BeBook, API" /><link rel="start" href="index.html" title="The Be Book" /><link rel="up" href="TheSupportKit.html" title="The Support Kit" /><link rel="prev" href="BAutolock.html" title="BAutolock" /><link rel="next" href="BDataIO.html" title="BDataIO" /></head><body><div id="header"><div id="headerT"><div id="headerTL"><a accesskey="p" href="BAutolock.html" title="BAutolock"><img src="./images/navigation/prev.png" alt="Prev" /></a> <a accesskey="u" href="TheSupportKit.html" title="The Support Kit"><img src="./images/navigation/up.png" alt="Up" /></a> <a accesskey="n" href="BDataIO.html" title="BDataIO"><img src="./images/navigation/next.png" alt="Next" /></a></div><div id="headerTR"><div id="navigpeople"><a href="http://www.haiku-os.org"><img src="./images/People_24.png" alt="haiku-os.org" title="Visit The Haiku Website" /></a></div><div class="navighome" title="Home"><a accesskey="h" href="index.html"><img src="./images/navigation/home.png" alt="Home" /></a></div><div class="navigboxed" id="navigindex"><a accesskey="i" href="ClassIndex.html" title="Index">I</a></div><div class="navigboxed" id="naviglang" title="English">en</div></div><div id="headerTC">The Be Book - Classes And Methods - The Support Kit</div></div><div id="headerB">Prev: <a href="BAutolock.html">BAutolock</a>  Up: <a href="TheSupportKit.html">The Support Kit</a>  Next: <a href="BDataIO.html">BDataIO</a></div><hr /></div><div class="section"><div xmlns="" xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><div xmlns:d="http://docbook.org/ns/docbook"><h2 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="BBlockCache"></a>BBlockCache</h2></div></div></div><a id="id1268328" class="indexterm"></a><div class="classheader"><table border="0"><colgroup><col /><col /></colgroup><tbody><tr><td><table width="100%" border="0"><colgroup><col /><col /></colgroup><tbody><tr><td>Derived From:</td><td></td></tr><tr><td>Mix-in Classes:</td><td></td></tr><tr><td>Declared In:</td><td><code class="filename">support/BlockCache.h</code></td></tr><tr><td>Library:</td><td><code class="filename">libbe.so</code></td></tr><tr><td>Allocation:</td><td></td></tr></tbody></table></td><td>
<a class="link overview" href="BBlockCache_Overview.html" title="BBlockCache">Class Overview</a>
<div class="toc"><ul><li><span class="section"><a href="BBlockCache.html#BBlockCache_ConstructorDestructor">Constructor and Destructor</a></span></li><li><span class="section"><a href="BBlockCache.html#BBlockCache_MemberFunctions">Member Functions</a></span></li></ul></div>
</td></tr></tbody></table></div><div class="section"><div xmlns="" xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><hr /><div xmlns:d="http://docbook.org/ns/docbook"><h3 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="BBlockCache_ConstructorDestructor"></a>Constructor and Destructor</h3></div></div></div><div class="section"><div xmlns="" xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><div xmlns:d="http://docbook.org/ns/docbook"><h4 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="BBlockCache_Constructor"></a>BBlockCache()</h4></div></div></div><code class="constructorsynopsis cpp"><span class="methodname">BBlockCache</span>(<span class="methodparam"><span class="type">size_t </span><span class="parameter">count</span></span>,<br />            <span class="methodparam"><span class="type">size_t </span><span class="parameter">size</span></span>,<br />            <span class="methodparam"><span class="type">uint32 </span><span class="parameter">type</span></span>);</code><p>
Creates a new memory block pool, allocating memory for <code class="parameter">count</code> blocks, each
controlling <code class="parameter">size</code> bytes of memory. <code class="parameter">type</code> is either:
</p><table class="variablelist constants"><thead><tr><th>Constant</th><th>Description</th></tr></thead><tbody><tr><td><p><span class="term"><code class="constant">B_OBJECT_CACHE</code></span></p></td><td><p>Memory is managed through
<code class="function">new</code> and <code class="function">delete</code>.</p></td></tr><tr><td><p><span class="term"><code class="constant">B_MALLOC_CACHE</code></span></p></td><td><p>Memory is managed through
<code class="function">malloc()</code> and <code class="function">free()</code>.</p></td></tr></tbody></table></div><div class="section"><div xmlns="" xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><div xmlns:d="http://docbook.org/ns/docbook"><h4 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="BBlockCache_Destructor"></a>~BBlockCache()</h4></div></div></div><code class="destructorsynopsis cpp"><span class="methodname">~BBlockCache</span>();</code><p>
Frees any unused memory in the object's block pool. Memory that was
retrieved through <code class="methodname">Get()</code> (and that hasn't been returned through
<code class="methodname">Save()</code>) is not deallocated.
</p></div></div><div class="section"><div xmlns="" xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><hr /><div xmlns:d="http://docbook.org/ns/docbook"><h3 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="BBlockCache_MemberFunctions"></a>Member Functions</h3></div></div></div><div class="section"><div xmlns="" xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><div xmlns:d="http://docbook.org/ns/docbook"><h4 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="BBlockCache_Get"></a>Get()</h4></div></div></div><code class="methodsynopsis cpp"><span class="type">void* </span><span class="methodname">Get</span>(<span class="methodparam"><span class="type">size_t </span><span class="parameter">size</span></span>);</code><p>Retrieves a block of memory of the given
<code class="parameter">size</code> and returns it directly. If
<code class="parameter">size</code> is the same as the
<code class="parameter">size</code> argument you passed to the constructor, the
memory returned will be taken from the object's cache. Otherwise, it's
allocated using either <code class="function">new</code> or
<code class="function">malloc()</code> as requested in the constructor. When
you're done with the memory, you can either deallocate it yourself, or
return it to the <code class="classname">BBlockCache</code> object by calling
<code class="methodname">Save()</code>.</p></div><div class="section"><div xmlns="" xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><div xmlns:d="http://docbook.org/ns/docbook"><h4 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="BBlockCache_Save"></a>Save()</h4></div></div></div><code class="methodsynopsis cpp"><span class="void">void </span><span class="methodname">Save</span>(<span class="methodparam"><span class="type">void* </span><span class="parameter">pointer</span></span>,<br />          <span class="methodparam"><span class="type">size_t </span><span class="parameter">size</span></span>);</code><p>
Returns, to the <code class="classname">BBlockCache</code> object, <code class="parameter">size</code>
bytes of memory pointed to by
<code class="parameter">pointer</code>. If the memory was taken from the object's pool, the memory is
returned to the pool. Otherwise, it's deallocated. In either case, the
caller is freed of responsibility for deallocating the memory.
</p></div></div></div><div id="footer"><hr /><div id="footerT">Prev: <a href="BAutolock.html">BAutolock</a>  Up: <a href="TheSupportKit.html">The Support Kit</a>  Next: <a href="BDataIO.html">BDataIO</a> </div><div id="footerB"><div id="footerBL"><a href="BAutolock.html" title="BAutolock"><img src="./images/navigation/prev.png" alt="Prev" /></a> <a href="TheSupportKit.html" title="The Support Kit"><img src="./images/navigation/up.png" alt="Up" /></a> <a href="BDataIO.html" title="BDataIO"><img src="./images/navigation/next.png" alt="Next" /></a></div><div id="footerBR"><div><a href="http://www.haiku-os.org"><img src="./images/People_24.png" alt="haiku-os.org" title="Visit The Haiku Website" /></a></div><div class="navighome" title="Home"><a accesskey="h" href="index.html"><img src="./images/navigation/home.png" alt="Home" /></a></div></div><div id="footerBC"><a href="http://www.access-company.com/home.html" title="ACCESS Co."><img alt="Access Company" src="./images/access_logo.png" /></a></div></div></div><div id="licenseFooter"><div id="licenseFooterBL"><a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/3.0/" title="Creative Commons License"><img alt="Creative Commons License" style="border-width:0" src="https://licensebuttons.net/l/by-nc-nd/3.0/88x31.png" /></a></div><div id="licenseFooterBR"><a href="./LegalNotice.html">Legal Notice</a></div><div id="licenseFooterBC"><span id="licenseText">This work is licensed under a
<a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/3.0/">Creative
Commons Attribution-Non commercial-No Derivative Works 3.0 License</a>.</span></div></div></body></html>