| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491 |
- <!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.12.0"/>
- <meta name="viewport" content="width=device-width, initial-scale=1"/>
- <title>Jolt Physics: RefTarget< T > 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>
- <script type="text/javascript" src="clipboard.js"></script>
- <link href="navtree.css" rel="stylesheet" type="text/css"/>
- <script type="text/javascript" src="navtreedata.js"></script>
- <script type="text/javascript" src="navtree.js"></script>
- <script type="text/javascript" src="resize.js"></script>
- <script type="text/javascript" src="cookie.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>
- <script type="text/x-mathjax-config">
- MathJax.Hub.Config({
- extensions: ["tex2jax.js"],
- jax: ["input/TeX","output/HTML-CSS"],
- });
- </script>
- <script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.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="projectlogo"><img alt="Logo" src="LogoSmall.png"/></td>
- <td id="projectalign">
- <div id="projectname">Jolt Physics
- </div>
- <div id="projectbrief">A multi core friendly Game Physics Engine</div>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <!-- end header part -->
- <!-- Generated by Doxygen 1.12.0 -->
- <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">
- /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
- $(function() { codefold.init(0); });
- /* @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',true);
- $(function() { init_search(); });
- });
- /* @license-end */
- </script>
- <div id="main-nav"></div>
- </div><!-- top -->
- <div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
- </div>
- <script type="text/javascript">
- /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
- $(function(){initNavTree('class_ref_target.html',''); initResizable(true); });
- /* @license-end */
- </script>
- <div id="doc-content">
- <!-- 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 class="header">
- <div class="summary">
- <a href="#pub-methods">Public Member Functions</a> |
- <a href="#pub-static-methods">Static Public Member Functions</a> |
- <a href="#pro-attribs">Protected Attributes</a> |
- <a href="#pro-static-attribs">Static Protected Attributes</a> |
- <a href="class_ref_target-members.html">List of all members</a> </div>
- <div class="headertitle"><div class="title">RefTarget< T > Class Template Reference</div></div>
- </div><!--header-->
- <div class="contents">
- <p><code>#include <<a class="el" href="_reference_8h_source.html">Reference.h</a>></code></p>
- <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:a4c8a23738e2e1dd6369520a30e250b17" id="r_a4c8a23738e2e1dd6369520a30e250b17"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#a4c8a23738e2e1dd6369520a30e250b17">RefTarget</a> ()=default</td></tr>
- <tr class="memdesc:a4c8a23738e2e1dd6369520a30e250b17"><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <br /></td></tr>
- <tr class="separator:a4c8a23738e2e1dd6369520a30e250b17"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a50444e3b659c6f93c64aee224a93f6ab" id="r_a50444e3b659c6f93c64aee224a93f6ab"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#a50444e3b659c6f93c64aee224a93f6ab">RefTarget</a> (const <a class="el" href="class_ref_target.html">RefTarget</a> &)</td></tr>
- <tr class="separator:a50444e3b659c6f93c64aee224a93f6ab"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ac3110b9f511287f881d7afaf26871e1b" id="r_ac3110b9f511287f881d7afaf26871e1b"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#ac3110b9f511287f881d7afaf26871e1b">~RefTarget</a> ()</td></tr>
- <tr class="memdesc:ac3110b9f511287f881d7afaf26871e1b"><td class="mdescLeft"> </td><td class="mdescRight">assert no one is referencing us <br /></td></tr>
- <tr class="separator:ac3110b9f511287f881d7afaf26871e1b"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a3befa746ea517453572f6f4f5fc3b099" id="r_a3befa746ea517453572f6f4f5fc3b099"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a3befa746ea517453572f6f4f5fc3b099">SetEmbedded</a> () const</td></tr>
- <tr class="separator:a3befa746ea517453572f6f4f5fc3b099"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a1fc15bfe979bc43a7fa71c7c34f87ed0" id="r_a1fc15bfe979bc43a7fa71c7c34f87ed0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_ref_target.html">RefTarget</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="#a1fc15bfe979bc43a7fa71c7c34f87ed0">operator=</a> (const <a class="el" href="class_ref_target.html">RefTarget</a> &)</td></tr>
- <tr class="memdesc:a1fc15bfe979bc43a7fa71c7c34f87ed0"><td class="mdescLeft"> </td><td class="mdescRight">Assignment operator. <br /></td></tr>
- <tr class="separator:a1fc15bfe979bc43a7fa71c7c34f87ed0"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:acaf07366183c51cd8460c7d3dcd07c2d" id="r_acaf07366183c51cd8460c7d3dcd07c2d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_core_8h.html#a8f95e75e58492e87412191fabadd8ca8">uint32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#acaf07366183c51cd8460c7d3dcd07c2d">GetRefCount</a> () const</td></tr>
- <tr class="memdesc:acaf07366183c51cd8460c7d3dcd07c2d"><td class="mdescLeft"> </td><td class="mdescRight">Get current refcount of this object. <br /></td></tr>
- <tr class="separator:acaf07366183c51cd8460c7d3dcd07c2d"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:acf02c18a343bc9de9d6afb7c966f0363" id="r_acf02c18a343bc9de9d6afb7c966f0363"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#acf02c18a343bc9de9d6afb7c966f0363">AddRef</a> () const</td></tr>
- <tr class="memdesc:acf02c18a343bc9de9d6afb7c966f0363"><td class="mdescLeft"> </td><td class="mdescRight">Add or release a reference to this object. <br /></td></tr>
- <tr class="separator:acf02c18a343bc9de9d6afb7c966f0363"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a0451661dd5d85b01f969319e767993eb" id="r_a0451661dd5d85b01f969319e767993eb"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a0451661dd5d85b01f969319e767993eb">Release</a> () const</td></tr>
- <tr class="separator:a0451661dd5d85b01f969319e767993eb"><td class="memSeparator" colspan="2"> </td></tr>
- </table><table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
- Static Public Member Functions</h2></td></tr>
- <tr class="memitem:a58b5a94748691b18ecf651ce918ae743" id="r_a58b5a94748691b18ecf651ce918ae743"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="#a58b5a94748691b18ecf651ce918ae743">sInternalGetRefCountOffset</a> ()</td></tr>
- <tr class="memdesc:a58b5a94748691b18ecf651ce918ae743"><td class="mdescLeft"> </td><td class="mdescRight">INTERNAL HELPER FUNCTION USED BY SERIALIZATION. <br /></td></tr>
- <tr class="separator:a58b5a94748691b18ecf651ce918ae743"><td class="memSeparator" colspan="2"> </td></tr>
- </table><table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-attribs" name="pro-attribs"></a>
- Protected Attributes</h2></td></tr>
- <tr class="memitem:a12afba0bdae7706a0afd4d96ac128231" id="r_a12afba0bdae7706a0afd4d96ac128231"><td class="memItemLeft" align="right" valign="top">atomic< <a class="el" href="_core_8h.html#a8f95e75e58492e87412191fabadd8ca8">uint32</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="#a12afba0bdae7706a0afd4d96ac128231">mRefCount</a> = 0</td></tr>
- <tr class="memdesc:a12afba0bdae7706a0afd4d96ac128231"><td class="mdescLeft"> </td><td class="mdescRight">Current reference count. <br /></td></tr>
- <tr class="separator:a12afba0bdae7706a0afd4d96ac128231"><td class="memSeparator" colspan="2"> </td></tr>
- </table><table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-static-attribs" name="pro-static-attribs"></a>
- Static Protected Attributes</h2></td></tr>
- <tr class="memitem:ad37db773efa3c8756f6d95df3862b875" id="r_ad37db773efa3c8756f6d95df3862b875"><td class="memItemLeft" align="right" valign="top">static constexpr <a class="el" href="_core_8h.html#a8f95e75e58492e87412191fabadd8ca8">uint32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#ad37db773efa3c8756f6d95df3862b875">cEmbedded</a> = 0x0ebedded</td></tr>
- <tr class="memdesc:ad37db773efa3c8756f6d95df3862b875"><td class="mdescLeft"> </td><td class="mdescRight">A large value that gets added to the refcount to mark the object as embedded. <br /></td></tr>
- <tr class="separator:ad37db773efa3c8756f6d95df3862b875"><td class="memSeparator" colspan="2"> </td></tr>
- </table>
- <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
- <div class="textblock"><div class="compoundTemplParams">template<class T><br />
- class RefTarget< T ></div><p>Simple class to facilitate reference counting / releasing Derive your class from <a class="el" href="class_ref_target.html">RefTarget</a> and you can reference it by using Ref<classname> or RefConst<classname></p>
- <p>Reference counting classes keep an integer which indicates how many references to the object are active. Reference counting objects are derived from <a class="el" href="class_ref_target.html">RefTarget</a> and staT & their life with a reference count of zero. They can then be assigned to equivalents of pointers (<a class="el" href="class_ref.html">Ref</a>) which will increase the reference count immediately. If the destructor of <a class="el" href="class_ref.html">Ref</a> is called or another object is assigned to the reference counting pointer it will decrease the reference count of the object again. If this reference count becomes zero, the object is destroyed.</p>
- <p>This provides a very powerful mechanism to prevent memory leaks, but also gives some responsibility to the programmer. The most notable point is that you cannot have one object reference another and have the other reference the first one back, because this way the reference count of both objects will never become lower than 1, resulting in a memory leak. By carefully designing your classes (and particularly identifying who owns who in the class hierarchy) you can avoid these problems. </p>
- </div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
- <a id="a4c8a23738e2e1dd6369520a30e250b17" name="a4c8a23738e2e1dd6369520a30e250b17"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a4c8a23738e2e1dd6369520a30e250b17">◆ </a></span>RefTarget() <span class="overload">[1/2]</span></h2>
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<class T > </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="class_ref_target.html">RefTarget</a>< T ><a class="el" href="class_ref_target.html">::RefTarget</a> </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">default</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Constructor. </p>
- </div>
- </div>
- <a id="a50444e3b659c6f93c64aee224a93f6ab" name="a50444e3b659c6f93c64aee224a93f6ab"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a50444e3b659c6f93c64aee224a93f6ab">◆ </a></span>RefTarget() <span class="overload">[2/2]</span></h2>
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<class T > </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="class_ref_target.html">RefTarget</a>< T ><a class="el" href="class_ref_target.html">::RefTarget</a> </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="class_ref_target.html">RefTarget</a>< T > &</td> <td class="paramname"><span class="paramname"><em></em></span></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">
- </div>
- </div>
- <a id="ac3110b9f511287f881d7afaf26871e1b" name="ac3110b9f511287f881d7afaf26871e1b"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#ac3110b9f511287f881d7afaf26871e1b">◆ </a></span>~RefTarget()</h2>
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<class T > </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="class_ref_target.html">RefTarget</a>< T >::~<a class="el" href="class_ref_target.html">RefTarget</a> </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></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>assert no one is referencing us </p>
- </div>
- </div>
- <h2 class="groupheader">Member Function Documentation</h2>
- <a id="acf02c18a343bc9de9d6afb7c966f0363" name="acf02c18a343bc9de9d6afb7c966f0363"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#acf02c18a343bc9de9d6afb7c966f0363">◆ </a></span>AddRef()</h2>
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<class T > </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">void <a class="el" href="class_ref_target.html">RefTarget</a>< T >::AddRef </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></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>Add or release a reference to this object. </p>
- </div>
- </div>
- <a id="acaf07366183c51cd8460c7d3dcd07c2d" name="acaf07366183c51cd8460c7d3dcd07c2d"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#acaf07366183c51cd8460c7d3dcd07c2d">◆ </a></span>GetRefCount()</h2>
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<class T > </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="_core_8h.html#a8f95e75e58492e87412191fabadd8ca8">uint32</a> <a class="el" href="class_ref_target.html">RefTarget</a>< T >::GetRefCount </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></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>Get current refcount of this object. </p>
- </div>
- </div>
- <a id="a1fc15bfe979bc43a7fa71c7c34f87ed0" name="a1fc15bfe979bc43a7fa71c7c34f87ed0"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a1fc15bfe979bc43a7fa71c7c34f87ed0">◆ </a></span>operator=()</h2>
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<class T > </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="class_ref_target.html">RefTarget</a> & <a class="el" href="class_ref_target.html">RefTarget</a>< T >::operator= </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="class_ref_target.html">RefTarget</a>< T > &</td> <td class="paramname"><span class="paramname"><em></em></span></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>Assignment operator. </p>
- </div>
- </div>
- <a id="a0451661dd5d85b01f969319e767993eb" name="a0451661dd5d85b01f969319e767993eb"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a0451661dd5d85b01f969319e767993eb">◆ </a></span>Release()</h2>
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<class T > </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">void <a class="el" href="class_ref_target.html">RefTarget</a>< T >::Release </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></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">
- </div>
- </div>
- <a id="a3befa746ea517453572f6f4f5fc3b099" name="a3befa746ea517453572f6f4f5fc3b099"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a3befa746ea517453572f6f4f5fc3b099">◆ </a></span>SetEmbedded()</h2>
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<class T > </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">void <a class="el" href="class_ref_target.html">RefTarget</a>< T >::SetEmbedded </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></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>Mark this class as embedded, this means the type can be used in a compound or constructed on the stack. The Release function will never destruct the object, it is assumed the destructor will be called by whoever allocated the object and at that point in time it is checked that no references are left to the structure. </p>
- </div>
- </div>
- <a id="a58b5a94748691b18ecf651ce918ae743" name="a58b5a94748691b18ecf651ce918ae743"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a58b5a94748691b18ecf651ce918ae743">◆ </a></span>sInternalGetRefCountOffset()</h2>
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<class T > </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int <a class="el" href="class_ref_target.html">RefTarget</a>< T >::sInternalGetRefCountOffset </td>
- <td>(</td>
- <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>INTERNAL HELPER FUNCTION USED BY SERIALIZATION. </p>
- </div>
- </div>
- <h2 class="groupheader">Member Data Documentation</h2>
- <a id="ad37db773efa3c8756f6d95df3862b875" name="ad37db773efa3c8756f6d95df3862b875"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#ad37db773efa3c8756f6d95df3862b875">◆ </a></span>cEmbedded</h2>
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<class T > </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="_core_8h.html#a8f95e75e58492e87412191fabadd8ca8">uint32</a> <a class="el" href="class_ref_target.html">RefTarget</a>< T >::cEmbedded = 0x0ebedded</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span><span class="mlabel">protected</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>A large value that gets added to the refcount to mark the object as embedded. </p>
- </div>
- </div>
- <a id="a12afba0bdae7706a0afd4d96ac128231" name="a12afba0bdae7706a0afd4d96ac128231"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a12afba0bdae7706a0afd4d96ac128231">◆ </a></span>mRefCount</h2>
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<class T > </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">atomic<<a class="el" href="_core_8h.html#a8f95e75e58492e87412191fabadd8ca8">uint32</a>> <a class="el" href="class_ref_target.html">RefTarget</a>< T >::mRefCount = 0</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">mutable</span><span class="mlabel">protected</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Current reference count. </p>
- </div>
- </div>
- <hr/>The documentation for this class was generated from the following file:<ul>
- <li>Jolt/Core/<a class="el" href="_reference_8h_source.html">Reference.h</a></li>
- </ul>
- </div><!-- contents -->
- </div><!-- doc-content -->
- <!-- start footer part -->
- <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="class_ref_target.html">RefTarget</a></li>
- <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0 </li>
- </ul>
- </div>
- </body>
- </html>
|