| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US"> |
| <head> |
| <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> |
| <meta http-equiv="X-UA-Compatible" content="IE=11"/> |
| <meta name="generator" content="Doxygen 1.9.8"/> |
| <meta name="viewport" content="width=device-width, initial-scale=1"/> |
| <title>Paimon-cpp: paimon::MemoryPool Class Reference</title> |
| <link href="tabs.css" rel="stylesheet" type="text/css"/> |
| <script type="text/javascript" src="jquery.js"></script> |
| <script type="text/javascript" src="dynsections.js"></script> |
| <link href="search/search.css" rel="stylesheet" type="text/css"/> |
| <script type="text/javascript" src="search/searchdata.js"></script> |
| <script type="text/javascript" src="search/search.js"></script> |
| <link href="doxygen.css" rel="stylesheet" type="text/css" /> |
| </head> |
| <body> |
| <div id="top"><!-- do not remove this div, it is closed by doxygen! --> |
| <div id="titlearea"> |
| <table cellspacing="0" cellpadding="0"> |
| <tbody> |
| <tr id="projectrow"> |
| <td id="projectalign"> |
| <div id="projectname">Paimon-cpp |
| </div> |
| <div id="projectbrief">A high-performance C++ implementation of Apache Paimon</div> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| <!-- end header part --> |
| <!-- Generated by Doxygen 1.9.8 --> |
| <script type="text/javascript"> |
| /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ |
| var searchBox = new SearchBox("searchBox", "search/",'.html'); |
| /* @license-end */ |
| </script> |
| <script type="text/javascript" src="menudata.js"></script> |
| <script type="text/javascript" src="menu.js"></script> |
| <script type="text/javascript"> |
| /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ |
| $(function() { |
| initMenu('',true,false,'search.php','Search'); |
| $(document).ready(function() { init_search(); }); |
| }); |
| /* @license-end */ |
| </script> |
| <div id="main-nav"></div> |
| <!-- window showing the filter options --> |
| <div id="MSearchSelectWindow" |
| onmouseover="return searchBox.OnSearchSelectShow()" |
| onmouseout="return searchBox.OnSearchSelectHide()" |
| onkeydown="return searchBox.OnSearchSelectKey(event)"> |
| </div> |
| |
| <!-- iframe showing the search results (closed by default) --> |
| <div id="MSearchResultsWindow"> |
| <div id="MSearchResults"> |
| <div class="SRPage"> |
| <div id="SRIndex"> |
| <div id="SRResults"></div> |
| <div class="SRStatus" id="Loading">Loading...</div> |
| <div class="SRStatus" id="Searching">Searching...</div> |
| <div class="SRStatus" id="NoMatches">No Matches</div> |
| </div> |
| </div> |
| </div> |
| </div> |
| |
| <div id="nav-path" class="navpath"> |
| <ul> |
| <li class="navelem"><a class="el" href="namespacepaimon.html">paimon</a></li><li class="navelem"><a class="el" href="classpaimon_1_1_memory_pool.html">MemoryPool</a></li> </ul> |
| </div> |
| </div><!-- top --> |
| <div class="header"> |
| <div class="summary"> |
| <a href="#nested-classes">Classes</a> | |
| <a href="#pub-methods">Public Member Functions</a> | |
| <a href="classpaimon_1_1_memory_pool-members.html">List of all members</a> </div> |
| <div class="headertitle"><div class="title">paimon::MemoryPool Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div></div> |
| </div><!--header--> |
| <div class="contents"> |
| |
| <p>Abstract base class for memory pool implementations that provides controlled memory management. |
| <a href="classpaimon_1_1_memory_pool.html#details">More...</a></p> |
| |
| <p><code>#include <<a class="el" href="memory__pool_8h_source.html">/home/runner/work/paimon-cpp/paimon-cpp/include/paimon/memory/memory_pool.h</a>></code></p> |
| <table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a> |
| Classes</h2></td></tr> |
| <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_memory_pool_1_1_allocator_delete.html">AllocatorDelete</a></td></tr> |
| <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Custom deleter for use with std::unique_ptr that integrates with memory pools. <a href="classpaimon_1_1_memory_pool_1_1_allocator_delete.html#details">More...</a><br /></td></tr> |
| <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> |
| </table><table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a> |
| Public Member Functions</h2></td></tr> |
| <tr class="memitem:a4435d02cf128290cafb8d8c858e4525f" id="r_a4435d02cf128290cafb8d8c858e4525f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">virtual</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_memory_pool.html#a4435d02cf128290cafb8d8c858e4525f">~MemoryPool</a> ()=<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">default</a></td></tr> |
| <tr class="separator:a4435d02cf128290cafb8d8c858e4525f"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a6df2efb77c2de09c69d3e1d2e254f91b" id="r_a6df2efb77c2de09c69d3e1d2e254f91b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpaimon_1_1_memory_pool.html">MemoryPool</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_memory_pool.html#a6df2efb77c2de09c69d3e1d2e254f91b">operator=</a> (<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> <a class="el" href="classpaimon_1_1_memory_pool.html">MemoryPool</a> &<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">other</a>)=<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">delete</a></td></tr> |
| <tr class="separator:a6df2efb77c2de09c69d3e1d2e254f91b"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a6a017f751b12c3d6b7a545b2836e7314" id="r_a6a017f751b12c3d6b7a545b2836e7314"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpaimon_1_1_memory_pool.html">MemoryPool</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_memory_pool.html#a6a017f751b12c3d6b7a545b2836e7314">operator=</a> (<a class="el" href="classpaimon_1_1_memory_pool.html">MemoryPool</a> &<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">other</a>)=<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">delete</a></td></tr> |
| <tr class="separator:a6a017f751b12c3d6b7a545b2836e7314"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a4cda413e13079d73915d8898920e942b" id="r_a4cda413e13079d73915d8898920e942b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpaimon_1_1_memory_pool.html">MemoryPool</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_memory_pool.html#a4cda413e13079d73915d8898920e942b">operator=</a> (<a class="el" href="classpaimon_1_1_memory_pool.html">MemoryPool</a> &&<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">other</a>)=<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">delete</a></td></tr> |
| <tr class="separator:a4cda413e13079d73915d8898920e942b"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a9468e0ed21976e12baec04a429b14093" id="r_a9468e0ed21976e12baec04a429b14093"><td class="memItemLeft" align="right" valign="top"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">virtual</a> <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">void</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_memory_pool.html#a9468e0ed21976e12baec04a429b14093">Malloc</a> (<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint64_t</a> size, <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint64_t</a> <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">alignment</a>=0)=0</td></tr> |
| <tr class="memdesc:a9468e0ed21976e12baec04a429b14093"><td class="mdescLeft"> </td><td class="mdescRight">Allocate memory from the pool. <br /></td></tr> |
| <tr class="separator:a9468e0ed21976e12baec04a429b14093"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a55a75ddd27b62957c8958f9504451a8d" id="r_a55a75ddd27b62957c8958f9504451a8d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">virtual</a> <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">void</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_memory_pool.html#a55a75ddd27b62957c8958f9504451a8d">Realloc</a> (<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">void</a> *<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">p</a>, <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">size_t</a> <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">old_size</a>, <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">size_t</a> <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">new_size</a>, <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint64_t</a> <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">alignment</a>=0)=0</td></tr> |
| <tr class="memdesc:a55a75ddd27b62957c8958f9504451a8d"><td class="mdescLeft"> </td><td class="mdescRight">Reallocate memory to a new size. <br /></td></tr> |
| <tr class="separator:a55a75ddd27b62957c8958f9504451a8d"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a448b0754687971d7c6e8c402a2ea259c" id="r_a448b0754687971d7c6e8c402a2ea259c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">virtual</a> <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">void</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_memory_pool.html#a448b0754687971d7c6e8c402a2ea259c">Free</a> (<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">void</a> *<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">p</a>, <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint64_t</a> size)=0</td></tr> |
| <tr class="memdesc:a448b0754687971d7c6e8c402a2ea259c"><td class="mdescLeft"> </td><td class="mdescRight">Deallocate memory back to the pool. <br /></td></tr> |
| <tr class="separator:a448b0754687971d7c6e8c402a2ea259c"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a25dce4141391e92529554285cf5d8a56" id="r_a25dce4141391e92529554285cf5d8a56"><td class="memItemLeft" align="right" valign="top"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">virtual</a> <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">void</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_memory_pool.html#a25dce4141391e92529554285cf5d8a56">Free</a> (<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">void</a> *<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">p</a>, <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint64_t</a> size, <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint64_t</a> <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">alignment</a>)</td></tr> |
| <tr class="memdesc:a25dce4141391e92529554285cf5d8a56"><td class="mdescLeft"> </td><td class="mdescRight">Deallocate memory back to the pool with specified alignment. <br /></td></tr> |
| <tr class="separator:a25dce4141391e92529554285cf5d8a56"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ac3c1883dd08f8fe6cde59dc0c065ec3c" id="r_ac3c1883dd08f8fe6cde59dc0c065ec3c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">virtual</a> <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint64_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_memory_pool.html#ac3c1883dd08f8fe6cde59dc0c065ec3c">CurrentUsage</a> () <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> =0</td></tr> |
| <tr class="memdesc:ac3c1883dd08f8fe6cde59dc0c065ec3c"><td class="mdescLeft"> </td><td class="mdescRight">Get current memory usage. <br /></td></tr> |
| <tr class="separator:ac3c1883dd08f8fe6cde59dc0c065ec3c"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a1cdf31515d6770fb9874efbf6945d47d" id="r_a1cdf31515d6770fb9874efbf6945d47d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">virtual</a> <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint64_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_memory_pool.html#a1cdf31515d6770fb9874efbf6945d47d">MaxMemoryUsage</a> () <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> =0</td></tr> |
| <tr class="memdesc:a1cdf31515d6770fb9874efbf6945d47d"><td class="mdescLeft"> </td><td class="mdescRight">Get peak memory usage. <br /></td></tr> |
| <tr class="separator:a1cdf31515d6770fb9874efbf6945d47d"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a3c53c16dd1878e1838699367bcffaed8" id="r_a3c53c16dd1878e1838699367bcffaed8"><td class="memTemplParams" colspan="2">template<<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">typename</a> <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">T</a> , typename... Args> </td></tr> |
| <tr class="memitem:a3c53c16dd1878e1838699367bcffaed8"><td class="memTemplItemLeft" align="right" valign="top">std::unique_ptr< <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">T</a>, <a class="el" href="classpaimon_1_1_memory_pool_1_1_allocator_delete.html">AllocatorDelete</a>< <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">T</a> > > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpaimon_1_1_memory_pool.html#a3c53c16dd1878e1838699367bcffaed8">AllocateUnique</a> (<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">Args</a> &&... <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">args</a>)</td></tr> |
| <tr class="memdesc:a3c53c16dd1878e1838699367bcffaed8"><td class="mdescLeft"> </td><td class="mdescRight">Allocate an object on the pool and return a unique_ptr with custom deleter. <br /></td></tr> |
| <tr class="separator:a3c53c16dd1878e1838699367bcffaed8"><td class="memSeparator" colspan="2"> </td></tr> |
| </table> |
| <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> |
| <div class="textblock"><p>Abstract base class for memory pool implementations that provides controlled memory management. </p> |
| </div><h2 class="groupheader">Constructor & Destructor Documentation</h2> |
| <a id="a4435d02cf128290cafb8d8c858e4525f" name="a4435d02cf128290cafb8d8c858e4525f"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a4435d02cf128290cafb8d8c858e4525f">◆ </a></span>~MemoryPool()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">virtual</a> paimon::MemoryPool::~MemoryPool </td> |
| <td>(</td> |
| <td class="paramname"></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">virtual</span><span class="mlabel">default</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <h2 class="groupheader">Member Function Documentation</h2> |
| <a id="a6df2efb77c2de09c69d3e1d2e254f91b" name="a6df2efb77c2de09c69d3e1d2e254f91b"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a6df2efb77c2de09c69d3e1d2e254f91b">◆ </a></span>operator=() <span class="overload">[1/3]</span></h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classpaimon_1_1_memory_pool.html">MemoryPool</a> & paimon::MemoryPool::operator= </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">const</a> <a class="el" href="classpaimon_1_1_memory_pool.html">MemoryPool</a> & </td> |
| <td class="paramname"><em>other</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">delete</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a id="a6a017f751b12c3d6b7a545b2836e7314" name="a6a017f751b12c3d6b7a545b2836e7314"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a6a017f751b12c3d6b7a545b2836e7314">◆ </a></span>operator=() <span class="overload">[2/3]</span></h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classpaimon_1_1_memory_pool.html">MemoryPool</a> & paimon::MemoryPool::operator= </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="classpaimon_1_1_memory_pool.html">MemoryPool</a> & </td> |
| <td class="paramname"><em>other</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">delete</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a id="a4cda413e13079d73915d8898920e942b" name="a4cda413e13079d73915d8898920e942b"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a4cda413e13079d73915d8898920e942b">◆ </a></span>operator=() <span class="overload">[3/3]</span></h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classpaimon_1_1_memory_pool.html">MemoryPool</a> & paimon::MemoryPool::operator= </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="classpaimon_1_1_memory_pool.html">MemoryPool</a> && </td> |
| <td class="paramname"><em>other</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">delete</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| </div> |
| </div> |
| <a id="a9468e0ed21976e12baec04a429b14093" name="a9468e0ed21976e12baec04a429b14093"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a9468e0ed21976e12baec04a429b14093">◆ </a></span>Malloc()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">virtual</a> <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">void</a> * paimon::MemoryPool::Malloc </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint64_t</a> </td> |
| <td class="paramname"><em>size</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint64_t</a> </td> |
| <td class="paramname"><em>alignment</em> = <code>0</code> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Allocate memory from the pool. </p> |
| <p>Allocates a block of memory with the specified size and alignment. The returned memory is uninitialized and must be properly constructed before use.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">size</td><td>Number of bytes to allocate. </td></tr> |
| <tr><td class="paramname">alignment</td><td>Memory alignment requirement (0 for default alignment). </td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Pointer to allocated memory. </dd></dl> |
| <dl class="exception"><dt>Exceptions</dt><dd> |
| <table class="exception"> |
| <tr><td class="paramname">std::bad_alloc</td><td>if the allocation fails. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="a55a75ddd27b62957c8958f9504451a8d" name="a55a75ddd27b62957c8958f9504451a8d"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a55a75ddd27b62957c8958f9504451a8d">◆ </a></span>Realloc()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">virtual</a> <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">void</a> * paimon::MemoryPool::Realloc </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">void</a> * </td> |
| <td class="paramname"><em>p</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">size_t</a> </td> |
| <td class="paramname"><em>old_size</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">size_t</a> </td> |
| <td class="paramname"><em>new_size</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint64_t</a> </td> |
| <td class="paramname"><em>alignment</em> = <code>0</code> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Reallocate memory to a new size. </p> |
| <p>Changes the size of a previously allocated memory block. The contents of the memory block are preserved up to the minimum of the old and new sizes.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">p</td><td>Pointer to the memory block to reallocate. </td></tr> |
| <tr><td class="paramname">old_size</td><td>Current size of the memory block. </td></tr> |
| <tr><td class="paramname">new_size</td><td>New desired size of the memory block. </td></tr> |
| <tr><td class="paramname">alignment</td><td>Memory alignment requirement (0 for default alignment). </td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Pointer to the reallocated memory block. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="a448b0754687971d7c6e8c402a2ea259c" name="a448b0754687971d7c6e8c402a2ea259c"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a448b0754687971d7c6e8c402a2ea259c">◆ </a></span>Free() <span class="overload">[1/2]</span></h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">virtual</a> <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">void</a> paimon::MemoryPool::Free </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">void</a> * </td> |
| <td class="paramname"><em>p</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint64_t</a> </td> |
| <td class="paramname"><em>size</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Deallocate memory back to the pool. </p> |
| <p>Releases a previously allocated memory block back to the pool. The size must match the size used during allocation. The alignment used during allocation is not provided, subclass should store it by themselves if needed.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">p</td><td>Pointer to the memory block to deallocate. </td></tr> |
| <tr><td class="paramname">size</td><td>Size of the memory block (must match allocation size). </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="a25dce4141391e92529554285cf5d8a56" name="a25dce4141391e92529554285cf5d8a56"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a25dce4141391e92529554285cf5d8a56">◆ </a></span>Free() <span class="overload">[2/2]</span></h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">virtual</a> <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">void</a> paimon::MemoryPool::Free </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">void</a> * </td> |
| <td class="paramname"><em>p</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint64_t</a> </td> |
| <td class="paramname"><em>size</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint64_t</a> </td> |
| <td class="paramname"><em>alignment</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Deallocate memory back to the pool with specified alignment. </p> |
| <p>Releases a previously allocated memory block back to the pool. The size and alignment must match the values used during allocation. Subclass can override this method to optimize deallocation based on alignment.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">p</td><td>Pointer to the memory block to deallocate. </td></tr> |
| <tr><td class="paramname">size</td><td>Size of the memory block (must match allocation size). </td></tr> |
| <tr><td class="paramname">alignment</td><td>Alignment of the memory block (must match allocation alignment). </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ac3c1883dd08f8fe6cde59dc0c065ec3c" name="ac3c1883dd08f8fe6cde59dc0c065ec3c"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ac3c1883dd08f8fe6cde59dc0c065ec3c">◆ </a></span>CurrentUsage()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">virtual</a> <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint64_t</a> paimon::MemoryPool::CurrentUsage </td> |
| <td>(</td> |
| <td class="paramname"></td><td>)</td> |
| <td> const</td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Get current memory usage. </p> |
| <p>Returns the amount of memory currently allocated from this pool. This includes all outstanding allocations that have not been freed.</p> |
| <dl class="section return"><dt>Returns</dt><dd>Current memory usage in bytes. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="a1cdf31515d6770fb9874efbf6945d47d" name="a1cdf31515d6770fb9874efbf6945d47d"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a1cdf31515d6770fb9874efbf6945d47d">◆ </a></span>MaxMemoryUsage()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">virtual</a> <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">uint64_t</a> paimon::MemoryPool::MaxMemoryUsage </td> |
| <td>(</td> |
| <td class="paramname"></td><td>)</td> |
| <td> const</td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Get peak memory usage. </p> |
| <p>Returns the maximum amount of memory that has been allocated from this pool at any point in time since its creation.</p> |
| <dl class="section return"><dt>Returns</dt><dd>Peak memory usage in bytes. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="a3c53c16dd1878e1838699367bcffaed8" name="a3c53c16dd1878e1838699367bcffaed8"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a3c53c16dd1878e1838699367bcffaed8">◆ </a></span>AllocateUnique()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <div class="memtemplate"> |
| template<<a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">typename</a> <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">T</a> , typename... Args> </div> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">std::unique_ptr< <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">T</a>, <a class="el" href="classpaimon_1_1_memory_pool_1_1_allocator_delete.html">AllocatorDelete</a>< <a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">T</a> > > paimon::MemoryPool::AllocateUnique </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="memory__pool_8h.html#a147ba4ba34a215b3a4f3a95c1ee11704">Args</a> &&... </td> |
| <td class="paramname"><em>args</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">inline</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Allocate an object on the pool and return a unique_ptr with custom deleter. </p> |
| <p>This method provides a convenient way to allocate objects that are automatically managed by the memory pool. The returned unique_ptr will automatically deallocate the memory through the pool when it goes out of scope.</p> |
| <dl class="tparams"><dt>Template Parameters</dt><dd> |
| <table class="tparams"> |
| <tr><td class="paramname">T</td><td>Type of object to allocate. </td></tr> |
| <tr><td class="paramname">Args</td><td>Types of constructor arguments. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">args</td><td>Constructor arguments to forward to T's constructor. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>unique_ptr managing the allocated object with pool-aware deleter. </dd></dl> |
| |
| </div> |
| </div> |
| <hr/>The documentation for this class was generated from the following file:<ul> |
| <li>/home/runner/work/paimon-cpp/paimon-cpp/include/paimon/memory/<a class="el" href="memory__pool_8h_source.html">memory_pool.h</a></li> |
| </ul> |
| </div><!-- contents --> |
| <!-- start footer part --> |
| <hr class="footer"/><address class="footer"><small> |
| Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 |
| </small></address> |
| </body> |
| </html> |