Files
entt/classentt_1_1ResourceCache.html
2018-05-30 22:49:40 +02:00

617 lines
34 KiB
HTML

<!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"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>entt: entt::ResourceCache&lt; Resource &gt; Class Template 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 style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">entt
&#160;<span id="projectnumber">2.6.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceentt.html">entt</a></li><li class="navelem"><a class="el" href="classentt_1_1ResourceCache.html">ResourceCache</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classentt_1_1ResourceCache-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">entt::ResourceCache&lt; Resource &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Simple cache for resources of a given type.
<a href="classentt_1_1ResourceCache.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="cache_8hpp_source.html">cache.hpp</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a439daf6009e24ae40b1d7689c60ead48"><td class="memItemLeft" align="right" valign="top"><a id="a439daf6009e24ae40b1d7689c60ead48"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1ResourceCache.html#a439daf6009e24ae40b1d7689c60ead48">size_type</a> = typename container_type::size_type</td></tr>
<tr class="memdesc:a439daf6009e24ae40b1d7689c60ead48"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned integer type. <br /></td></tr>
<tr class="separator:a439daf6009e24ae40b1d7689c60ead48"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4936da93a62827d8c5fc04ac444e5456"><td class="memItemLeft" align="right" valign="top"><a id="a4936da93a62827d8c5fc04ac444e5456"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1ResourceCache.html#a4936da93a62827d8c5fc04ac444e5456">resource_type</a> = <a class="el" href="classentt_1_1HashedString.html">HashedString</a></td></tr>
<tr class="memdesc:a4936da93a62827d8c5fc04ac444e5456"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of resources managed by a cache. <br /></td></tr>
<tr class="separator:a4936da93a62827d8c5fc04ac444e5456"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aaeb4613b842a5d0861585e024af0a41d"><td class="memItemLeft" align="right" valign="top"><a id="aaeb4613b842a5d0861585e024af0a41d"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1ResourceCache.html#aaeb4613b842a5d0861585e024af0a41d">ResourceCache</a> ()=default</td></tr>
<tr class="memdesc:aaeb4613b842a5d0861585e024af0a41d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor. <br /></td></tr>
<tr class="separator:aaeb4613b842a5d0861585e024af0a41d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4dbd37c3c1a703b684b6122a59a0b3a7"><td class="memItemLeft" align="right" valign="top"><a id="a4dbd37c3c1a703b684b6122a59a0b3a7"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1ResourceCache.html#a4dbd37c3c1a703b684b6122a59a0b3a7">ResourceCache</a> (const <a class="el" href="classentt_1_1ResourceCache.html">ResourceCache</a> &amp;) ENTT_NOEXCEPT=delete</td></tr>
<tr class="memdesc:a4dbd37c3c1a703b684b6122a59a0b3a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copying a cache isn't allowed. <br /></td></tr>
<tr class="separator:a4dbd37c3c1a703b684b6122a59a0b3a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86dde6d7190adbb13d8472424f6e8bca"><td class="memItemLeft" align="right" valign="top"><a id="a86dde6d7190adbb13d8472424f6e8bca"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1ResourceCache.html#a86dde6d7190adbb13d8472424f6e8bca">ResourceCache</a> (<a class="el" href="classentt_1_1ResourceCache.html">ResourceCache</a> &amp;&amp;) ENTT_NOEXCEPT=default</td></tr>
<tr class="memdesc:a86dde6d7190adbb13d8472424f6e8bca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default move constructor. <br /></td></tr>
<tr class="separator:a86dde6d7190adbb13d8472424f6e8bca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe56c919c4a2606f87d7d8351261a0e8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1ResourceCache.html">ResourceCache</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1ResourceCache.html#abe56c919c4a2606f87d7d8351261a0e8">operator=</a> (const <a class="el" href="classentt_1_1ResourceCache.html">ResourceCache</a> &amp;) ENTT_NOEXCEPT=delete</td></tr>
<tr class="memdesc:abe56c919c4a2606f87d7d8351261a0e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copying a cache isn't allowed. <a href="#abe56c919c4a2606f87d7d8351261a0e8">More...</a><br /></td></tr>
<tr class="separator:abe56c919c4a2606f87d7d8351261a0e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a18ddc0a0bae71d8124d775d9ddebc550"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1ResourceCache.html">ResourceCache</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1ResourceCache.html#a18ddc0a0bae71d8124d775d9ddebc550">operator=</a> (<a class="el" href="classentt_1_1ResourceCache.html">ResourceCache</a> &amp;&amp;) ENTT_NOEXCEPT=default</td></tr>
<tr class="memdesc:a18ddc0a0bae71d8124d775d9ddebc550"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default move assignment operator. <a href="#a18ddc0a0bae71d8124d775d9ddebc550">More...</a><br /></td></tr>
<tr class="separator:a18ddc0a0bae71d8124d775d9ddebc550"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1fb9767a303a85f09497751a7d70623f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1ResourceCache.html#a439daf6009e24ae40b1d7689c60ead48">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1ResourceCache.html#a1fb9767a303a85f09497751a7d70623f">size</a> () const ENTT_NOEXCEPT</td></tr>
<tr class="memdesc:a1fb9767a303a85f09497751a7d70623f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of resources managed by a cache. <a href="#a1fb9767a303a85f09497751a7d70623f">More...</a><br /></td></tr>
<tr class="separator:a1fb9767a303a85f09497751a7d70623f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a03f2f3c02e84ec7f5825fe415c3f1cdb"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1ResourceCache.html#a03f2f3c02e84ec7f5825fe415c3f1cdb">empty</a> () const ENTT_NOEXCEPT</td></tr>
<tr class="memdesc:a03f2f3c02e84ec7f5825fe415c3f1cdb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if a cache contains no resources, false otherwise. <a href="#a03f2f3c02e84ec7f5825fe415c3f1cdb">More...</a><br /></td></tr>
<tr class="separator:a03f2f3c02e84ec7f5825fe415c3f1cdb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ab70500ad42f8bd565ce1c379f472b4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1ResourceCache.html#a9ab70500ad42f8bd565ce1c379f472b4">clear</a> () ENTT_NOEXCEPT</td></tr>
<tr class="memdesc:a9ab70500ad42f8bd565ce1c379f472b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears a cache and discards all its resources. <a href="#a9ab70500ad42f8bd565ce1c379f472b4">More...</a><br /></td></tr>
<tr class="separator:a9ab70500ad42f8bd565ce1c379f472b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12155caf98459157ed5dbf3b3c4d545f"><td class="memTemplParams" colspan="2">template&lt;typename Loader , typename... Args&gt; </td></tr>
<tr class="memitem:a12155caf98459157ed5dbf3b3c4d545f"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1ResourceCache.html#a12155caf98459157ed5dbf3b3c4d545f">load</a> (const <a class="el" href="classentt_1_1ResourceCache.html#a4936da93a62827d8c5fc04ac444e5456">resource_type</a> id, Args &amp;&amp;... args)</td></tr>
<tr class="memdesc:a12155caf98459157ed5dbf3b3c4d545f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads the resource that corresponds to a given identifier. <a href="#a12155caf98459157ed5dbf3b3c4d545f">More...</a><br /></td></tr>
<tr class="separator:a12155caf98459157ed5dbf3b3c4d545f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afaa3e5a964e1f04ea0c2c86adb7b4fbd"><td class="memTemplParams" colspan="2">template&lt;typename Loader , typename... Args&gt; </td></tr>
<tr class="memitem:afaa3e5a964e1f04ea0c2c86adb7b4fbd"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1ResourceCache.html#afaa3e5a964e1f04ea0c2c86adb7b4fbd">reload</a> (const <a class="el" href="classentt_1_1ResourceCache.html#a4936da93a62827d8c5fc04ac444e5456">resource_type</a> id, Args &amp;&amp;... args)</td></tr>
<tr class="memdesc:afaa3e5a964e1f04ea0c2c86adb7b4fbd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reloads a resource or loads it for the first time if not present. <a href="#afaa3e5a964e1f04ea0c2c86adb7b4fbd">More...</a><br /></td></tr>
<tr class="separator:afaa3e5a964e1f04ea0c2c86adb7b4fbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00ad6d9478d2f6721f0a846b49adec07"><td class="memTemplParams" colspan="2">template&lt;typename Loader , typename... Args&gt; </td></tr>
<tr class="memitem:a00ad6d9478d2f6721f0a846b49adec07"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1ResourceHandle.html">ResourceHandle</a>&lt; Resource &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1ResourceCache.html#a00ad6d9478d2f6721f0a846b49adec07">temp</a> (Args &amp;&amp;... args) const</td></tr>
<tr class="memdesc:a00ad6d9478d2f6721f0a846b49adec07"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a temporary handle for a resource. <a href="#a00ad6d9478d2f6721f0a846b49adec07">More...</a><br /></td></tr>
<tr class="separator:a00ad6d9478d2f6721f0a846b49adec07"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d7348dc398645962d9993905ea8709f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1ResourceHandle.html">ResourceHandle</a>&lt; Resource &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1ResourceCache.html#a8d7348dc398645962d9993905ea8709f">handle</a> (const <a class="el" href="classentt_1_1ResourceCache.html#a4936da93a62827d8c5fc04ac444e5456">resource_type</a> id) const</td></tr>
<tr class="memdesc:a8d7348dc398645962d9993905ea8709f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a handle for a given resource identifier. <a href="#a8d7348dc398645962d9993905ea8709f">More...</a><br /></td></tr>
<tr class="separator:a8d7348dc398645962d9993905ea8709f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa133ec347db1ee8fab5d757b8b24a185"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1ResourceCache.html#aa133ec347db1ee8fab5d757b8b24a185">contains</a> (const <a class="el" href="classentt_1_1ResourceCache.html#a4936da93a62827d8c5fc04ac444e5456">resource_type</a> id) const ENTT_NOEXCEPT</td></tr>
<tr class="memdesc:aa133ec347db1ee8fab5d757b8b24a185"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if a cache contains a given identifier. <a href="#aa133ec347db1ee8fab5d757b8b24a185">More...</a><br /></td></tr>
<tr class="separator:aa133ec347db1ee8fab5d757b8b24a185"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a771ee2c8c203eb018731e7914afbe5fa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1ResourceCache.html#a771ee2c8c203eb018731e7914afbe5fa">discard</a> (const <a class="el" href="classentt_1_1ResourceCache.html#a4936da93a62827d8c5fc04ac444e5456">resource_type</a> id) ENTT_NOEXCEPT</td></tr>
<tr class="memdesc:a771ee2c8c203eb018731e7914afbe5fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Discards the resource that corresponds to a given identifier. <a href="#a771ee2c8c203eb018731e7914afbe5fa">More...</a><br /></td></tr>
<tr class="separator:a771ee2c8c203eb018731e7914afbe5fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename Resource&gt;<br />
class entt::ResourceCache&lt; Resource &gt;</h3>
<p>Simple cache for resources of a given type. </p>
<p>Minimal implementation of a cache for resources of a given type. It doesn't offer much functionalities but it's suitable for small or medium sized applications and can be freely inherited to add targeted functionalities for large sized applications.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Resource</td><td>Type of resources managed by a cache. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="cache_8hpp_source.html#l00029">29</a> of file <a class="el" href="cache_8hpp_source.html">cache.hpp</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a9ab70500ad42f8bd565ce1c379f472b4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9ab70500ad42f8bd565ce1c379f472b4">&#9670;&nbsp;</a></span>clear()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Resource &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classentt_1_1ResourceCache.html">entt::ResourceCache</a>&lt; Resource &gt;::clear </td>
<td>(</td>
<td class="paramname"></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>Clears a cache and discards all its resources. </p>
<p>Handles are not invalidated and the memory used by a resource isn't freed as long as at least a handle keeps the resource itself alive. </p>
<p class="definition">Definition at line <a class="el" href="cache_8hpp_source.html#l00073">73</a> of file <a class="el" href="cache_8hpp_source.html">cache.hpp</a>.</p>
</div>
</div>
<a id="aa133ec347db1ee8fab5d757b8b24a185"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa133ec347db1ee8fab5d757b8b24a185">&#9670;&nbsp;</a></span>contains()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Resource &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classentt_1_1ResourceCache.html">entt::ResourceCache</a>&lt; Resource &gt;::contains </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1ResourceCache.html#a4936da93a62827d8c5fc04ac444e5456">resource_type</a>&#160;</td>
<td class="paramname"><em>id</em></td><td>)</td>
<td> const</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>Checks if a cache contains a given identifier. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">id</td><td>Unique resource identifier. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the cache contains the resource, false otherwise. </dd></dl>
<p class="definition">Definition at line <a class="el" href="cache_8hpp_source.html#l00173">173</a> of file <a class="el" href="cache_8hpp_source.html">cache.hpp</a>.</p>
</div>
</div>
<a id="a771ee2c8c203eb018731e7914afbe5fa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a771ee2c8c203eb018731e7914afbe5fa">&#9670;&nbsp;</a></span>discard()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Resource &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classentt_1_1ResourceCache.html">entt::ResourceCache</a>&lt; Resource &gt;::discard </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1ResourceCache.html#a4936da93a62827d8c5fc04ac444e5456">resource_type</a>&#160;</td>
<td class="paramname"><em>id</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>Discards the resource that corresponds to a given identifier. </p>
<p>Handles are not invalidated and the memory used by the resource isn't freed as long as at least a handle keeps the resource itself alive.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">id</td><td>Unique resource identifier. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="cache_8hpp_source.html#l00185">185</a> of file <a class="el" href="cache_8hpp_source.html">cache.hpp</a>.</p>
</div>
</div>
<a id="a03f2f3c02e84ec7f5825fe415c3f1cdb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a03f2f3c02e84ec7f5825fe415c3f1cdb">&#9670;&nbsp;</a></span>empty()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Resource &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classentt_1_1ResourceCache.html">entt::ResourceCache</a>&lt; Resource &gt;::empty </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">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true if a cache contains no resources, false otherwise. </p>
<dl class="section return"><dt>Returns</dt><dd>True if the cache contains no resources, false otherwise. </dd></dl>
<p class="definition">Definition at line <a class="el" href="cache_8hpp_source.html#l00063">63</a> of file <a class="el" href="cache_8hpp_source.html">cache.hpp</a>.</p>
</div>
</div>
<a id="a8d7348dc398645962d9993905ea8709f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8d7348dc398645962d9993905ea8709f">&#9670;&nbsp;</a></span>handle()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Resource &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1ResourceHandle.html">ResourceHandle</a>&lt;Resource&gt; <a class="el" href="classentt_1_1ResourceCache.html">entt::ResourceCache</a>&lt; Resource &gt;::handle </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1ResourceCache.html#a4936da93a62827d8c5fc04ac444e5456">resource_type</a>&#160;</td>
<td class="paramname"><em>id</em></td><td>)</td>
<td> const</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>Creates a handle for a given resource identifier. </p>
<p>A resource handle can be in a either valid or invalid state. In other terms, a resource handle is properly initialized with a resource if the cache contains the resource itself. Otherwise the returned handle is uninitialized and accessing it results in undefined behavior.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classentt_1_1ResourceHandle.html" title="Shared resource handle. ">ResourceHandle</a></dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">id</td><td>Unique resource identifier. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A handle for the given resource. </dd></dl>
<p class="definition">Definition at line <a class="el" href="cache_8hpp_source.html#l00163">163</a> of file <a class="el" href="cache_8hpp_source.html">cache.hpp</a>.</p>
</div>
</div>
<a id="a12155caf98459157ed5dbf3b3c4d545f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a12155caf98459157ed5dbf3b3c4d545f">&#9670;&nbsp;</a></span>load()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Resource &gt; </div>
<div class="memtemplate">
template&lt;typename Loader , typename... Args&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classentt_1_1ResourceCache.html">entt::ResourceCache</a>&lt; Resource &gt;::load </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1ResourceCache.html#a4936da93a62827d8c5fc04ac444e5456">resource_type</a>&#160;</td>
<td class="paramname"><em>id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Args &amp;&amp;...&#160;</td>
<td class="paramname"><em>args</em>&#160;</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> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Loads the resource that corresponds to a given identifier. </p>
<p>In case an identifier isn't already present in the cache, it loads its resource and stores it aside for future uses. Arguments are forwarded directly to the loader in order to construct properly the requested resource.</p>
<dl class="section note"><dt>Note</dt><dd>If the identifier is already present in the cache, this function does nothing and the arguments are simply discarded.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Loader</td><td>Type of loader to use to load the resource if required. </td></tr>
<tr><td class="paramname">Args</td><td>Types of arguments to use to load the resource if required. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">id</td><td>Unique resource identifier. </td></tr>
<tr><td class="paramname">args</td><td>Arguments to use to load the resource if required. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the resource is ready to use, false otherwise. </dd></dl>
<p class="definition">Definition at line <a class="el" href="cache_8hpp_source.html#l00096">96</a> of file <a class="el" href="cache_8hpp_source.html">cache.hpp</a>.</p>
</div>
</div>
<a id="abe56c919c4a2606f87d7d8351261a0e8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abe56c919c4a2606f87d7d8351261a0e8">&#9670;&nbsp;</a></span>operator=() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Resource &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1ResourceCache.html">ResourceCache</a>&amp; <a class="el" href="classentt_1_1ResourceCache.html">entt::ResourceCache</a>&lt; Resource &gt;::operator= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1ResourceCache.html">ResourceCache</a>&lt; Resource &gt; &amp;&#160;</td>
<td class="paramname"></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">
<p>Copying a cache isn't allowed. </p>
<dl class="section return"><dt>Returns</dt><dd>This cache. </dd></dl>
</div>
</div>
<a id="a18ddc0a0bae71d8124d775d9ddebc550"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a18ddc0a0bae71d8124d775d9ddebc550">&#9670;&nbsp;</a></span>operator=() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Resource &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1ResourceCache.html">ResourceCache</a>&amp; <a class="el" href="classentt_1_1ResourceCache.html">entt::ResourceCache</a>&lt; Resource &gt;::operator= </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classentt_1_1ResourceCache.html">ResourceCache</a>&lt; Resource &gt; &amp;&amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Default move assignment operator. </p>
<dl class="section return"><dt>Returns</dt><dd>This cache. </dd></dl>
</div>
</div>
<a id="afaa3e5a964e1f04ea0c2c86adb7b4fbd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afaa3e5a964e1f04ea0c2c86adb7b4fbd">&#9670;&nbsp;</a></span>reload()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Resource &gt; </div>
<div class="memtemplate">
template&lt;typename Loader , typename... Args&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classentt_1_1ResourceCache.html">entt::ResourceCache</a>&lt; Resource &gt;::reload </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1ResourceCache.html#a4936da93a62827d8c5fc04ac444e5456">resource_type</a>&#160;</td>
<td class="paramname"><em>id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Args &amp;&amp;...&#160;</td>
<td class="paramname"><em>args</em>&#160;</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> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reloads a resource or loads it for the first time if not present. </p>
<p>Equivalent to the following snippet (pseudocode):</p>
<div class="fragment"><div class="line">cache.discard(<span class="keywordtype">id</span>);</div><div class="line">cache.load(<span class="keywordtype">id</span>, args...);</div></div><!-- fragment --><p>Arguments are forwarded directly to the loader in order to construct properly the requested resource.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Loader</td><td>Type of loader to use to load the resource. </td></tr>
<tr><td class="paramname">Args</td><td>Types of arguments to use to load the resource. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">id</td><td>Unique resource identifier. </td></tr>
<tr><td class="paramname">args</td><td>Arguments to use to load the resource. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the resource is ready to use, false otherwise. </dd></dl>
<p class="definition">Definition at line <a class="el" href="cache_8hpp_source.html#l00129">129</a> of file <a class="el" href="cache_8hpp_source.html">cache.hpp</a>.</p>
</div>
</div>
<a id="a1fb9767a303a85f09497751a7d70623f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1fb9767a303a85f09497751a7d70623f">&#9670;&nbsp;</a></span>size()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Resource &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1ResourceCache.html#a439daf6009e24ae40b1d7689c60ead48">size_type</a> <a class="el" href="classentt_1_1ResourceCache.html">entt::ResourceCache</a>&lt; Resource &gt;::size </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">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Number of resources managed by a cache. </p>
<dl class="section return"><dt>Returns</dt><dd>Number of resources currently stored. </dd></dl>
<p class="definition">Definition at line <a class="el" href="cache_8hpp_source.html#l00055">55</a> of file <a class="el" href="cache_8hpp_source.html">cache.hpp</a>.</p>
</div>
</div>
<a id="a00ad6d9478d2f6721f0a846b49adec07"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a00ad6d9478d2f6721f0a846b49adec07">&#9670;&nbsp;</a></span>temp()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Resource &gt; </div>
<div class="memtemplate">
template&lt;typename Loader , typename... Args&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1ResourceHandle.html">ResourceHandle</a>&lt;Resource&gt; <a class="el" href="classentt_1_1ResourceCache.html">entt::ResourceCache</a>&lt; Resource &gt;::temp </td>
<td>(</td>
<td class="paramtype">Args &amp;&amp;...&#160;</td>
<td class="paramname"><em>args</em></td><td>)</td>
<td> const</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>Creates a temporary handle for a resource. </p>
<p>Arguments are forwarded directly to the loader in order to construct properly the requested resource. The handle isn't stored aside and the cache isn't in charge of the lifetime of the resource itself.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Loader</td><td>Type of loader to use to load the resource. </td></tr>
<tr><td class="paramname">Args</td><td>Types of arguments to use to load the resource. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">args</td><td>Arguments to use to load the resource. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A handle for the given resource. </dd></dl>
<p class="definition">Definition at line <a class="el" href="cache_8hpp_source.html#l00146">146</a> of file <a class="el" href="cache_8hpp_source.html">cache.hpp</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/entt/resource/<a class="el" href="cache_8hpp_source.html">cache.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>