| <!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>mxnet: /work/mxnet/include/mxnet/runtime/object.h File 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">mxnet |
| </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="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_1143c7affb9ebd026cb6818dd282def7.html">mxnet</a></li><li class="navelem"><a class="el" href="dir_8e7a93613ef4c7e7d673effa691c1739.html">runtime</a></li> </ul> |
| </div> |
| </div><!-- top --> |
| <div class="header"> |
| <div class="summary"> |
| <a href="#nested-classes">Classes</a> | |
| <a href="#namespaces">Namespaces</a> | |
| <a href="#define-members">Macros</a> | |
| <a href="#typedef-members">Typedefs</a> | |
| <a href="#enum-members">Enumerations</a> | |
| <a href="#func-members">Functions</a> </div> |
| <div class="headertitle"> |
| <div class="title">object.h File Reference</div> </div> |
| </div><!--header--> |
| <div class="contents"> |
| |
| <p>A managed object in MXNet runtime. |
| <a href="#details">More...</a></p> |
| <div class="textblock"><code>#include <dmlc/logging.h></code><br /> |
| <code>#include <type_traits></code><br /> |
| <code>#include <string></code><br /> |
| <code>#include <utility></code><br /> |
| <code>#include "<a class="el" href="c__runtime__api_8h_source.html">c_runtime_api.h</a>"</code><br /> |
| <code>#include <atomic></code><br /> |
| </div><div class="textblock"><div class="dynheader"> |
| Include dependency graph for object.h:</div> |
| <div class="dyncontent"> |
| <div class="center"><img src="object_8h__incl.png" border="0" usemap="#_2work_2mxnet_2include_2mxnet_2runtime_2object_8h" alt=""/></div> |
| <map name="_2work_2mxnet_2include_2mxnet_2runtime_2object_8h" id="_2work_2mxnet_2include_2mxnet_2runtime_2object_8h"> |
| <area shape="rect" id="node6" href="c__runtime__api_8h.html" title="c_runtime_api.h" alt="" coords="432,95,559,121"/> |
| <area shape="rect" id="node7" href="dlpack_8h.html" title="The common header of DLPack. " alt="" coords="483,169,607,196"/> |
| <area shape="rect" id="node10" href="include_2mxnet_2c__api_8h.html" title="mxnet/c_api.h" alt="" coords="293,169,407,196"/> |
| </map> |
| </div> |
| </div><div class="textblock"><div class="dynheader"> |
| This graph shows which files directly or indirectly include this file:</div> |
| <div class="dyncontent"> |
| <div class="center"><img src="object_8h__dep__incl.png" border="0" usemap="#_2work_2mxnet_2include_2mxnet_2runtime_2object_8hdep" alt=""/></div> |
| <map name="_2work_2mxnet_2include_2mxnet_2runtime_2object_8hdep" id="_2work_2mxnet_2include_2mxnet_2runtime_2object_8hdep"> |
| <area shape="rect" id="node2" href="packed__func_8h.html" title="Type-erased function used across MXNET API. " alt="" coords="1335,809,1509,865"/> |
| <area shape="rect" id="node5" href="include_2mxnet_2tuple_8h.html" title="Data structure Tuple and TShape to store dynamic sized shapes. " alt="" coords="1179,452,1334,493"/> |
| <area shape="rect" id="node24" href="ffi__helper_8h.html" title="/work/mxnet/include\l/mxnet/runtime/ffi_helper.h" alt="" coords="1169,273,1368,315"/> |
| <area shape="rect" id="node25" href="expr_8h.html" title="Base expr nodes in MXNet. " alt="" coords="1501,363,1655,404"/> |
| <area shape="rect" id="node27" href="include_2mxnet_2node_2node_8h.html" title="/work/mxnet/include\l/mxnet/node/node.h" alt="" coords="1543,184,1698,225"/> |
| <area shape="rect" id="node29" href="runtime_2container_8h.html" title="/work/mxnet/include\l/mxnet/runtime/container.h" alt="" coords="1271,184,1469,225"/> |
| <area shape="rect" id="node30" href="include_2mxnet_2runtime_2memory_8h.html" title="Runtime memory management. " alt="" coords="1226,95,1418,136"/> |
| <area shape="rect" id="node3" href="include_2mxnet_2runtime_2registry_8h.html" title="/work/mxnet/include\l/mxnet/runtime/registry.h" alt="" coords="1329,913,1515,955"/> |
| <area shape="rect" id="node4" href="api__registry_8h.html" title="This file contains utilities related to the MXNet's global function registry. " alt="" coords="1343,1003,1501,1044"/> |
| <area shape="rect" id="node6" href="include_2mxnet_2base_8h.html" title="/work/mxnet/include\l/mxnet/base.h" alt="" coords="677,541,831,583"/> |
| <area shape="rect" id="node7" href="engine_8h.html" title="Engine that schedules all the operations according to dependency. " alt="" coords="619,631,774,672"/> |
| <area shape="rect" id="node8" href="include_2mxnet_2ndarray_8h.html" title="/work/mxnet/include\l/mxnet/ndarray.h" alt="" coords="951,720,1106,761"/> |
| <area shape="rect" id="node9" href="include_2mxnet_2executor_8h.html" title="/work/mxnet/include\l/mxnet/executor.h" alt="" coords="323,1003,478,1044"/> |
| <area shape="rect" id="node10" href="include_2mxnet_2op__attr__types_8h.html" title="/work/mxnet/include\l/mxnet/op_attr_types.h" alt="" coords="594,817,767,858"/> |
| <area shape="rect" id="node11" href="include_2mxnet_2operator_8h.html" title="/work/mxnet/include\l/mxnet/operator.h" alt="" coords="323,913,478,955"/> |
| <area shape="rect" id="node12" href="operator__util_8h.html" title="Utility functions and registries to help quickly build new operators. [Deprecated] Use the register f..." alt="" coords="5,1003,172,1044"/> |
| <area shape="rect" id="node17" href="include_2mxnet_2io_8h.html" title="/work/mxnet/include\l/mxnet/io.h" alt="" coords="791,817,946,858"/> |
| <area shape="rect" id="node19" href="resource_8h.html" title="Global resource allocation handling. " alt="" coords="365,720,519,761"/> |
| <area shape="rect" id="node20" href="storage_8h.html" title="Storage manager across multiple devices. " alt="" coords="899,631,1054,672"/> |
| <area shape="rect" id="node21" href="random__generator_8h.html" title="Parallel random number generator. " alt="" coords="393,631,595,672"/> |
| <area shape="rect" id="node22" href="rtc_8h.html" title="/work/mxnet/include\l/mxnet/rtc.h" alt="" coords="1129,631,1283,672"/> |
| <area shape="rect" id="node23" href="tensor__blob_8h.html" title="TBlob class that holds common representation of arbirary dimension tensor, can be used to transformed..." alt="" coords="158,631,318,672"/> |
| <area shape="rect" id="node15" href="utils_8h.html" title="Basic utilility functions. " alt="" coords="673,1092,861,1133"/> |
| <area shape="rect" id="node14" href="imperative_8h.html" title="/work/mxnet/include\l/mxnet/imperative.h" alt="" coords="815,1003,970,1044"/> |
| <area shape="rect" id="node18" href="include_2mxnet_2kvstore_8h.html" title="/work/mxnet/include\l/mxnet/kvstore.h" alt="" coords="1021,817,1175,858"/> |
| <area shape="rect" id="node13" href="include_2mxnet_2graph__attr__types_8h.html" title="/work/mxnet/include\l/mxnet/graph_attr_types.h" alt="" coords="670,913,865,955"/> |
| <area shape="rect" id="node16" href="exec__utils_8h.html" title="Common utility functions for executors. " alt="" coords="673,1181,861,1223"/> |
| <area shape="rect" id="node26" href="expr__operator_8h.html" title="Common operators defined for Expr. " alt="" coords="1460,452,1635,493"/> |
| <area shape="rect" id="node28" href="node_2container_8h.html" title="/work/mxnet/include\l/mxnet/node/container.h" alt="" coords="1531,273,1711,315"/> |
| </map> |
| </div> |
| </div> |
| <p><a href="object_8h_source.html">Go to the source code of this file.</a></p> |
| <table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a> |
| Classes</h2></td></tr> |
| <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classmxnet_1_1runtime_1_1Object.html">mxnet::runtime::Object</a></td></tr> |
| <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">base class of all object containers. <a href="classmxnet_1_1runtime_1_1Object.html#details">More...</a><br /></td></tr> |
| <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classmxnet_1_1runtime_1_1ObjectPtr.html">mxnet::runtime::ObjectPtr< T ></a></td></tr> |
| <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">A custom smart pointer for <a class="el" href="classmxnet_1_1runtime_1_1Object.html" title="base class of all object containers. ">Object</a>. <a href="classmxnet_1_1runtime_1_1ObjectPtr.html#details">More...</a><br /></td></tr> |
| <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classmxnet_1_1runtime_1_1ObjectRef.html">mxnet::runtime::ObjectRef</a></td></tr> |
| <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Base class of all object reference. <a href="classmxnet_1_1runtime_1_1ObjectRef.html#details">More...</a><br /></td></tr> |
| <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structmxnet_1_1runtime_1_1ObjectHash.html">mxnet::runtime::ObjectHash</a></td></tr> |
| <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classmxnet_1_1runtime_1_1ObjectRef.html" title="Base class of all object reference. ">ObjectRef</a> hash functor. <a href="structmxnet_1_1runtime_1_1ObjectHash.html#details">More...</a><br /></td></tr> |
| <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structmxnet_1_1runtime_1_1ObjectEqual.html">mxnet::runtime::ObjectEqual</a></td></tr> |
| <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classmxnet_1_1runtime_1_1ObjectRef.html" title="Base class of all object reference. ">ObjectRef</a> equal functor. <a href="structmxnet_1_1runtime_1_1ObjectEqual.html#details">More...</a><br /></td></tr> |
| <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> |
| </table><table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a> |
| Namespaces</h2></td></tr> |
| <tr class="memitem:namespacemxnet"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet.html">mxnet</a></td></tr> |
| <tr class="memdesc:namespacemxnet"><td class="mdescLeft"> </td><td class="mdescRight">namespace of mxnet <br /></td></tr> |
| <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:namespacemxnet_1_1runtime"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1runtime.html">mxnet::runtime</a></td></tr> |
| <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> |
| </table><table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> |
| Macros</h2></td></tr> |
| <tr class="memitem:adc74fdc9e36de8e4ab39ecba73860cf5"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="object_8h.html#adc74fdc9e36de8e4ab39ecba73860cf5">MXNET_OBJECT_ATOMIC_REF_COUNTER</a>   1</td></tr> |
| <tr class="memdesc:adc74fdc9e36de8e4ab39ecba73860cf5"><td class="mdescLeft"> </td><td class="mdescRight">Whether or not use atomic reference counter. If the reference counter is not atomic, an object cannot be owned by multiple threads. We can, however, move an object across threads. <a href="#adc74fdc9e36de8e4ab39ecba73860cf5">More...</a><br /></td></tr> |
| <tr class="separator:adc74fdc9e36de8e4ab39ecba73860cf5"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a07a1848f5230303d53fd9fcb05534fa0"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="object_8h.html#a07a1848f5230303d53fd9fcb05534fa0">MXNET_DECLARE_BASE_OBJECT_INFO</a>(TypeName, ParentType)</td></tr> |
| <tr class="memdesc:a07a1848f5230303d53fd9fcb05534fa0"><td class="mdescLeft"> </td><td class="mdescRight">helper macro to declare a base object type that can be inheritated. <a href="#a07a1848f5230303d53fd9fcb05534fa0">More...</a><br /></td></tr> |
| <tr class="separator:a07a1848f5230303d53fd9fcb05534fa0"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:aff0db99c23ecb5cbf6c5b9134076a0f3"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="object_8h.html#aff0db99c23ecb5cbf6c5b9134076a0f3">MXNET_DECLARE_FINAL_OBJECT_INFO</a>(TypeName, ParentType)</td></tr> |
| <tr class="memdesc:aff0db99c23ecb5cbf6c5b9134076a0f3"><td class="mdescLeft"> </td><td class="mdescRight">helper macro to declare type information in a final class. <a href="#aff0db99c23ecb5cbf6c5b9134076a0f3">More...</a><br /></td></tr> |
| <tr class="separator:aff0db99c23ecb5cbf6c5b9134076a0f3"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a6b28c0e1dc09b67696ad1369794b89c6"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="object_8h.html#a6b28c0e1dc09b67696ad1369794b89c6">MXNET_REGISTER_OBJECT_TYPE</a>(TypeName)</td></tr> |
| <tr class="memdesc:a6b28c0e1dc09b67696ad1369794b89c6"><td class="mdescLeft"> </td><td class="mdescRight">Helper macro to register the object type to runtime. Makes sure that the runtime type table is correctly populated. <a href="#a6b28c0e1dc09b67696ad1369794b89c6">More...</a><br /></td></tr> |
| <tr class="separator:a6b28c0e1dc09b67696ad1369794b89c6"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a3bbe3c8205ea8d2660b25c519306f04f"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="object_8h.html#a3bbe3c8205ea8d2660b25c519306f04f">MXNET_DEFINE_OBJECT_REF_METHODS</a>(TypeName, ParentType, ObjectName)</td></tr> |
| <tr class="separator:a3bbe3c8205ea8d2660b25c519306f04f"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a715900fd588e08db3bad540c0ca0f7df"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="object_8h.html#a715900fd588e08db3bad540c0ca0f7df">MXNET_DEFINE_OBJECT_REF_METHODS_MUT</a>(TypeName, ParentType, ObjectName)</td></tr> |
| <tr class="separator:a715900fd588e08db3bad540c0ca0f7df"><td class="memSeparator" colspan="2"> </td></tr> |
| </table><table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a> |
| Typedefs</h2></td></tr> |
| <tr class="memitem:a2ab681b45ccee554c37775e5430e237f"><td class="memTemplParams" colspan="2">template<typename T > </td></tr> |
| <tr class="memitem:a2ab681b45ccee554c37775e5430e237f"><td class="memTemplItemLeft" align="right" valign="top">using </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet.html#a2ab681b45ccee554c37775e5430e237f">mxnet::NodePtr</a> = runtime::ObjectPtr< T ></td></tr> |
| <tr class="separator:a2ab681b45ccee554c37775e5430e237f"><td class="memSeparator" colspan="2"> </td></tr> |
| </table><table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a> |
| Enumerations</h2></td></tr> |
| <tr class="memitem:a43738149e3dac1738390743d3de5cfac"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1runtime.html#a43738149e3dac1738390743d3de5cfac">mxnet::runtime::TypeIndex</a> { <br /> |
|   <a class="el" href="namespacemxnet_1_1runtime.html#a43738149e3dac1738390743d3de5cfacac8749d8889e8fe72a6d698277b764458">mxnet::runtime::kRoot</a> = 0, |
| <a class="el" href="namespacemxnet_1_1runtime.html#a43738149e3dac1738390743d3de5cfaca6539f6af501dc67fd6c8fb3d1cb2193d">mxnet::runtime::kMXNetTensor</a> = 1, |
| <a class="el" href="namespacemxnet_1_1runtime.html#a43738149e3dac1738390743d3de5cfaca008b7567e2fed8aebf4573d88a301ef0">mxnet::runtime::kMXNetClosure</a> = 2, |
| <a class="el" href="namespacemxnet_1_1runtime.html#a43738149e3dac1738390743d3de5cfacad6ac6a2d56e9b7f262d920def44509bf">mxnet::runtime::kMXNetADT</a> = 3, |
| <br /> |
|   <a class="el" href="namespacemxnet_1_1runtime.html#a43738149e3dac1738390743d3de5cfacad97ca079d81eade885b16f86607d244a">mxnet::runtime::kRuntimeModule</a> = 4, |
| <a class="el" href="namespacemxnet_1_1runtime.html#a43738149e3dac1738390743d3de5cfaca4efd65b5689dcc24c7316695c2f60c73">mxnet::runtime::kEllipsis</a> = 5, |
| <a class="el" href="namespacemxnet_1_1runtime.html#a43738149e3dac1738390743d3de5cfaca226facde4854260861fcc447b24b142d">mxnet::runtime::kSlice</a> = 6, |
| <a class="el" href="namespacemxnet_1_1runtime.html#a43738149e3dac1738390743d3de5cfacaf69f7723764834392643025c927bfe98">mxnet::runtime::kInteger</a> = 7, |
| <br /> |
|   <a class="el" href="namespacemxnet_1_1runtime.html#a43738149e3dac1738390743d3de5cfaca0d2ba2c4bdfe4ad90c0ca4e513d72d9f">mxnet::runtime::kStaticIndexEnd</a>, |
| <a class="el" href="namespacemxnet_1_1runtime.html#a43738149e3dac1738390743d3de5cfaca6e3caaf791147e40ff557f272f15b8cb">mxnet::runtime::kDynamic</a> = kStaticIndexEnd |
| <br /> |
| }<tr class="memdesc:a43738149e3dac1738390743d3de5cfac"><td class="mdescLeft"> </td><td class="mdescRight">list of the type index. <a href="namespacemxnet_1_1runtime.html#a43738149e3dac1738390743d3de5cfac">More...</a><br /></td></tr> |
| </td></tr> |
| <tr class="separator:a43738149e3dac1738390743d3de5cfac"><td class="memSeparator" colspan="2"> </td></tr> |
| </table><table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> |
| Functions</h2></td></tr> |
| <tr class="memitem:a1bf05d799bd2a8ee18e9ef22335977ce"><td class="memTemplParams" colspan="2">template<typename RefType , typename ObjectType > </td></tr> |
| <tr class="memitem:a1bf05d799bd2a8ee18e9ef22335977ce"><td class="memTemplItemLeft" align="right" valign="top">RefType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1runtime.html#a1bf05d799bd2a8ee18e9ef22335977ce">mxnet::runtime::GetRef</a> (const ObjectType *ptr)</td></tr> |
| <tr class="memdesc:a1bf05d799bd2a8ee18e9ef22335977ce"><td class="mdescLeft"> </td><td class="mdescRight">Get a reference type from a raw object ptr type. <a href="namespacemxnet_1_1runtime.html#a1bf05d799bd2a8ee18e9ef22335977ce">More...</a><br /></td></tr> |
| <tr class="separator:a1bf05d799bd2a8ee18e9ef22335977ce"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a6071ce524d51caddd366e0fb1827b081"><td class="memTemplParams" colspan="2">template<typename SubRef , typename BaseRef > </td></tr> |
| <tr class="memitem:a6071ce524d51caddd366e0fb1827b081"><td class="memTemplItemLeft" align="right" valign="top">SubRef </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1runtime.html#a6071ce524d51caddd366e0fb1827b081">mxnet::runtime::Downcast</a> (BaseRef ref)</td></tr> |
| <tr class="memdesc:a6071ce524d51caddd366e0fb1827b081"><td class="mdescLeft"> </td><td class="mdescRight">Downcast a base reference type to a more specific type. <a href="namespacemxnet_1_1runtime.html#a6071ce524d51caddd366e0fb1827b081">More...</a><br /></td></tr> |
| <tr class="separator:a6071ce524d51caddd366e0fb1827b081"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a68c6b45a7469783b09a1b2b03211056d"><td class="memTemplParams" colspan="2">template<typename BaseType , typename ObjectType > </td></tr> |
| <tr class="memitem:a68c6b45a7469783b09a1b2b03211056d"><td class="memTemplItemLeft" align="right" valign="top">ObjectPtr< BaseType > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1runtime.html#a68c6b45a7469783b09a1b2b03211056d">mxnet::runtime::GetObjectPtr</a> (ObjectType *ptr)</td></tr> |
| <tr class="memdesc:a68c6b45a7469783b09a1b2b03211056d"><td class="mdescLeft"> </td><td class="mdescRight">Get an object ptr type from a raw object ptr. <a href="namespacemxnet_1_1runtime.html#a68c6b45a7469783b09a1b2b03211056d">More...</a><br /></td></tr> |
| <tr class="separator:a68c6b45a7469783b09a1b2b03211056d"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ab16bad32a0ce5d28b9201a6998b4a6d2"><td class="memTemplParams" colspan="2">template<typename RefType , typename ObjType > </td></tr> |
| <tr class="memitem:ab16bad32a0ce5d28b9201a6998b4a6d2"><td class="memTemplItemLeft" align="right" valign="top">RefType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1runtime.html#ab16bad32a0ce5d28b9201a6998b4a6d2">mxnet::runtime::GetRef</a> (const ObjType *ptr)</td></tr> |
| <tr class="separator:ab16bad32a0ce5d28b9201a6998b4a6d2"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:abe2459d65fbb87e9b6c9a4aad5005db9"><td class="memTemplParams" colspan="2">template<typename BaseType , typename ObjType > </td></tr> |
| <tr class="memitem:abe2459d65fbb87e9b6c9a4aad5005db9"><td class="memTemplItemLeft" align="right" valign="top">ObjectPtr< BaseType > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemxnet_1_1runtime.html#abe2459d65fbb87e9b6c9a4aad5005db9">mxnet::runtime::GetObjectPtr</a> (ObjType *ptr)</td></tr> |
| <tr class="separator:abe2459d65fbb87e9b6c9a4aad5005db9"><td class="memSeparator" colspan="2"> </td></tr> |
| </table> |
| <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> |
| <div class="textblock"><p>A managed object in MXNet runtime. </p> |
| </div><h2 class="groupheader">Macro Definition Documentation</h2> |
| <a id="a07a1848f5230303d53fd9fcb05534fa0"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a07a1848f5230303d53fd9fcb05534fa0">◆ </a></span>MXNET_DECLARE_BASE_OBJECT_INFO</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define MXNET_DECLARE_BASE_OBJECT_INFO</td> |
| <td>(</td> |
| <td class="paramtype"> </td> |
| <td class="paramname">TypeName, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"> </td> |
| <td class="paramname">ParentType </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <b>Value:</b><div class="fragment"><div class="line"><span class="keyword">static</span> <span class="keyword">const</span> uint32_t RuntimeTypeIndex() { \</div><div class="line"> if (TypeName::_type_index != ::<a class="code" href="namespacemxnet_1_1runtime.html#a43738149e3dac1738390743d3de5cfaca6e3caaf791147e40ff557f272f15b8cb">mxnet::runtime::TypeIndex::kDynamic</a>) { \</div><div class="line"> return TypeName::_type_index; \</div><div class="line"> } \</div><div class="line"> return _GetOrAllocRuntimeTypeIndex(); \</div><div class="line"> } \</div><div class="line"> static <span class="keyword">const</span> uint32_t _GetOrAllocRuntimeTypeIndex() { \</div><div class="line"> static uint32_t tidx = GetOrAllocRuntimeTypeIndex( \</div><div class="line"> TypeName::_type_key, \</div><div class="line"> TypeName::_type_index, \</div><div class="line"> ParentType::_GetOrAllocRuntimeTypeIndex(), \</div><div class="line"> TypeName::_type_child_slots, \</div><div class="line"> TypeName::_type_child_slots_can_overflow); \</div><div class="line"> return tidx; \</div><div class="line"> } \</div><div class="ttc" id="namespacemxnet_1_1runtime_html_a43738149e3dac1738390743d3de5cfaca6e3caaf791147e40ff557f272f15b8cb"><div class="ttname"><a href="namespacemxnet_1_1runtime.html#a43738149e3dac1738390743d3de5cfaca6e3caaf791147e40ff557f272f15b8cb">mxnet::runtime::kDynamic</a></div><div class="ttdoc">Type index is allocated during runtime. </div><div class="ttdef"><b>Definition:</b> object.h:63</div></div> |
| </div><!-- fragment --> |
| <p>helper macro to declare a base object type that can be inheritated. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">TypeName</td><td>The name of the current type. </td></tr> |
| <tr><td class="paramname">ParentType</td><td>The name of the ParentType </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="aff0db99c23ecb5cbf6c5b9134076a0f3"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#aff0db99c23ecb5cbf6c5b9134076a0f3">◆ </a></span>MXNET_DECLARE_FINAL_OBJECT_INFO</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define MXNET_DECLARE_FINAL_OBJECT_INFO</td> |
| <td>(</td> |
| <td class="paramtype"> </td> |
| <td class="paramname">TypeName, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"> </td> |
| <td class="paramname">ParentType </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <b>Value:</b><div class="fragment"><div class="line"><span class="keyword">static</span> <span class="keyword">const</span> constexpr <span class="keywordtype">bool</span> _type_final = <span class="keyword">true</span>; \</div><div class="line"> static <span class="keyword">const</span> constexpr <span class="keywordtype">int</span> _type_child_slots = 0; \</div><div class="line"> MXNET_DECLARE_BASE_OBJECT_INFO(TypeName, ParentType) \</div></div><!-- fragment --> |
| <p>helper macro to declare type information in a final class. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">TypeName</td><td>The name of the current type. </td></tr> |
| <tr><td class="paramname">ParentType</td><td>The name of the ParentType </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="a3bbe3c8205ea8d2660b25c519306f04f"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a3bbe3c8205ea8d2660b25c519306f04f">◆ </a></span>MXNET_DEFINE_OBJECT_REF_METHODS</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define MXNET_DEFINE_OBJECT_REF_METHODS</td> |
| <td>(</td> |
| <td class="paramtype"> </td> |
| <td class="paramname">TypeName, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"> </td> |
| <td class="paramname">ParentType, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"> </td> |
| <td class="paramname">ObjectName </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <b>Value:</b><div class="fragment"><div class="line">TypeName() {} \</div><div class="line"> explicit TypeName( \</div><div class="line"> ::<a class="code" href="classmxnet_1_1runtime_1_1ObjectPtr.html">mxnet::runtime::ObjectPtr<::mxnet::runtime::Object></a> n) \</div><div class="line"> : ParentType(n) {} \</div><div class="line"> const ObjectName* operator->()<span class="keyword"> const </span>{ \</div><div class="line"> return <span class="keyword">static_cast<</span><span class="keyword">const </span>ObjectName*<span class="keyword">></span>(data_.get()); \</div><div class="line"> } \</div><div class="line"> operator bool()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data_ != <span class="keyword">nullptr</span>; } \</div><div class="line"> using ContainerType = ObjectName;</div><div class="ttc" id="classmxnet_1_1runtime_1_1ObjectPtr_html"><div class="ttname"><a href="classmxnet_1_1runtime_1_1ObjectPtr.html">mxnet::runtime::ObjectPtr</a></div><div class="ttdoc">A custom smart pointer for Object. </div><div class="ttdef"><b>Definition:</b> object.h:345</div></div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a id="a715900fd588e08db3bad540c0ca0f7df"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a715900fd588e08db3bad540c0ca0f7df">◆ </a></span>MXNET_DEFINE_OBJECT_REF_METHODS_MUT</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define MXNET_DEFINE_OBJECT_REF_METHODS_MUT</td> |
| <td>(</td> |
| <td class="paramtype"> </td> |
| <td class="paramname">TypeName, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"> </td> |
| <td class="paramname">ParentType, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"> </td> |
| <td class="paramname">ObjectName </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <b>Value:</b><div class="fragment"><div class="line">TypeName() {} \</div><div class="line"> explicit TypeName( \</div><div class="line"> ::<a class="code" href="classmxnet_1_1runtime_1_1ObjectPtr.html">mxnet::runtime::ObjectPtr<::mxnet::runtime::Object></a> n) \</div><div class="line"> : ParentType(n) {} \</div><div class="line"> ObjectName* operator->() { \</div><div class="line"> return <span class="keyword">static_cast<</span>ObjectName*<span class="keyword">></span>(data_.get()); \</div><div class="line"> } \</div><div class="line"> operator bool()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data_ != <span class="keyword">nullptr</span>; } \</div><div class="line"> using ContainerType = ObjectName;</div><div class="ttc" id="classmxnet_1_1runtime_1_1ObjectPtr_html"><div class="ttname"><a href="classmxnet_1_1runtime_1_1ObjectPtr.html">mxnet::runtime::ObjectPtr</a></div><div class="ttdoc">A custom smart pointer for Object. </div><div class="ttdef"><b>Definition:</b> object.h:345</div></div> |
| </div><!-- fragment --> |
| </div> |
| </div> |
| <a id="adc74fdc9e36de8e4ab39ecba73860cf5"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#adc74fdc9e36de8e4ab39ecba73860cf5">◆ </a></span>MXNET_OBJECT_ATOMIC_REF_COUNTER</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define MXNET_OBJECT_ATOMIC_REF_COUNTER   1</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Whether or not use atomic reference counter. If the reference counter is not atomic, an object cannot be owned by multiple threads. We can, however, move an object across threads. </p> |
| |
| </div> |
| </div> |
| <a id="a6b28c0e1dc09b67696ad1369794b89c6"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a6b28c0e1dc09b67696ad1369794b89c6">◆ </a></span>MXNET_REGISTER_OBJECT_TYPE</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define MXNET_REGISTER_OBJECT_TYPE</td> |
| <td>(</td> |
| <td class="paramtype"> </td> |
| <td class="paramname">TypeName</td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <b>Value:</b><div class="fragment"><div class="line"><span class="keyword">static</span> <a class="code" href="3rdparty_2dmlc-core_2include_2dmlc_2base_8h.html#a9425a87a06019a8392509217b2a1da5a">DMLC_ATTRIBUTE_UNUSED</a> uint32_t __make_Object_tidx ## _ ## TypeName ## __ = \</div><div class="line"> TypeName::_GetOrAllocRuntimeTypeIndex()</div><div class="ttc" id="3rdparty_2dmlc-core_2include_2dmlc_2base_8h_html_a9425a87a06019a8392509217b2a1da5a"><div class="ttname"><a href="3rdparty_2dmlc-core_2include_2dmlc_2base_8h.html#a9425a87a06019a8392509217b2a1da5a">DMLC_ATTRIBUTE_UNUSED</a></div><div class="ttdeci">#define DMLC_ATTRIBUTE_UNUSED</div><div class="ttdoc">helper macro to supress unused warning </div><div class="ttdef"><b>Definition:</b> base.h:148</div></div> |
| </div><!-- fragment --> |
| <p>Helper macro to register the object type to runtime. Makes sure that the runtime type table is correctly populated. </p> |
| <p>Use this macro in the cc file for each terminal class. </p> |
| |
| </div> |
| </div> |
| </div><!-- contents --> |
| <!-- start footer part --> |
| <hr class="footer"/><address class="footer"><small> |
| Generated on Thu Jan 5 2023 00:58:43 for mxnet by  <a href="http://www.doxygen.org/index.html"> |
| <img class="footer" src="doxygen.png" alt="doxygen"/> |
| </a> 1.8.13 |
| </small></address> |
| </body> |
| </html> |