Files
entt/classentt_1_1ContinuousLoader.html
2018-06-04 08:58:07 +02:00

634 lines
36 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::ContinuousLoader&lt; Entity &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.1</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_1ContinuousLoader.html">ContinuousLoader</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_1ContinuousLoader-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">entt::ContinuousLoader&lt; Entity &gt; Class Template Reference<span class="mlabels"><span class="mlabel">final</span></span></div> </div>
</div><!--header-->
<div class="contents">
<p>Utility class for <em>continuous loading</em>.
<a href="classentt_1_1ContinuousLoader.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="snapshot_8hpp_source.html">snapshot.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:ae2ddecfaeb16ddbf340b6ca643036c6f"><td class="memItemLeft" align="right" valign="top"><a id="ae2ddecfaeb16ddbf340b6ca643036c6f"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1ContinuousLoader.html#ae2ddecfaeb16ddbf340b6ca643036c6f">entity_type</a> = Entity</td></tr>
<tr class="memdesc:ae2ddecfaeb16ddbf340b6ca643036c6f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Underlying entity identifier. <br /></td></tr>
<tr class="separator:ae2ddecfaeb16ddbf340b6ca643036c6f"><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:a26ccd96f9ee4219ad7e3d1b8138ade37"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1ContinuousLoader.html#a26ccd96f9ee4219ad7e3d1b8138ade37">ContinuousLoader</a> (<a class="el" href="classentt_1_1Registry.html">Registry</a>&lt; <a class="el" href="classentt_1_1ContinuousLoader.html#ae2ddecfaeb16ddbf340b6ca643036c6f">entity_type</a> &gt; &amp;registry) ENTT_NOEXCEPT</td></tr>
<tr class="memdesc:a26ccd96f9ee4219ad7e3d1b8138ade37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a loader that is bound to a given registry. <a href="#a26ccd96f9ee4219ad7e3d1b8138ade37">More...</a><br /></td></tr>
<tr class="separator:a26ccd96f9ee4219ad7e3d1b8138ade37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d7cdac6b296eedb3dffd7ad0f182e3a"><td class="memItemLeft" align="right" valign="top"><a id="a4d7cdac6b296eedb3dffd7ad0f182e3a"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1ContinuousLoader.html#a4d7cdac6b296eedb3dffd7ad0f182e3a">ContinuousLoader</a> (const <a class="el" href="classentt_1_1ContinuousLoader.html">ContinuousLoader</a> &amp;)=delete</td></tr>
<tr class="memdesc:a4d7cdac6b296eedb3dffd7ad0f182e3a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copying a snapshot loader isn't allowed. <br /></td></tr>
<tr class="separator:a4d7cdac6b296eedb3dffd7ad0f182e3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ba9abb1659a78f2ba4e12f86da68402"><td class="memItemLeft" align="right" valign="top"><a id="a4ba9abb1659a78f2ba4e12f86da68402"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1ContinuousLoader.html#a4ba9abb1659a78f2ba4e12f86da68402">ContinuousLoader</a> (<a class="el" href="classentt_1_1ContinuousLoader.html">ContinuousLoader</a> &amp;&amp;)=default</td></tr>
<tr class="memdesc:a4ba9abb1659a78f2ba4e12f86da68402"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default move constructor. <br /></td></tr>
<tr class="separator:a4ba9abb1659a78f2ba4e12f86da68402"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add60e853e8b948f8f3c9f5c73207cb2a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1ContinuousLoader.html">ContinuousLoader</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1ContinuousLoader.html#add60e853e8b948f8f3c9f5c73207cb2a">operator=</a> (const <a class="el" href="classentt_1_1ContinuousLoader.html">ContinuousLoader</a> &amp;)=delete</td></tr>
<tr class="memdesc:add60e853e8b948f8f3c9f5c73207cb2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copying a snapshot loader isn't allowed. <a href="#add60e853e8b948f8f3c9f5c73207cb2a">More...</a><br /></td></tr>
<tr class="separator:add60e853e8b948f8f3c9f5c73207cb2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e0c1b78fbd9ba85857c066b5c89adb5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1ContinuousLoader.html">ContinuousLoader</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1ContinuousLoader.html#a3e0c1b78fbd9ba85857c066b5c89adb5">operator=</a> (<a class="el" href="classentt_1_1ContinuousLoader.html">ContinuousLoader</a> &amp;&amp;)=default</td></tr>
<tr class="memdesc:a3e0c1b78fbd9ba85857c066b5c89adb5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default move assignment operator. <a href="#a3e0c1b78fbd9ba85857c066b5c89adb5">More...</a><br /></td></tr>
<tr class="separator:a3e0c1b78fbd9ba85857c066b5c89adb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a26eadd32f719c24de2305347a5066197"><td class="memTemplParams" colspan="2">template&lt;typename Archive &gt; </td></tr>
<tr class="memitem:a26eadd32f719c24de2305347a5066197"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1ContinuousLoader.html">ContinuousLoader</a> &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1ContinuousLoader.html#a26eadd32f719c24de2305347a5066197">entities</a> (Archive &amp;archive)</td></tr>
<tr class="memdesc:a26eadd32f719c24de2305347a5066197"><td class="mdescLeft">&#160;</td><td class="mdescRight">Restores entities that were in use during serialization. <a href="#a26eadd32f719c24de2305347a5066197">More...</a><br /></td></tr>
<tr class="separator:a26eadd32f719c24de2305347a5066197"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8aa96c02f3fa734078b4e77198665c91"><td class="memTemplParams" colspan="2">template&lt;typename Archive &gt; </td></tr>
<tr class="memitem:a8aa96c02f3fa734078b4e77198665c91"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1ContinuousLoader.html">ContinuousLoader</a> &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1ContinuousLoader.html#a8aa96c02f3fa734078b4e77198665c91">destroyed</a> (Archive &amp;archive)</td></tr>
<tr class="memdesc:a8aa96c02f3fa734078b4e77198665c91"><td class="mdescLeft">&#160;</td><td class="mdescRight">Restores entities that were destroyed during serialization. <a href="#a8aa96c02f3fa734078b4e77198665c91">More...</a><br /></td></tr>
<tr class="separator:a8aa96c02f3fa734078b4e77198665c91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c185ecae861f074afb1d2a14cf4f0f2"><td class="memTemplParams" colspan="2">template&lt;typename... Component, typename Archive , typename... Type, typename... Member&gt; </td></tr>
<tr class="memitem:a9c185ecae861f074afb1d2a14cf4f0f2"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1ContinuousLoader.html">ContinuousLoader</a> &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1ContinuousLoader.html#a9c185ecae861f074afb1d2a14cf4f0f2">component</a> (Archive &amp;archive, Member Type::*... member)</td></tr>
<tr class="memdesc:a9c185ecae861f074afb1d2a14cf4f0f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Restores components and assigns them to the right entities. <a href="#a9c185ecae861f074afb1d2a14cf4f0f2">More...</a><br /></td></tr>
<tr class="separator:a9c185ecae861f074afb1d2a14cf4f0f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d50d3f90d95b370305561da67da6c3b"><td class="memTemplParams" colspan="2">template&lt;typename... Tag, typename Archive , typename... Type, typename... Member&gt; </td></tr>
<tr class="memitem:a8d50d3f90d95b370305561da67da6c3b"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1ContinuousLoader.html">ContinuousLoader</a> &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1ContinuousLoader.html#a8d50d3f90d95b370305561da67da6c3b">tag</a> (Archive &amp;archive, Member Type::*... member)</td></tr>
<tr class="memdesc:a8d50d3f90d95b370305561da67da6c3b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Restores tags and assigns them to the right entities. <a href="#a8d50d3f90d95b370305561da67da6c3b">More...</a><br /></td></tr>
<tr class="separator:a8d50d3f90d95b370305561da67da6c3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a959dc40d6285e8175e95c3679c6698d6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1ContinuousLoader.html">ContinuousLoader</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1ContinuousLoader.html#a959dc40d6285e8175e95c3679c6698d6">shrink</a> ()</td></tr>
<tr class="memdesc:a959dc40d6285e8175e95c3679c6698d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helps to purge entities that no longer have a conterpart. <a href="#a959dc40d6285e8175e95c3679c6698d6">More...</a><br /></td></tr>
<tr class="separator:a959dc40d6285e8175e95c3679c6698d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad1f0c307283afc23e11460c9ca2037c0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1ContinuousLoader.html">ContinuousLoader</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1ContinuousLoader.html#ad1f0c307283afc23e11460c9ca2037c0">orphans</a> ()</td></tr>
<tr class="memdesc:ad1f0c307283afc23e11460c9ca2037c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys those entities that have neither components nor tags. <a href="#ad1f0c307283afc23e11460c9ca2037c0">More...</a><br /></td></tr>
<tr class="separator:ad1f0c307283afc23e11460c9ca2037c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65c5550a1a68135345e30e2af20b6096"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1ContinuousLoader.html#a65c5550a1a68135345e30e2af20b6096">has</a> (<a class="el" href="classentt_1_1ContinuousLoader.html#ae2ddecfaeb16ddbf340b6ca643036c6f">entity_type</a> entity) const ENTT_NOEXCEPT</td></tr>
<tr class="memdesc:a65c5550a1a68135345e30e2af20b6096"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests if a loader knows about a given entity. <a href="#a65c5550a1a68135345e30e2af20b6096">More...</a><br /></td></tr>
<tr class="separator:a65c5550a1a68135345e30e2af20b6096"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63d6f733d8651a19b7ea882f3615455c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1ContinuousLoader.html#ae2ddecfaeb16ddbf340b6ca643036c6f">entity_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1ContinuousLoader.html#a63d6f733d8651a19b7ea882f3615455c">map</a> (<a class="el" href="classentt_1_1ContinuousLoader.html#ae2ddecfaeb16ddbf340b6ca643036c6f">entity_type</a> entity) const ENTT_NOEXCEPT</td></tr>
<tr class="memdesc:a63d6f733d8651a19b7ea882f3615455c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the identifier to which an entity refers. <a href="#a63d6f733d8651a19b7ea882f3615455c">More...</a><br /></td></tr>
<tr class="separator:a63d6f733d8651a19b7ea882f3615455c"><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 Entity&gt;<br />
class entt::ContinuousLoader&lt; Entity &gt;</h3>
<p>Utility class for <em>continuous loading</em>. </p>
<p>A <em>continuous loader</em> is designed to load data from a source registry to a (possibly) non-empty destination. The loader can accomodate in a registry more than one snapshot in a sort of <em>continuous loading</em> that updates the destination one step at a time.<br />
Identifiers that entities originally had are not transferred to the target. Instead, the loader maps remote identifiers to local ones while restoring a snapshot.<br />
An example of use is the implementation of a client-server applications with the requirement of transferring somehow parts of the representation side to side.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Entity</td><td>A valid entity type (see <a class="el" href="structentt_1_1entt__traits.html" title="Entity traits. ">entt_traits</a> for more details). </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="snapshot_8hpp_source.html#l00430">430</a> of file <a class="el" href="snapshot_8hpp_source.html">snapshot.hpp</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a26ccd96f9ee4219ad7e3d1b8138ade37"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a26ccd96f9ee4219ad7e3d1b8138ade37">&#9670;&nbsp;</a></span>ContinuousLoader()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1ContinuousLoader.html">entt::ContinuousLoader</a>&lt; Entity &gt;::<a class="el" href="classentt_1_1ContinuousLoader.html">ContinuousLoader</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classentt_1_1Registry.html">Registry</a>&lt; <a class="el" href="classentt_1_1ContinuousLoader.html#ae2ddecfaeb16ddbf340b6ca643036c6f">entity_type</a> &gt; &amp;&#160;</td>
<td class="paramname"><em>registry</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>Constructs a loader that is bound to a given registry. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">registry</td><td>A valid reference to a registry. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="snapshot_8hpp_source.html#l00529">529</a> of file <a class="el" href="snapshot_8hpp_source.html">snapshot.hpp</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a9c185ecae861f074afb1d2a14cf4f0f2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9c185ecae861f074afb1d2a14cf4f0f2">&#9670;&nbsp;</a></span>component()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename... Component, typename Archive , typename... Type, typename... Member&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1ContinuousLoader.html">ContinuousLoader</a>&amp; <a class="el" href="classentt_1_1ContinuousLoader.html">entt::ContinuousLoader</a>&lt; Entity &gt;::component </td>
<td>(</td>
<td class="paramtype">Archive &amp;&#160;</td>
<td class="paramname"><em>archive</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Member Type::*...&#160;</td>
<td class="paramname"><em>member</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>Restores components and assigns them to the right entities. </p>
<p>The template parameter list must be exactly the same used during serialization. In the event that the entity to which the component is assigned doesn't exist yet, the loader will take care to create a local counterpart for it.<br />
Members can be either data members of type entity_type or containers of entities. In both cases, the loader will visit them and update the entities by replacing each one with its local counterpart.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>Type of component to restore. </td></tr>
<tr><td class="paramname">Archive</td><td>Type of input archive. </td></tr>
<tr><td class="paramname">Type</td><td>Types of components to update with local counterparts. </td></tr>
<tr><td class="paramname">Member</td><td>Types of members to update with their local counterparts. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">archive</td><td>A valid reference to an input archive. </td></tr>
<tr><td class="paramname">member</td><td>Members to update with their local counterparts. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A non-const reference to this loader. </dd></dl>
<p class="definition">Definition at line <a class="el" href="snapshot_8hpp_source.html#l00595">595</a> of file <a class="el" href="snapshot_8hpp_source.html">snapshot.hpp</a>.</p>
</div>
</div>
<a id="a8aa96c02f3fa734078b4e77198665c91"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8aa96c02f3fa734078b4e77198665c91">&#9670;&nbsp;</a></span>destroyed()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename Archive &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1ContinuousLoader.html">ContinuousLoader</a>&amp; <a class="el" href="classentt_1_1ContinuousLoader.html">entt::ContinuousLoader</a>&lt; Entity &gt;::destroyed </td>
<td>(</td>
<td class="paramtype">Archive &amp;&#160;</td>
<td class="paramname"><em>archive</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>Restores entities that were destroyed during serialization. </p>
<p>This function restores the entities that were destroyed during serialization and creates local counterparts for them if required.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Archive</td><td>Type of input archive. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">archive</td><td>A valid reference to an input archive. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A non-const reference to this loader. </dd></dl>
<p class="definition">Definition at line <a class="el" href="snapshot_8hpp_source.html#l00570">570</a> of file <a class="el" href="snapshot_8hpp_source.html">snapshot.hpp</a>.</p>
</div>
</div>
<a id="a26eadd32f719c24de2305347a5066197"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a26eadd32f719c24de2305347a5066197">&#9670;&nbsp;</a></span>entities()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename Archive &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1ContinuousLoader.html">ContinuousLoader</a>&amp; <a class="el" href="classentt_1_1ContinuousLoader.html">entt::ContinuousLoader</a>&lt; Entity &gt;::entities </td>
<td>(</td>
<td class="paramtype">Archive &amp;&#160;</td>
<td class="paramname"><em>archive</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>Restores entities that were in use during serialization. </p>
<p>This function restores the entities that were in use during serialization and creates local counterparts for them if required.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Archive</td><td>Type of input archive. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">archive</td><td>A valid reference to an input archive. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A non-const reference to this loader. </dd></dl>
<p class="definition">Definition at line <a class="el" href="snapshot_8hpp_source.html#l00554">554</a> of file <a class="el" href="snapshot_8hpp_source.html">snapshot.hpp</a>.</p>
</div>
</div>
<a id="a65c5550a1a68135345e30e2af20b6096"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a65c5550a1a68135345e30e2af20b6096">&#9670;&nbsp;</a></span>has()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classentt_1_1ContinuousLoader.html">entt::ContinuousLoader</a>&lt; Entity &gt;::has </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classentt_1_1ContinuousLoader.html#ae2ddecfaeb16ddbf340b6ca643036c6f">entity_type</a>&#160;</td>
<td class="paramname"><em>entity</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>Tests if a loader knows about a given entity. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>An entity identifier. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if <code>entity</code> is managed by the loader, false otherwise. </dd></dl>
<p class="definition">Definition at line <a class="el" href="snapshot_8hpp_source.html#l00690">690</a> of file <a class="el" href="snapshot_8hpp_source.html">snapshot.hpp</a>.</p>
</div>
</div>
<a id="a63d6f733d8651a19b7ea882f3615455c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a63d6f733d8651a19b7ea882f3615455c">&#9670;&nbsp;</a></span>map()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1ContinuousLoader.html#ae2ddecfaeb16ddbf340b6ca643036c6f">entity_type</a> <a class="el" href="classentt_1_1ContinuousLoader.html">entt::ContinuousLoader</a>&lt; Entity &gt;::map </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classentt_1_1ContinuousLoader.html#ae2ddecfaeb16ddbf340b6ca643036c6f">entity_type</a>&#160;</td>
<td class="paramname"><em>entity</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>Returns the identifier to which an entity refers. </p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to use an entity that isn't managed by the loader results in undefined behavior.<br />
An assertion will abort the execution at runtime in debug mode if the loader doesn't knows about the entity.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>An entity identifier. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The identifier to which <code>entity</code> refers in the target registry. </dd></dl>
<p class="definition">Definition at line <a class="el" href="snapshot_8hpp_source.html#l00706">706</a> of file <a class="el" href="snapshot_8hpp_source.html">snapshot.hpp</a>.</p>
</div>
</div>
<a id="add60e853e8b948f8f3c9f5c73207cb2a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#add60e853e8b948f8f3c9f5c73207cb2a">&#9670;&nbsp;</a></span>operator=() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1ContinuousLoader.html">ContinuousLoader</a>&amp; <a class="el" href="classentt_1_1ContinuousLoader.html">entt::ContinuousLoader</a>&lt; Entity &gt;::operator= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1ContinuousLoader.html">ContinuousLoader</a>&lt; Entity &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 snapshot loader isn't allowed. </p>
<dl class="section return"><dt>Returns</dt><dd>This loader. </dd></dl>
</div>
</div>
<a id="a3e0c1b78fbd9ba85857c066b5c89adb5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3e0c1b78fbd9ba85857c066b5c89adb5">&#9670;&nbsp;</a></span>operator=() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1ContinuousLoader.html">ContinuousLoader</a>&amp; <a class="el" href="classentt_1_1ContinuousLoader.html">entt::ContinuousLoader</a>&lt; Entity &gt;::operator= </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classentt_1_1ContinuousLoader.html">ContinuousLoader</a>&lt; Entity &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 loader. </dd></dl>
</div>
</div>
<a id="ad1f0c307283afc23e11460c9ca2037c0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad1f0c307283afc23e11460c9ca2037c0">&#9670;&nbsp;</a></span>orphans()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1ContinuousLoader.html">ContinuousLoader</a>&amp; <a class="el" href="classentt_1_1ContinuousLoader.html">entt::ContinuousLoader</a>&lt; Entity &gt;::orphans </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>Destroys those entities that have neither components nor tags. </p>
<p>In case all the entities were serialized but only part of the components and tags was saved, it could happen that some of the entities have neither components nor tags once restored.<br />
This functions helps to identify and destroy those entities.</p>
<dl class="section return"><dt>Returns</dt><dd>A non-const reference to this loader. </dd></dl>
<p class="definition">Definition at line <a class="el" href="snapshot_8hpp_source.html#l00677">677</a> of file <a class="el" href="snapshot_8hpp_source.html">snapshot.hpp</a>.</p>
</div>
</div>
<a id="a959dc40d6285e8175e95c3679c6698d6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a959dc40d6285e8175e95c3679c6698d6">&#9670;&nbsp;</a></span>shrink()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1ContinuousLoader.html">ContinuousLoader</a>&amp; <a class="el" href="classentt_1_1ContinuousLoader.html">entt::ContinuousLoader</a>&lt; Entity &gt;::shrink </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>Helps to purge entities that no longer have a conterpart. </p>
<p>Users should invoke this member function after restoring each snapshot, unless they know exactly what they are doing.</p>
<dl class="section return"><dt>Returns</dt><dd>A non-const reference to this loader. </dd></dl>
<p class="definition">Definition at line <a class="el" href="snapshot_8hpp_source.html#l00645">645</a> of file <a class="el" href="snapshot_8hpp_source.html">snapshot.hpp</a>.</p>
</div>
</div>
<a id="a8d50d3f90d95b370305561da67da6c3b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8d50d3f90d95b370305561da67da6c3b">&#9670;&nbsp;</a></span>tag()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename... Tag, typename Archive , typename... Type, typename... Member&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1ContinuousLoader.html">ContinuousLoader</a>&amp; <a class="el" href="classentt_1_1ContinuousLoader.html">entt::ContinuousLoader</a>&lt; Entity &gt;::tag </td>
<td>(</td>
<td class="paramtype">Archive &amp;&#160;</td>
<td class="paramname"><em>archive</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Member Type::*...&#160;</td>
<td class="paramname"><em>member</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>Restores tags and assigns them to the right entities. </p>
<p>The template parameter list must be exactly the same used during serialization. In the event that the entity to which the tag is assigned doesn't exist yet, the loader will take care to create a local counterpart for it.<br />
Members can be either data members of type entity_type or containers of entities. In both cases, the loader will visit them and update the entities by replacing each one with its local counterpart.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Tag</td><td>Type of tag to restore. </td></tr>
<tr><td class="paramname">Archive</td><td>Type of input archive. </td></tr>
<tr><td class="paramname">Type</td><td>Types of components to update with local counterparts. </td></tr>
<tr><td class="paramname">Member</td><td>Types of members to update with their local counterparts. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">archive</td><td>A valid reference to an input archive. </td></tr>
<tr><td class="paramname">member</td><td>Members to update with their local counterparts. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A non-const reference to this loader. </dd></dl>
<p class="definition">Definition at line <a class="el" href="snapshot_8hpp_source.html#l00626">626</a> of file <a class="el" href="snapshot_8hpp_source.html">snapshot.hpp</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/entt/entity/<a class="el" href="snapshot_8hpp_source.html">snapshot.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>