classRakNet_1_1NetworkIDObject.html 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=9"/>
  6. <title>RakNet: RakNet::NetworkIDObject Class Reference</title>
  7. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  8. <script type="text/javascript" src="jquery.js"></script>
  9. <script type="text/javascript" src="dynsections.js"></script>
  10. <link href="doxygen.css" rel="stylesheet" type="text/css" />
  11. </head>
  12. <body>
  13. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  14. <div id="titlearea">
  15. <table cellspacing="0" cellpadding="0">
  16. <tbody>
  17. <tr style="height: 56px;">
  18. <td style="padding-left: 0.5em;">
  19. <div id="projectname">RakNet
  20. &#160;<span id="projectnumber">4.0</span>
  21. </div>
  22. </td>
  23. </tr>
  24. </tbody>
  25. </table>
  26. </div>
  27. <!-- end header part -->
  28. <!-- Generated by Doxygen 1.8.2 -->
  29. <div id="navrow1" class="tabs">
  30. <ul class="tablist">
  31. <li><a href="index.html"><span>Main&#160;Page</span></a></li>
  32. <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
  33. <li><a href="modules.html"><span>Modules</span></a></li>
  34. <li><a href="namespaces.html"><span>Namespaces</span></a></li>
  35. <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
  36. <li><a href="files.html"><span>Files</span></a></li>
  37. </ul>
  38. </div>
  39. <div id="navrow2" class="tabs2">
  40. <ul class="tablist">
  41. <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
  42. <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
  43. <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
  44. <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
  45. </ul>
  46. </div>
  47. <div id="nav-path" class="navpath">
  48. <ul>
  49. <li class="navelem"><a class="el" href="namespaceRakNet.html">RakNet</a></li><li class="navelem"><a class="el" href="classRakNet_1_1NetworkIDObject.html">NetworkIDObject</a></li> </ul>
  50. </div>
  51. </div><!-- top -->
  52. <div class="header">
  53. <div class="summary">
  54. <a href="#pub-methods">Public Member Functions</a> &#124;
  55. <a href="#pro-attribs">Protected Attributes</a> &#124;
  56. <a href="classRakNet_1_1NetworkIDObject-members.html">List of all members</a> </div>
  57. <div class="headertitle">
  58. <div class="title">RakNet::NetworkIDObject Class Reference</div> </div>
  59. </div><!--header-->
  60. <div class="contents">
  61. <p>Unique shared ids for each object instance.
  62. <a href="classRakNet_1_1NetworkIDObject.html#details">More...</a></p>
  63. <p><code>#include &lt;NetworkIDObject.h&gt;</code></p>
  64. <div class="dynheader">
  65. Inheritance diagram for RakNet::NetworkIDObject:</div>
  66. <div class="dyncontent">
  67. <div class="center">
  68. <img src="classRakNet_1_1NetworkIDObject.png" usemap="#RakNet::NetworkIDObject_map" alt=""/>
  69. <map id="RakNet::NetworkIDObject_map" name="RakNet::NetworkIDObject_map">
  70. <area href="classRakNet_1_1Replica3.html" title="Base class for your replicated objects for the ReplicaManager3 system." alt="RakNet::Replica3" shape="rect" coords="0,56,256,80"/>
  71. <area href="classRakNet_1_1Replica3Composite.html" title="Use Replica3 through composition instead of inheritance by containing an instance of this templated c..." alt="RakNet::Replica3Composite&lt; parent_type &gt;" shape="rect" coords="0,112,256,136"/>
  72. </map>
  73. </div></div>
  74. <table class="memberdecls">
  75. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
  76. Public Member Functions</h2></td></tr>
  77. <tr class="memitem:abb1048648224a0c27fea7cb04f444310"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1NetworkIDObject.html#abb1048648224a0c27fea7cb04f444310">SetNetworkIDManager</a> (<a class="el" href="classRakNet_1_1NetworkIDManager.html">NetworkIDManager</a> *manager)</td></tr>
  78. <tr class="separator:abb1048648224a0c27fea7cb04f444310"><td class="memSeparator" colspan="2">&#160;</td></tr>
  79. <tr class="memitem:ac3be9f98153dfb91a16d16a8a63aca3d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac3be9f98153dfb91a16d16a8a63aca3d"></a>
  80. virtual <a class="el" href="classRakNet_1_1NetworkIDManager.html">NetworkIDManager</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1NetworkIDObject.html#ac3be9f98153dfb91a16d16a8a63aca3d">GetNetworkIDManager</a> (void) const </td></tr>
  81. <tr class="memdesc:ac3be9f98153dfb91a16d16a8a63aca3d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns what was passed to SetNetworkIDManager. <br/></td></tr>
  82. <tr class="separator:ac3be9f98153dfb91a16d16a8a63aca3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  83. <tr class="memitem:a4e2454899578ba16379491fc0aa45bb6"><td class="memItemLeft" align="right" valign="top">virtual NetworkID&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1NetworkIDObject.html#a4e2454899578ba16379491fc0aa45bb6">GetNetworkID</a> (void)</td></tr>
  84. <tr class="separator:a4e2454899578ba16379491fc0aa45bb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
  85. <tr class="memitem:a5ebfffe7c5bb1a87888b9c3bd940cf35"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1NetworkIDObject.html#a5ebfffe7c5bb1a87888b9c3bd940cf35">SetNetworkID</a> (NetworkID id)</td></tr>
  86. <tr class="separator:a5ebfffe7c5bb1a87888b9c3bd940cf35"><td class="memSeparator" colspan="2">&#160;</td></tr>
  87. <tr class="memitem:a4cc5a498e4cd73194d7406350dd7a4c6"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1NetworkIDObject.html#a4cc5a498e4cd73194d7406350dd7a4c6">SetParent</a> (void *_parent)</td></tr>
  88. <tr class="separator:a4cc5a498e4cd73194d7406350dd7a4c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
  89. <tr class="memitem:a6f48e0e1854cbc49cde9e9c9f7d3f679"><td class="memItemLeft" align="right" valign="top">virtual void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1NetworkIDObject.html#a6f48e0e1854cbc49cde9e9c9f7d3f679">GetParent</a> (void) const </td></tr>
  90. <tr class="separator:a6f48e0e1854cbc49cde9e9c9f7d3f679"><td class="memSeparator" colspan="2">&#160;</td></tr>
  91. </table><table class="memberdecls">
  92. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
  93. Protected Attributes</h2></td></tr>
  94. <tr class="memitem:aa88968a38decf8659bc5e55e8193818b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa88968a38decf8659bc5e55e8193818b"></a>
  95. NetworkID&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1NetworkIDObject.html#aa88968a38decf8659bc5e55e8193818b">networkID</a></td></tr>
  96. <tr class="memdesc:aa88968a38decf8659bc5e55e8193818b"><td class="mdescLeft">&#160;</td><td class="mdescRight">The network ID of this object. <br/></td></tr>
  97. <tr class="separator:aa88968a38decf8659bc5e55e8193818b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  98. <tr class="memitem:a0df64530ef4626519c4e9999ad753a77"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0df64530ef4626519c4e9999ad753a77"></a>
  99. void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1NetworkIDObject.html#a0df64530ef4626519c4e9999ad753a77">parent</a></td></tr>
  100. <tr class="memdesc:a0df64530ef4626519c4e9999ad753a77"><td class="mdescLeft">&#160;</td><td class="mdescRight">The parent set by <a class="el" href="classRakNet_1_1NetworkIDObject.html#a4cc5a498e4cd73194d7406350dd7a4c6">SetParent()</a> <br/></td></tr>
  101. <tr class="separator:a0df64530ef4626519c4e9999ad753a77"><td class="memSeparator" colspan="2">&#160;</td></tr>
  102. </table>
  103. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  104. <div class="textblock"><p>Unique shared ids for each object instance. </p>
  105. <p>A class you can derive from to make it easier to represent every networked object with an integer. This way you can refer to objects over the network. One system should return true for IsNetworkIDAuthority() and the rest should return false. When an object needs to be created, have the the one system create the object. Then have that system send a message to all other systems, and include the value returned from <a class="el" href="classRakNet_1_1NetworkIDObject.html#a4e2454899578ba16379491fc0aa45bb6">GetNetworkID()</a> in that packet. All other systems should then create the same class of object, and call <a class="el" href="classRakNet_1_1NetworkIDObject.html#a5ebfffe7c5bb1a87888b9c3bd940cf35">SetNetworkID()</a> on that class with the NetworkID in the packet. </p>
  106. <dl class="section see"><dt>See Also</dt><dd>the manual for more information on this. </dd></dl>
  107. </div><h2 class="groupheader">Member Function Documentation</h2>
  108. <a class="anchor" id="a4e2454899578ba16379491fc0aa45bb6"></a>
  109. <div class="memitem">
  110. <div class="memproto">
  111. <table class="mlabels">
  112. <tr>
  113. <td class="mlabels-left">
  114. <table class="memname">
  115. <tr>
  116. <td class="memname">virtual NetworkID RakNet::NetworkIDObject::GetNetworkID </td>
  117. <td>(</td>
  118. <td class="paramtype">void&#160;</td>
  119. <td class="paramname"></td><td>)</td>
  120. <td></td>
  121. </tr>
  122. </table>
  123. </td>
  124. <td class="mlabels-right">
  125. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  126. </tr>
  127. </table>
  128. </div><div class="memdoc">
  129. <p>Returns the NetworkID that you can use to refer to this object over the network. </p>
  130. <dl class="section pre"><dt>Precondition</dt><dd>You must first call SetNetworkIDManager before using this function </dd></dl>
  131. <dl class="retval"><dt>Return values</dt><dd>
  132. <table class="retval">
  133. <tr><td class="paramname">UNASSIGNED_NETWORK_ID</td><td>UNASSIGNED_NETWORK_ID is returned IsNetworkIDAuthority() is false and <a class="el" href="classRakNet_1_1NetworkIDObject.html#a5ebfffe7c5bb1a87888b9c3bd940cf35">SetNetworkID()</a> was not previously called. This is also returned if you call this function in the constructor. </td></tr>
  134. <tr><td class="paramname">0-65534</td><td>Any other value is a valid NetworkID. NetworkIDs start at 0 and go to 65534, wrapping at that point. </td></tr>
  135. </table>
  136. </dd>
  137. </dl>
  138. </div>
  139. </div>
  140. <a class="anchor" id="a6f48e0e1854cbc49cde9e9c9f7d3f679"></a>
  141. <div class="memitem">
  142. <div class="memproto">
  143. <table class="mlabels">
  144. <tr>
  145. <td class="mlabels-left">
  146. <table class="memname">
  147. <tr>
  148. <td class="memname">virtual void* RakNet::NetworkIDObject::GetParent </td>
  149. <td>(</td>
  150. <td class="paramtype">void&#160;</td>
  151. <td class="paramname"></td><td>)</td>
  152. <td> const</td>
  153. </tr>
  154. </table>
  155. </td>
  156. <td class="mlabels-right">
  157. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  158. </tr>
  159. </table>
  160. </div><div class="memdoc">
  161. <p>Return what was passed to SetParent </p>
  162. <dl class="section return"><dt>Returns</dt><dd>The value passed to SetParent, or 0 if it was never called. </dd></dl>
  163. </div>
  164. </div>
  165. <a class="anchor" id="a5ebfffe7c5bb1a87888b9c3bd940cf35"></a>
  166. <div class="memitem">
  167. <div class="memproto">
  168. <table class="mlabels">
  169. <tr>
  170. <td class="mlabels-left">
  171. <table class="memname">
  172. <tr>
  173. <td class="memname">virtual void RakNet::NetworkIDObject::SetNetworkID </td>
  174. <td>(</td>
  175. <td class="paramtype">NetworkID&#160;</td>
  176. <td class="paramname"><em>id</em></td><td>)</td>
  177. <td></td>
  178. </tr>
  179. </table>
  180. </td>
  181. <td class="mlabels-right">
  182. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  183. </tr>
  184. </table>
  185. </div><div class="memdoc">
  186. <p>Sets the NetworkID for this instance. Usually this is called by the clients and determined from the servers. However, if you save multiplayer games you would likely use This on load as well. </p>
  187. </div>
  188. </div>
  189. <a class="anchor" id="abb1048648224a0c27fea7cb04f444310"></a>
  190. <div class="memitem">
  191. <div class="memproto">
  192. <table class="mlabels">
  193. <tr>
  194. <td class="mlabels-left">
  195. <table class="memname">
  196. <tr>
  197. <td class="memname">virtual void RakNet::NetworkIDObject::SetNetworkIDManager </td>
  198. <td>(</td>
  199. <td class="paramtype"><a class="el" href="classRakNet_1_1NetworkIDManager.html">NetworkIDManager</a> *&#160;</td>
  200. <td class="paramname"><em>manager</em></td><td>)</td>
  201. <td></td>
  202. </tr>
  203. </table>
  204. </td>
  205. <td class="mlabels-right">
  206. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  207. </tr>
  208. </table>
  209. </div><div class="memdoc">
  210. <p>Sets the manager class from which to request unique network IDs Unlike previous versions, the <a class="el" href="classRakNet_1_1NetworkIDObject.html" title="Unique shared ids for each object instance.">NetworkIDObject</a> relies on a manager class to provide IDs, rather than using statics, So you can have more than one set of IDs on the same system. </p>
  211. </div>
  212. </div>
  213. <a class="anchor" id="a4cc5a498e4cd73194d7406350dd7a4c6"></a>
  214. <div class="memitem">
  215. <div class="memproto">
  216. <table class="mlabels">
  217. <tr>
  218. <td class="mlabels-left">
  219. <table class="memname">
  220. <tr>
  221. <td class="memname">virtual void RakNet::NetworkIDObject::SetParent </td>
  222. <td>(</td>
  223. <td class="paramtype">void *&#160;</td>
  224. <td class="paramname"><em>_parent</em></td><td>)</td>
  225. <td></td>
  226. </tr>
  227. </table>
  228. </td>
  229. <td class="mlabels-right">
  230. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  231. </tr>
  232. </table>
  233. </div><div class="memdoc">
  234. <p>Your class does not have to derive from <a class="el" href="classRakNet_1_1NetworkIDObject.html" title="Unique shared ids for each object instance.">NetworkIDObject</a>, although that is the easiest way to implement this. If you want this to be a member object of another class, rather than inherit, then call <a class="el" href="classRakNet_1_1NetworkIDObject.html#a4cc5a498e4cd73194d7406350dd7a4c6">SetParent()</a> with a pointer to the parent class instance. GET_OBJECT_FROM_ID will then return the parent rather than this instance. </p>
  235. </div>
  236. </div>
  237. <hr/>The documentation for this class was generated from the following file:<ul>
  238. <li>D:/temp/RakNet_PC/Source/<a class="el" href="NetworkIDObject_8h.html">NetworkIDObject.h</a></li>
  239. </ul>
  240. </div><!-- contents -->
  241. <!-- start footer part -->
  242. <hr class="footer"/><address class="footer"><small>
  243. Generated on Mon Jun 2 2014 20:10:28 for RakNet by &#160;<a href="http://www.doxygen.org/index.html">
  244. <img class="footer" src="doxygen.png" alt="doxygen"/>
  245. </a> 1.8.2
  246. </small></address>
  247. </body>
  248. </html>
粤ICP备19079148号