classRakNet_1_1Connection__RM3.html 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605
  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::Connection_RM3 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_1Connection__RM3.html">Connection_RM3</a></li> </ul>
  50. </div>
  51. </div><!-- top -->
  52. <div class="header">
  53. <div class="summary">
  54. <a href="#pub-types">Public Types</a> &#124;
  55. <a href="#pub-methods">Public Member Functions</a> &#124;
  56. <a href="classRakNet_1_1Connection__RM3-members.html">List of all members</a> </div>
  57. <div class="headertitle">
  58. <div class="title">RakNet::Connection_RM3 Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span><div class="ingroups"><a class="el" href="group__REPLICA__MANAGER__GROUP3.html">ReplicaManager3</a></div></div> </div>
  59. </div><!--header-->
  60. <div class="contents">
  61. <p>Each remote system is represented by <a class="el" href="classRakNet_1_1Connection__RM3.html" title="Each remote system is represented by Connection_RM3. Used to allocate Replica3 and track which instan...">Connection_RM3</a>. Used to allocate <a class="el" href="classRakNet_1_1Replica3.html" title="Base class for your replicated objects for the ReplicaManager3 system.">Replica3</a> and track which instances have been allocated.
  62. <a href="classRakNet_1_1Connection__RM3.html#details">More...</a></p>
  63. <p><code>#include &lt;ReplicaManager3.h&gt;</code></p>
  64. <table class="memberdecls">
  65. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
  66. Public Types</h2></td></tr>
  67. <tr class="memitem:a1d176e2d5c47c15ca341d8efaecb637e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Connection__RM3.html#a1d176e2d5c47c15ca341d8efaecb637e">ConstructionMode</a> { <a class="el" href="classRakNet_1_1Connection__RM3.html#a1d176e2d5c47c15ca341d8efaecb637ea5a5b467fa02165891a53b941b0e20516">QUERY_REPLICA_FOR_CONSTRUCTION</a>,
  68. <a class="el" href="classRakNet_1_1Connection__RM3.html#a1d176e2d5c47c15ca341d8efaecb637ea6798d0f74d05dc9577b6fa5917b7aea5">QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION</a>,
  69. <a class="el" href="classRakNet_1_1Connection__RM3.html#a1d176e2d5c47c15ca341d8efaecb637ea55be3519ea316178e9a27300065e7544">QUERY_CONNECTION_FOR_REPLICA_LIST</a>
  70. }</td></tr>
  71. <tr class="memdesc:a1d176e2d5c47c15ca341d8efaecb637e"><td class="mdescLeft">&#160;</td><td class="mdescRight">List of enumerations for how to get the list of valid objects for other systems. <a href="classRakNet_1_1Connection__RM3.html#a1d176e2d5c47c15ca341d8efaecb637e">More...</a><br/></td></tr>
  72. <tr class="separator:a1d176e2d5c47c15ca341d8efaecb637e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  73. </table><table class="memberdecls">
  74. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
  75. Public Member Functions</h2></td></tr>
  76. <tr class="memitem:ab05d85100f726378f2ed73c6792a5b46"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classRakNet_1_1Replica3.html">Replica3</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Connection__RM3.html#ab05d85100f726378f2ed73c6792a5b46">AllocReplica</a> (<a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> *allocationIdBitstream, <a class="el" href="classRakNet_1_1ReplicaManager3.html">ReplicaManager3</a> *replicaManager3)=0</td></tr>
  77. <tr class="memdesc:ab05d85100f726378f2ed73c6792a5b46"><td class="mdescLeft">&#160;</td><td class="mdescRight">Class factory to create a <a class="el" href="classRakNet_1_1Replica3.html" title="Base class for your replicated objects for the ReplicaManager3 system.">Replica3</a> instance, given a user-defined identifier. <a href="#ab05d85100f726378f2ed73c6792a5b46"></a><br/></td></tr>
  78. <tr class="separator:ab05d85100f726378f2ed73c6792a5b46"><td class="memSeparator" colspan="2">&#160;</td></tr>
  79. <tr class="memitem:a8c14767a72a11032176b8d5ef513a798"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Connection__RM3.html#a8c14767a72a11032176b8d5ef513a798">GetConstructedReplicas</a> (<a class="el" href="classDataStructures_1_1List.html">DataStructures::List</a>&lt; <a class="el" href="classRakNet_1_1Replica3.html">Replica3</a> * &gt; &amp;objectsTheyDoHave)</td></tr>
  80. <tr class="memdesc:a8c14767a72a11032176b8d5ef513a798"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get list of all replicas that are constructed for this connection. <a href="#a8c14767a72a11032176b8d5ef513a798"></a><br/></td></tr>
  81. <tr class="separator:a8c14767a72a11032176b8d5ef513a798"><td class="memSeparator" colspan="2">&#160;</td></tr>
  82. <tr class="memitem:a1b05a20c8a6ceabb86c08bc175c7906d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Connection__RM3.html#a1b05a20c8a6ceabb86c08bc175c7906d">HasReplicaConstructed</a> (<a class="el" href="classRakNet_1_1Replica3.html">RakNet::Replica3</a> *replica)</td></tr>
  83. <tr class="separator:a1b05a20c8a6ceabb86c08bc175c7906d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  84. <tr class="memitem:ad3661c8e40c359fc54bdc2066acb8dba"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Connection__RM3.html#ad3661c8e40c359fc54bdc2066acb8dba">SerializeOnDownloadStarted</a> (<a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> *bitStream)</td></tr>
  85. <tr class="separator:ad3661c8e40c359fc54bdc2066acb8dba"><td class="memSeparator" colspan="2">&#160;</td></tr>
  86. <tr class="memitem:acf23e94dddb214cf0d631fe074cd4467"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Connection__RM3.html#acf23e94dddb214cf0d631fe074cd4467">DeserializeOnDownloadStarted</a> (<a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> *bitStream)</td></tr>
  87. <tr class="separator:acf23e94dddb214cf0d631fe074cd4467"><td class="memSeparator" colspan="2">&#160;</td></tr>
  88. <tr class="memitem:a536d4413a4243b6732bc2a503d14d03e"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Connection__RM3.html#a536d4413a4243b6732bc2a503d14d03e">SerializeOnDownloadComplete</a> (<a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> *bitStream)</td></tr>
  89. <tr class="separator:a536d4413a4243b6732bc2a503d14d03e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  90. <tr class="memitem:a293a2c18871dc91410953e931d90ca52"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Connection__RM3.html#a293a2c18871dc91410953e931d90ca52">DeserializeOnDownloadComplete</a> (<a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> *bitStream)</td></tr>
  91. <tr class="separator:a293a2c18871dc91410953e931d90ca52"><td class="memSeparator" colspan="2">&#160;</td></tr>
  92. <tr class="memitem:a4282ffedd8130d793f32ea5bfa2ba0b3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Connection__RM3.html#a4282ffedd8130d793f32ea5bfa2ba0b3">GetSystemAddress</a> (void) const </td></tr>
  93. <tr class="separator:a4282ffedd8130d793f32ea5bfa2ba0b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
  94. <tr class="memitem:ad3f7cec74bfac88a3ae095664e6a29c0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Connection__RM3.html#ad3f7cec74bfac88a3ae095664e6a29c0">GetRakNetGUID</a> (void) const </td></tr>
  95. <tr class="separator:ad3f7cec74bfac88a3ae095664e6a29c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
  96. <tr class="memitem:a8a5f0389054064ee9d51852ad6ebca05"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Connection__RM3.html#a8a5f0389054064ee9d51852ad6ebca05">GetDownloadWasCompleted</a> (void) const </td></tr>
  97. <tr class="separator:a8a5f0389054064ee9d51852ad6ebca05"><td class="memSeparator" colspan="2">&#160;</td></tr>
  98. <tr class="memitem:aadc711493e2022956fe51ea8592b57d2"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Connection__RM3.html#aadc711493e2022956fe51ea8592b57d2">QueryGroupDownloadMessages</a> (void) const </td></tr>
  99. <tr class="memdesc:aadc711493e2022956fe51ea8592b57d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return whether or not downloads to our system should all be processed the same tick (call to <a class="el" href="classRakNet_1_1RakPeer.html#a46d90fb903e747f76d63eb3a96543740" title="Gets a message from the incoming message queue.">RakPeer::Receive()</a> ) <a href="#aadc711493e2022956fe51ea8592b57d2"></a><br/></td></tr>
  100. <tr class="separator:aadc711493e2022956fe51ea8592b57d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  101. <tr class="memitem:a918f5c8d69e2ede6c9469fd9ade96d32"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classRakNet_1_1Connection__RM3.html#a1d176e2d5c47c15ca341d8efaecb637e">ConstructionMode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Connection__RM3.html#a918f5c8d69e2ede6c9469fd9ade96d32">QueryConstructionMode</a> (void) const </td></tr>
  102. <tr class="memdesc:a918f5c8d69e2ede6c9469fd9ade96d32"><td class="mdescLeft">&#160;</td><td class="mdescRight">Queries how to get the list of objects that exist on remote systems. <a href="#a918f5c8d69e2ede6c9469fd9ade96d32"></a><br/></td></tr>
  103. <tr class="separator:a918f5c8d69e2ede6c9469fd9ade96d32"><td class="memSeparator" colspan="2">&#160;</td></tr>
  104. <tr class="memitem:aa560e8d31cfc26b7aef79cc815c916bf"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Connection__RM3.html#aa560e8d31cfc26b7aef79cc815c916bf">QueryReplicaList</a> (<a class="el" href="classDataStructures_1_1List.html">DataStructures::List</a>&lt; <a class="el" href="classRakNet_1_1Replica3.html">Replica3</a> * &gt; &amp;newReplicasToCreate, <a class="el" href="classDataStructures_1_1List.html">DataStructures::List</a>&lt; <a class="el" href="classRakNet_1_1Replica3.html">Replica3</a> * &gt; &amp;existingReplicasToDestroy)</td></tr>
  105. <tr class="memdesc:aa560e8d31cfc26b7aef79cc815c916bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback used when <a class="el" href="classRakNet_1_1Connection__RM3.html#a918f5c8d69e2ede6c9469fd9ade96d32" title="Queries how to get the list of objects that exist on remote systems.">QueryConstructionMode()</a> returns QUERY_CONNECTION_FOR_REPLICA_LIST. <a href="#aa560e8d31cfc26b7aef79cc815c916bf"></a><br/></td></tr>
  106. <tr class="separator:aa560e8d31cfc26b7aef79cc815c916bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
  107. <tr class="memitem:a9dc79ed7a9252f7ae358b62ec1fbb195"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Connection__RM3.html#a9dc79ed7a9252f7ae358b62ec1fbb195">QuerySerializationList</a> (<a class="el" href="classDataStructures_1_1List.html">DataStructures::List</a>&lt; <a class="el" href="classRakNet_1_1Replica3.html">Replica3</a> * &gt; &amp;replicasToSerialize)</td></tr>
  108. <tr class="memdesc:a9dc79ed7a9252f7ae358b62ec1fbb195"><td class="mdescLeft">&#160;</td><td class="mdescRight">Override which replicas to serialize and in what order for a connection for a <a class="el" href="classRakNet_1_1ReplicaManager3.html#a8aa2fdb5b20aeeab74b037bc1632c9e9" title="Call interfaces, send data.">ReplicaManager3::Update()</a> cycle. <a href="#a9dc79ed7a9252f7ae358b62ec1fbb195"></a><br/></td></tr>
  109. <tr class="separator:a9dc79ed7a9252f7ae358b62ec1fbb195"><td class="memSeparator" colspan="2">&#160;</td></tr>
  110. </table>
  111. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  112. <div class="textblock"><p>Each remote system is represented by <a class="el" href="classRakNet_1_1Connection__RM3.html" title="Each remote system is represented by Connection_RM3. Used to allocate Replica3 and track which instan...">Connection_RM3</a>. Used to allocate <a class="el" href="classRakNet_1_1Replica3.html" title="Base class for your replicated objects for the ReplicaManager3 system.">Replica3</a> and track which instances have been allocated. </p>
  113. <p>Important function: <a class="el" href="classRakNet_1_1Connection__RM3.html#ab05d85100f726378f2ed73c6792a5b46" title="Class factory to create a Replica3 instance, given a user-defined identifier.">AllocReplica()</a> - must be overridden to create an object given an identifier for that object, which you define for all objects in your game </p>
  114. </div><h2 class="groupheader">Member Enumeration Documentation</h2>
  115. <a class="anchor" id="a1d176e2d5c47c15ca341d8efaecb637e"></a>
  116. <div class="memitem">
  117. <div class="memproto">
  118. <table class="memname">
  119. <tr>
  120. <td class="memname">enum <a class="el" href="classRakNet_1_1Connection__RM3.html#a1d176e2d5c47c15ca341d8efaecb637e">RakNet::Connection_RM3::ConstructionMode</a></td>
  121. </tr>
  122. </table>
  123. </div><div class="memdoc">
  124. <p>List of enumerations for how to get the list of valid objects for other systems. </p>
  125. <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
  126. <tr><td valign="top"><em><a class="anchor" id="a1d176e2d5c47c15ca341d8efaecb637ea5a5b467fa02165891a53b941b0e20516"></a>QUERY_REPLICA_FOR_CONSTRUCTION</em>&nbsp;</td><td>
  127. <p>For every object that does not exist on the remote system, call <a class="el" href="classRakNet_1_1Replica3.html#ad826e04ce6a0db4e32c3d990fd27e943" title="Ask if this object, which does not exist on destinationConnection should (now) be sent to that system...">Replica3::QueryConstruction()</a> every tick. Do not call <a class="el" href="classRakNet_1_1Replica3.html#ab476629672d62c7c33c8b1d8aa606918" title="Ask if this object, which does exist on destinationConnection should be removed from the remote syste...">Replica3::QueryDestruction()</a> Do not call <a class="el" href="classRakNet_1_1Connection__RM3.html#aa560e8d31cfc26b7aef79cc815c916bf" title="Callback used when QueryConstructionMode() returns QUERY_CONNECTION_FOR_REPLICA_LIST.">Connection_RM3::QueryReplicaList()</a> </p>
  128. </td></tr>
  129. <tr><td valign="top"><em><a class="anchor" id="a1d176e2d5c47c15ca341d8efaecb637ea6798d0f74d05dc9577b6fa5917b7aea5"></a>QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION</em>&nbsp;</td><td>
  130. <p>For every object that does not exist on the remote system, call <a class="el" href="classRakNet_1_1Replica3.html#ad826e04ce6a0db4e32c3d990fd27e943" title="Ask if this object, which does not exist on destinationConnection should (now) be sent to that system...">Replica3::QueryConstruction()</a> every tick. Based on the call, the object may be sent to the other system. For every object that does exist on the remote system, call <a class="el" href="classRakNet_1_1Replica3.html#ab476629672d62c7c33c8b1d8aa606918" title="Ask if this object, which does exist on destinationConnection should be removed from the remote syste...">Replica3::QueryDestruction()</a> every tick. Based on the call, the object may be deleted on the other system. Do not call <a class="el" href="classRakNet_1_1Connection__RM3.html#aa560e8d31cfc26b7aef79cc815c916bf" title="Callback used when QueryConstructionMode() returns QUERY_CONNECTION_FOR_REPLICA_LIST.">Connection_RM3::QueryReplicaList()</a> </p>
  131. </td></tr>
  132. <tr><td valign="top"><em><a class="anchor" id="a1d176e2d5c47c15ca341d8efaecb637ea55be3519ea316178e9a27300065e7544"></a>QUERY_CONNECTION_FOR_REPLICA_LIST</em>&nbsp;</td><td>
  133. <p>Do not call <a class="el" href="classRakNet_1_1Replica3.html#ad826e04ce6a0db4e32c3d990fd27e943" title="Ask if this object, which does not exist on destinationConnection should (now) be sent to that system...">Replica3::QueryConstruction()</a> or <a class="el" href="classRakNet_1_1Replica3.html#ab476629672d62c7c33c8b1d8aa606918" title="Ask if this object, which does exist on destinationConnection should be removed from the remote syste...">Replica3::QueryDestruction()</a> Call <a class="el" href="classRakNet_1_1Connection__RM3.html#aa560e8d31cfc26b7aef79cc815c916bf" title="Callback used when QueryConstructionMode() returns QUERY_CONNECTION_FOR_REPLICA_LIST.">Connection_RM3::QueryReplicaList()</a> to determine which objects exist on remote systems This can be faster than QUERY_REPLICA_FOR_CONSTRUCTION and QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION for large worlds See GridSectorizer.h under /Source for code that can help with this </p>
  134. </td></tr>
  135. </table>
  136. </dd>
  137. </dl>
  138. </div>
  139. </div>
  140. <h2 class="groupheader">Member Function Documentation</h2>
  141. <a class="anchor" id="ab05d85100f726378f2ed73c6792a5b46"></a>
  142. <div class="memitem">
  143. <div class="memproto">
  144. <table class="mlabels">
  145. <tr>
  146. <td class="mlabels-left">
  147. <table class="memname">
  148. <tr>
  149. <td class="memname">virtual <a class="el" href="classRakNet_1_1Replica3.html">Replica3</a>* RakNet::Connection_RM3::AllocReplica </td>
  150. <td>(</td>
  151. <td class="paramtype"><a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> *&#160;</td>
  152. <td class="paramname"><em>allocationIdBitstream</em>, </td>
  153. </tr>
  154. <tr>
  155. <td class="paramkey"></td>
  156. <td></td>
  157. <td class="paramtype"><a class="el" href="classRakNet_1_1ReplicaManager3.html">ReplicaManager3</a> *&#160;</td>
  158. <td class="paramname"><em>replicaManager3</em>&#160;</td>
  159. </tr>
  160. <tr>
  161. <td></td>
  162. <td>)</td>
  163. <td></td><td></td>
  164. </tr>
  165. </table>
  166. </td>
  167. <td class="mlabels-right">
  168. <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
  169. </tr>
  170. </table>
  171. </div><div class="memdoc">
  172. <p>Class factory to create a <a class="el" href="classRakNet_1_1Replica3.html" title="Base class for your replicated objects for the ReplicaManager3 system.">Replica3</a> instance, given a user-defined identifier. </p>
  173. <p>Identifier is returned by <a class="el" href="classRakNet_1_1Replica3.html#ada0458bb521a455f23e08742c9e1b0b9" title="Write a unique identifer that can be read on a remote system to create an object of this same class...">Replica3::WriteAllocationID()</a> for what type of class to create.<br/>
  174. This is called when you download a replica from another system.<br/>
  175. See Replica3::Dealloc for the corresponding destruction message.<br/>
  176. Return 0 if unable to create the intended object. Note, in that case the other system will still think we have the object and will try to serialize object updates to us. Generally, you should not send objects the other system cannot create.<br/>
  177. </p>
  178. <dl class="section see"><dt>See Also</dt><dd><a class="el" href="classRakNet_1_1Replica3.html#ada0458bb521a455f23e08742c9e1b0b9" title="Write a unique identifer that can be read on a remote system to create an object of this same class...">Replica3::WriteAllocationID()</a>. Sample implementation:<br/>
  179. {<a class="el" href="classRakNet_1_1RakString.html" title="String class.">RakNet::RakString</a> typeName; allocationIdBitstream-&gt;Read(typeName); if (typeName=="Soldier") return new Soldier; return 0;}<br/>
  180. </dd></dl>
  181. <dl class="params"><dt>Parameters</dt><dd>
  182. <table class="params">
  183. <tr><td class="paramdir">[in]</td><td class="paramname">allocationIdBitstream</td><td>user-defined bitstream uniquely identifying a game object type </td></tr>
  184. <tr><td class="paramdir">[in]</td><td class="paramname">replicaManager3</td><td>Instance of <a class="el" href="classRakNet_1_1ReplicaManager3.html" title="System to help automate game object construction, destruction, and serialization.">ReplicaManager3</a> that controls this connection </td></tr>
  185. </table>
  186. </dd>
  187. </dl>
  188. <dl class="section return"><dt>Returns</dt><dd>The new replica instance </dd></dl>
  189. </div>
  190. </div>
  191. <a class="anchor" id="a293a2c18871dc91410953e931d90ca52"></a>
  192. <div class="memitem">
  193. <div class="memproto">
  194. <table class="mlabels">
  195. <tr>
  196. <td class="mlabels-left">
  197. <table class="memname">
  198. <tr>
  199. <td class="memname">virtual void RakNet::Connection_RM3::DeserializeOnDownloadComplete </td>
  200. <td>(</td>
  201. <td class="paramtype"><a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> *&#160;</td>
  202. <td class="paramname"><em>bitStream</em></td><td>)</td>
  203. <td></td>
  204. </tr>
  205. </table>
  206. </td>
  207. <td class="mlabels-right">
  208. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
  209. </tr>
  210. </table>
  211. </div><div class="memdoc">
  212. <p>Receives whatever was written in <a class="el" href="classRakNet_1_1Connection__RM3.html#a293a2c18871dc91410953e931d90ca52">DeserializeOnDownloadComplete()</a> </p>
  213. <dl class="params"><dt>Parameters</dt><dd>
  214. <table class="params">
  215. <tr><td class="paramdir">[in]</td><td class="paramname">bitStream</td><td>Written in <a class="el" href="classRakNet_1_1Connection__RM3.html#a536d4413a4243b6732bc2a503d14d03e">SerializeOnDownloadComplete()</a> </td></tr>
  216. </table>
  217. </dd>
  218. </dl>
  219. </div>
  220. </div>
  221. <a class="anchor" id="acf23e94dddb214cf0d631fe074cd4467"></a>
  222. <div class="memitem">
  223. <div class="memproto">
  224. <table class="mlabels">
  225. <tr>
  226. <td class="mlabels-left">
  227. <table class="memname">
  228. <tr>
  229. <td class="memname">virtual void RakNet::Connection_RM3::DeserializeOnDownloadStarted </td>
  230. <td>(</td>
  231. <td class="paramtype"><a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> *&#160;</td>
  232. <td class="paramname"><em>bitStream</em></td><td>)</td>
  233. <td></td>
  234. </tr>
  235. </table>
  236. </td>
  237. <td class="mlabels-right">
  238. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
  239. </tr>
  240. </table>
  241. </div><div class="memdoc">
  242. <p>Receives whatever was written in <a class="el" href="classRakNet_1_1Connection__RM3.html#ad3661c8e40c359fc54bdc2066acb8dba">SerializeOnDownloadStarted()</a> </p>
  243. <dl class="params"><dt>Parameters</dt><dd>
  244. <table class="params">
  245. <tr><td class="paramdir">[in]</td><td class="paramname">bitStream</td><td>Written in <a class="el" href="classRakNet_1_1Connection__RM3.html#ad3661c8e40c359fc54bdc2066acb8dba">SerializeOnDownloadStarted()</a> </td></tr>
  246. </table>
  247. </dd>
  248. </dl>
  249. </div>
  250. </div>
  251. <a class="anchor" id="a8c14767a72a11032176b8d5ef513a798"></a>
  252. <div class="memitem">
  253. <div class="memproto">
  254. <table class="mlabels">
  255. <tr>
  256. <td class="mlabels-left">
  257. <table class="memname">
  258. <tr>
  259. <td class="memname">virtual void RakNet::Connection_RM3::GetConstructedReplicas </td>
  260. <td>(</td>
  261. <td class="paramtype"><a class="el" href="classDataStructures_1_1List.html">DataStructures::List</a>&lt; <a class="el" href="classRakNet_1_1Replica3.html">Replica3</a> * &gt; &amp;&#160;</td>
  262. <td class="paramname"><em>objectsTheyDoHave</em></td><td>)</td>
  263. <td></td>
  264. </tr>
  265. </table>
  266. </td>
  267. <td class="mlabels-right">
  268. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  269. </tr>
  270. </table>
  271. </div><div class="memdoc">
  272. <p>Get list of all replicas that are constructed for this connection. </p>
  273. <dl class="params"><dt>Parameters</dt><dd>
  274. <table class="params">
  275. <tr><td class="paramdir">[out]</td><td class="paramname">objectsTheyDoHave</td><td>Destination list. Returned in sorted ascending order, sorted on the value of the <a class="el" href="classRakNet_1_1Replica3.html" title="Base class for your replicated objects for the ReplicaManager3 system.">Replica3</a> pointer. </td></tr>
  276. </table>
  277. </dd>
  278. </dl>
  279. </div>
  280. </div>
  281. <a class="anchor" id="a8a5f0389054064ee9d51852ad6ebca05"></a>
  282. <div class="memitem">
  283. <div class="memproto">
  284. <table class="mlabels">
  285. <tr>
  286. <td class="mlabels-left">
  287. <table class="memname">
  288. <tr>
  289. <td class="memname">bool RakNet::Connection_RM3::GetDownloadWasCompleted </td>
  290. <td>(</td>
  291. <td class="paramtype">void&#160;</td>
  292. <td class="paramname"></td><td>)</td>
  293. <td> const</td>
  294. </tr>
  295. </table>
  296. </td>
  297. <td class="mlabels-right">
  298. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  299. </tr>
  300. </table>
  301. </div><div class="memdoc">
  302. <dl class="section return"><dt>Returns</dt><dd>True if ID_REPLICA_MANAGER_DOWNLOAD_COMPLETE arrived for this connection </dd></dl>
  303. </div>
  304. </div>
  305. <a class="anchor" id="ad3f7cec74bfac88a3ae095664e6a29c0"></a>
  306. <div class="memitem">
  307. <div class="memproto">
  308. <table class="mlabels">
  309. <tr>
  310. <td class="mlabels-left">
  311. <table class="memname">
  312. <tr>
  313. <td class="memname"><a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a> RakNet::Connection_RM3::GetRakNetGUID </td>
  314. <td>(</td>
  315. <td class="paramtype">void&#160;</td>
  316. <td class="paramname"></td><td>)</td>
  317. <td> const</td>
  318. </tr>
  319. </table>
  320. </td>
  321. <td class="mlabels-right">
  322. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  323. </tr>
  324. </table>
  325. </div><div class="memdoc">
  326. <dl class="section return"><dt>Returns</dt><dd>Returns the <a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a> passed to the constructor of this object </dd></dl>
  327. </div>
  328. </div>
  329. <a class="anchor" id="a4282ffedd8130d793f32ea5bfa2ba0b3"></a>
  330. <div class="memitem">
  331. <div class="memproto">
  332. <table class="mlabels">
  333. <tr>
  334. <td class="mlabels-left">
  335. <table class="memname">
  336. <tr>
  337. <td class="memname"><a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> RakNet::Connection_RM3::GetSystemAddress </td>
  338. <td>(</td>
  339. <td class="paramtype">void&#160;</td>
  340. <td class="paramname"></td><td>)</td>
  341. <td> const</td>
  342. </tr>
  343. </table>
  344. </td>
  345. <td class="mlabels-right">
  346. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  347. </tr>
  348. </table>
  349. </div><div class="memdoc">
  350. <dl class="section return"><dt>Returns</dt><dd>The system address passed to the constructor of this object </dd></dl>
  351. </div>
  352. </div>
  353. <a class="anchor" id="a1b05a20c8a6ceabb86c08bc175c7906d"></a>
  354. <div class="memitem">
  355. <div class="memproto">
  356. <table class="memname">
  357. <tr>
  358. <td class="memname">bool RakNet::Connection_RM3::HasReplicaConstructed </td>
  359. <td>(</td>
  360. <td class="paramtype"><a class="el" href="classRakNet_1_1Replica3.html">RakNet::Replica3</a> *&#160;</td>
  361. <td class="paramname"><em>replica</em></td><td>)</td>
  362. <td></td>
  363. </tr>
  364. </table>
  365. </div><div class="memdoc">
  366. <p>Returns true if we think this remote connection has this replica constructed </p>
  367. <dl class="params"><dt>Parameters</dt><dd>
  368. <table class="params">
  369. <tr><td class="paramdir">[in]</td><td class="paramname">replica3</td><td>Which replica we are querying </td></tr>
  370. </table>
  371. </dd>
  372. </dl>
  373. <dl class="section return"><dt>Returns</dt><dd>True if constructed, false othewise </dd></dl>
  374. </div>
  375. </div>
  376. <a class="anchor" id="a918f5c8d69e2ede6c9469fd9ade96d32"></a>
  377. <div class="memitem">
  378. <div class="memproto">
  379. <table class="mlabels">
  380. <tr>
  381. <td class="mlabels-left">
  382. <table class="memname">
  383. <tr>
  384. <td class="memname">virtual <a class="el" href="classRakNet_1_1Connection__RM3.html#a1d176e2d5c47c15ca341d8efaecb637e">ConstructionMode</a> RakNet::Connection_RM3::QueryConstructionMode </td>
  385. <td>(</td>
  386. <td class="paramtype">void&#160;</td>
  387. <td class="paramname"></td><td>)</td>
  388. <td> const</td>
  389. </tr>
  390. </table>
  391. </td>
  392. <td class="mlabels-right">
  393. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
  394. </tr>
  395. </table>
  396. </div><div class="memdoc">
  397. <p>Queries how to get the list of objects that exist on remote systems. </p>
  398. <p>The default of calling QueryConstruction for every known object is easy to use, but not efficient, especially for large worlds where many objects are outside of the player's circle of influence.<br/>
  399. QueryDestruction is also not necessarily useful or efficient, as object destruction tends to happen in known cases, and can be accomplished by calling <a class="el" href="classRakNet_1_1Replica3.html#a7c6a22d575326cddec3a70eb1c2568f2">Replica3::BroadcastDestruction()</a> <a class="el" href="classRakNet_1_1Connection__RM3.html#a918f5c8d69e2ede6c9469fd9ade96d32" title="Queries how to get the list of objects that exist on remote systems.">QueryConstructionMode()</a> allows you to specify more efficient algorithms than the default when overriden. </p>
  400. <dl class="section return"><dt>Returns</dt><dd>How to get the list of objects that exist on the remote system. You should always return the same value for a given connection </dd></dl>
  401. </div>
  402. </div>
  403. <a class="anchor" id="aadc711493e2022956fe51ea8592b57d2"></a>
  404. <div class="memitem">
  405. <div class="memproto">
  406. <table class="mlabels">
  407. <tr>
  408. <td class="mlabels-left">
  409. <table class="memname">
  410. <tr>
  411. <td class="memname">virtual bool RakNet::Connection_RM3::QueryGroupDownloadMessages </td>
  412. <td>(</td>
  413. <td class="paramtype">void&#160;</td>
  414. <td class="paramname"></td><td>)</td>
  415. <td> const</td>
  416. </tr>
  417. </table>
  418. </td>
  419. <td class="mlabels-right">
  420. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
  421. </tr>
  422. </table>
  423. </div><div class="memdoc">
  424. <p>Return whether or not downloads to our system should all be processed the same tick (call to <a class="el" href="classRakNet_1_1RakPeer.html#a46d90fb903e747f76d63eb3a96543740" title="Gets a message from the incoming message queue.">RakPeer::Receive()</a> ) </p>
  425. <p>Normally the system will send ID_REPLICA_MANAGER_DOWNLOAD_STARTED, ID_REPLICA_MANAGER_CONSTRUCTION for all downloaded objects, ID_REPLICA_MANAGER_SERIALIZE for each downloaded object, and lastly ID_REPLICA_MANAGER_DOWNLOAD_COMPLETE. This enables the application to show a downloading splash screen on ID_REPLICA_MANAGER_DOWNLOAD_STARTED, a progress bar, and to close the splash screen and activate all objects on ID_REPLICA_MANAGER_DOWNLOAD_COMPLETE However, if the application was not set up for this then it would result in incomplete objects spread out over time, and cause problems If you return true from <a class="el" href="classRakNet_1_1Connection__RM3.html#aadc711493e2022956fe51ea8592b57d2" title="Return whether or not downloads to our system should all be processed the same tick (call to RakPeer:...">QueryGroupDownloadMessages()</a>, then these messages will be returned all in one tick, returned only when the download is complete </p>
  426. <dl class="section note"><dt>Note</dt><dd>ID_REPLICA_MANAGER_DOWNLOAD_STARTED calls the callback <a class="el" href="classRakNet_1_1Connection__RM3.html#acf23e94dddb214cf0d631fe074cd4467">DeserializeOnDownloadStarted()</a> </dd>
  427. <dd>
  428. ID_REPLICA_MANAGER_DOWNLOAD_COMPLETE calls the callback <a class="el" href="classRakNet_1_1Connection__RM3.html#a293a2c18871dc91410953e931d90ca52">DeserializeOnDownloadComplete()</a> </dd></dl>
  429. </div>
  430. </div>
  431. <a class="anchor" id="aa560e8d31cfc26b7aef79cc815c916bf"></a>
  432. <div class="memitem">
  433. <div class="memproto">
  434. <table class="mlabels">
  435. <tr>
  436. <td class="mlabels-left">
  437. <table class="memname">
  438. <tr>
  439. <td class="memname">virtual void RakNet::Connection_RM3::QueryReplicaList </td>
  440. <td>(</td>
  441. <td class="paramtype"><a class="el" href="classDataStructures_1_1List.html">DataStructures::List</a>&lt; <a class="el" href="classRakNet_1_1Replica3.html">Replica3</a> * &gt; &amp;&#160;</td>
  442. <td class="paramname"><em>newReplicasToCreate</em>, </td>
  443. </tr>
  444. <tr>
  445. <td class="paramkey"></td>
  446. <td></td>
  447. <td class="paramtype"><a class="el" href="classDataStructures_1_1List.html">DataStructures::List</a>&lt; <a class="el" href="classRakNet_1_1Replica3.html">Replica3</a> * &gt; &amp;&#160;</td>
  448. <td class="paramname"><em>existingReplicasToDestroy</em>&#160;</td>
  449. </tr>
  450. <tr>
  451. <td></td>
  452. <td>)</td>
  453. <td></td><td></td>
  454. </tr>
  455. </table>
  456. </td>
  457. <td class="mlabels-right">
  458. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
  459. </tr>
  460. </table>
  461. </div><div class="memdoc">
  462. <p>Callback used when <a class="el" href="classRakNet_1_1Connection__RM3.html#a918f5c8d69e2ede6c9469fd9ade96d32" title="Queries how to get the list of objects that exist on remote systems.">QueryConstructionMode()</a> returns QUERY_CONNECTION_FOR_REPLICA_LIST. </p>
  463. <p>This advantage of this callback is if that there are many objects that a particular connection does not have, then we do not have to iterate through those objects calling QueryConstruction() for each of them.<br/>
  464. BR&gt; See GridSectorizer in the Source directory as a method to find all objects within a certain radius in a fast way.<br/>
  465. BR&gt; </p>
  466. <dl class="params"><dt>Parameters</dt><dd>
  467. <table class="params">
  468. <tr><td class="paramdir">[out]</td><td class="paramname">newReplicasToCreate</td><td>Anything in this list will be created on the remote system </td></tr>
  469. <tr><td class="paramdir">[out]</td><td class="paramname">existingReplicasToDestroy</td><td>Anything in this list will be destroyed on the remote system </td></tr>
  470. </table>
  471. </dd>
  472. </dl>
  473. </div>
  474. </div>
  475. <a class="anchor" id="a9dc79ed7a9252f7ae358b62ec1fbb195"></a>
  476. <div class="memitem">
  477. <div class="memproto">
  478. <table class="mlabels">
  479. <tr>
  480. <td class="mlabels-left">
  481. <table class="memname">
  482. <tr>
  483. <td class="memname">virtual bool RakNet::Connection_RM3::QuerySerializationList </td>
  484. <td>(</td>
  485. <td class="paramtype"><a class="el" href="classDataStructures_1_1List.html">DataStructures::List</a>&lt; <a class="el" href="classRakNet_1_1Replica3.html">Replica3</a> * &gt; &amp;&#160;</td>
  486. <td class="paramname"><em>replicasToSerialize</em></td><td>)</td>
  487. <td></td>
  488. </tr>
  489. </table>
  490. </td>
  491. <td class="mlabels-right">
  492. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
  493. </tr>
  494. </table>
  495. </div><div class="memdoc">
  496. <p>Override which replicas to serialize and in what order for a connection for a <a class="el" href="classRakNet_1_1ReplicaManager3.html#a8aa2fdb5b20aeeab74b037bc1632c9e9" title="Call interfaces, send data.">ReplicaManager3::Update()</a> cycle. </p>
  497. <p>By default, <a class="el" href="classRakNet_1_1Connection__RM3.html" title="Each remote system is represented by Connection_RM3. Used to allocate Replica3 and track which instan...">Connection_RM3</a> will iterate through queryToSerializeReplicaList and call QuerySerialization() on each Replica in that list queryToSerializeReplicaList is populated in the order in which <a class="el" href="classRakNet_1_1ReplicaManager3.html#a9046d827471c0be651b54b7efb7b6f28" title="Adds a replicated object to the system.">ReplicaManager3::Reference()</a> is called for those objects. If you write to to <em>replicasToSerialize</em> and return true, you can control in what order and for which replicas to call QuerySerialization() Example use case: We have more data to send then the bandwidth supports, so want to prioritize sends. For example enemies shooting are more important than animation effects When <a class="el" href="classRakNet_1_1Connection__RM3.html#a9dc79ed7a9252f7ae358b62ec1fbb195" title="Override which replicas to serialize and in what order for a connection for a ReplicaManager3::Update...">QuerySerializationList()</a>, sort objects by priority, and write the list to <em>replicasToSerialize</em>, optionally skipping objects with a lower serialization frequency If you hit your bandwidth limit when checking <a class="el" href="structRakNet_1_1SerializeParameters.html#ac69a7436aa2040a35ba5c43079609321">SerializeParameters::bitsWrittenSoFar</a>, you can return RM3SR_DO_NOT_SERIALIZE for all remaining items </p>
  498. <dl class="section note"><dt>Note</dt><dd>Only replicas written to replicasToSerialize are transmitted. Even if you returned RM3SR_SERIALIZED_ALWAYS a prior <a class="el" href="classRakNet_1_1ReplicaManager3.html#a8aa2fdb5b20aeeab74b037bc1632c9e9" title="Call interfaces, send data.">ReplicaManager3::Update()</a> cycle, the replica will not be transmitted if it is not in replicasToSerialize </dd>
  499. <dd>
  500. If you do not know what objects are candidates for serialization, you can use queryToSerializeReplicaList as a source for your filtering or sorting operations </dd></dl>
  501. <dl class="params"><dt>Parameters</dt><dd>
  502. <table class="params">
  503. <tr><td class="paramdir">[in]</td><td class="paramname">replicasToSerialize</td><td>List of replicas to call QuerySerialization() on </td></tr>
  504. </table>
  505. </dd>
  506. </dl>
  507. <dl class="section return"><dt>Returns</dt><dd>Return true to use replicasToSerialize (replicasToSerialize may be empty if desired). Otherwise return false. </dd></dl>
  508. </div>
  509. </div>
  510. <a class="anchor" id="a536d4413a4243b6732bc2a503d14d03e"></a>
  511. <div class="memitem">
  512. <div class="memproto">
  513. <table class="mlabels">
  514. <tr>
  515. <td class="mlabels-left">
  516. <table class="memname">
  517. <tr>
  518. <td class="memname">virtual void RakNet::Connection_RM3::SerializeOnDownloadComplete </td>
  519. <td>(</td>
  520. <td class="paramtype"><a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> *&#160;</td>
  521. <td class="paramname"><em>bitStream</em></td><td>)</td>
  522. <td></td>
  523. </tr>
  524. </table>
  525. </td>
  526. <td class="mlabels-right">
  527. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
  528. </tr>
  529. </table>
  530. </div><div class="memdoc">
  531. <p>When a new connection connects, after constructing and serialization all objects, <a class="el" href="classRakNet_1_1Connection__RM3.html#a536d4413a4243b6732bc2a503d14d03e">SerializeOnDownloadComplete()</a> is called </p>
  532. <dl class="params"><dt>Parameters</dt><dd>
  533. <table class="params">
  534. <tr><td class="paramdir">[out]</td><td class="paramname">bitStream</td><td>Passed to <a class="el" href="classRakNet_1_1Connection__RM3.html#a293a2c18871dc91410953e931d90ca52">DeserializeOnDownloadComplete()</a> </td></tr>
  535. </table>
  536. </dd>
  537. </dl>
  538. </div>
  539. </div>
  540. <a class="anchor" id="ad3661c8e40c359fc54bdc2066acb8dba"></a>
  541. <div class="memitem">
  542. <div class="memproto">
  543. <table class="mlabels">
  544. <tr>
  545. <td class="mlabels-left">
  546. <table class="memname">
  547. <tr>
  548. <td class="memname">virtual void RakNet::Connection_RM3::SerializeOnDownloadStarted </td>
  549. <td>(</td>
  550. <td class="paramtype"><a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> *&#160;</td>
  551. <td class="paramname"><em>bitStream</em></td><td>)</td>
  552. <td></td>
  553. </tr>
  554. </table>
  555. </td>
  556. <td class="mlabels-right">
  557. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
  558. </tr>
  559. </table>
  560. </div><div class="memdoc">
  561. <p>When a new connection connects, before sending any objects, <a class="el" href="classRakNet_1_1Connection__RM3.html#ad3661c8e40c359fc54bdc2066acb8dba">SerializeOnDownloadStarted()</a> is called </p>
  562. <dl class="params"><dt>Parameters</dt><dd>
  563. <table class="params">
  564. <tr><td class="paramdir">[out]</td><td class="paramname">bitStream</td><td>Passed to <a class="el" href="classRakNet_1_1Connection__RM3.html#acf23e94dddb214cf0d631fe074cd4467">DeserializeOnDownloadStarted()</a> </td></tr>
  565. </table>
  566. </dd>
  567. </dl>
  568. </div>
  569. </div>
  570. <hr/>The documentation for this class was generated from the following file:<ul>
  571. <li>D:/temp/RakNet_PC/Source/<a class="el" href="ReplicaManager3_8h.html">ReplicaManager3.h</a></li>
  572. </ul>
  573. </div><!-- contents -->
  574. <!-- start footer part -->
  575. <hr class="footer"/><address class="footer"><small>
  576. Generated on Mon Jun 2 2014 20:10:29 for RakNet by &#160;<a href="http://www.doxygen.org/index.html">
  577. <img class="footer" src="doxygen.png" alt="doxygen"/>
  578. </a> 1.8.2
  579. </small></address>
  580. </body>
  581. </html>
粤ICP备19079148号