| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498 |
- <!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"/>
- <title>RakNet: RakNet::Replica3 Class 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="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 style="padding-left: 0.5em;">
- <div id="projectname">RakNet
-  <span id="projectnumber">4.0</span>
- </div>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <!-- end header part -->
- <!-- Generated by Doxygen 1.8.2 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="pages.html"><span>Related Pages</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="namespaces.html"><span>Namespaces</span></a></li>
- <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="annotated.html"><span>Class List</span></a></li>
- <li><a href="classes.html"><span>Class Index</span></a></li>
- <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
- <li><a href="functions.html"><span>Class Members</span></a></li>
- </ul>
- </div>
- <div id="nav-path" class="navpath">
- <ul>
- <li class="navelem"><a class="el" href="namespaceRakNet.html">RakNet</a></li><li class="navelem"><a class="el" href="classRakNet_1_1Replica3.html">Replica3</a></li> </ul>
- </div>
- </div><!-- top -->
- <div class="header">
- <div class="summary">
- <a href="#pub-methods">Public Member Functions</a> |
- <a href="#pub-attribs">Public Attributes</a> |
- <a href="classRakNet_1_1Replica3-members.html">List of all members</a> </div>
- <div class="headertitle">
- <div class="title">RakNet::Replica3 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>
- </div><!--header-->
- <div class="contents">
- <p>Base class for your replicated objects for the <a class="el" href="classRakNet_1_1ReplicaManager3.html" title="System to help automate game object construction, destruction, and serialization.">ReplicaManager3</a> system.
- <a href="classRakNet_1_1Replica3.html#details">More...</a></p>
- <p><code>#include <ReplicaManager3.h></code></p>
- <div class="dynheader">
- Inheritance diagram for RakNet::Replica3:</div>
- <div class="dyncontent">
- <div class="center">
- <img src="classRakNet_1_1Replica3.png" usemap="#RakNet::Replica3_map" alt=""/>
- <map id="RakNet::Replica3_map" name="RakNet::Replica3_map">
- <area href="classRakNet_1_1NetworkIDObject.html" title="Unique shared ids for each object instance." alt="RakNet::NetworkIDObject" shape="rect" coords="0,0,256,24"/>
- <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< parent_type >" shape="rect" coords="0,112,256,136"/>
- </map>
- </div></div>
- <table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
- Public Member Functions</h2></td></tr>
- <tr class="memitem:a1fbe0ed0e0c540bbad1da2549b1a4074"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#a1fbe0ed0e0c540bbad1da2549b1a4074">~Replica3</a> ()</td></tr>
- <tr class="separator:a1fbe0ed0e0c540bbad1da2549b1a4074"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ada0458bb521a455f23e08742c9e1b0b9"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#ada0458bb521a455f23e08742c9e1b0b9">WriteAllocationID</a> (<a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> *destinationConnection, <a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> *allocationIdBitstream) const =0</td></tr>
- <tr class="memdesc:ada0458bb521a455f23e08742c9e1b0b9"><td class="mdescLeft"> </td><td class="mdescRight">Write a unique identifer that can be read on a remote system to create an object of this same class. <a href="#ada0458bb521a455f23e08742c9e1b0b9"></a><br/></td></tr>
- <tr class="separator:ada0458bb521a455f23e08742c9e1b0b9"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ad826e04ce6a0db4e32c3d990fd27e943"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__REPLICA__MANAGER__GROUP3.html#ga16aaecf3c23582f0de6652b348ccfa38">RM3ConstructionState</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#ad826e04ce6a0db4e32c3d990fd27e943">QueryConstruction</a> (<a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> *destinationConnection, <a class="el" href="classRakNet_1_1ReplicaManager3.html">ReplicaManager3</a> *replicaManager3)=0</td></tr>
- <tr class="memdesc:ad826e04ce6a0db4e32c3d990fd27e943"><td class="mdescLeft"> </td><td class="mdescRight">Ask if this object, which does not exist on <em>destinationConnection</em> should (now) be sent to that system. <a href="#ad826e04ce6a0db4e32c3d990fd27e943"></a><br/></td></tr>
- <tr class="separator:ad826e04ce6a0db4e32c3d990fd27e943"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ab476629672d62c7c33c8b1d8aa606918"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__REPLICA__MANAGER__GROUP3.html#ga400c157a937f062bd8a3c19a49d33541">RM3DestructionState</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#ab476629672d62c7c33c8b1d8aa606918">QueryDestruction</a> (<a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> *destinationConnection, <a class="el" href="classRakNet_1_1ReplicaManager3.html">ReplicaManager3</a> *replicaManager3)</td></tr>
- <tr class="memdesc:ab476629672d62c7c33c8b1d8aa606918"><td class="mdescLeft"> </td><td class="mdescRight">Ask if this object, which does exist on <em>destinationConnection</em> should be removed from the remote system. <a href="#ab476629672d62c7c33c8b1d8aa606918"></a><br/></td></tr>
- <tr class="separator:ab476629672d62c7c33c8b1d8aa606918"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a79bd207fb79055d2b39943eb1c6b1f58"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#a79bd207fb79055d2b39943eb1c6b1f58">QueryRemoteConstruction</a> (<a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> *sourceConnection)=0</td></tr>
- <tr class="memdesc:a79bd207fb79055d2b39943eb1c6b1f58"><td class="mdescLeft"> </td><td class="mdescRight">We're about to call <a class="el" href="classRakNet_1_1Replica3.html#a8e18c95612054b601ce0149f91a5a34d" title="Read data written by Replica3::SerializeConstruction()">DeserializeConstruction()</a> on this <a class="el" href="classRakNet_1_1Replica3.html" title="Base class for your replicated objects for the ReplicaManager3 system.">Replica3</a>. If <a class="el" href="classRakNet_1_1Replica3.html#a79bd207fb79055d2b39943eb1c6b1f58" title="We're about to call DeserializeConstruction() on this Replica3. If QueryRemoteConstruction() returns ...">QueryRemoteConstruction()</a> returns false, this object is deleted instead. <a href="#a79bd207fb79055d2b39943eb1c6b1f58"></a><br/></td></tr>
- <tr class="separator:a79bd207fb79055d2b39943eb1c6b1f58"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a2e6e18213d1c45012157149148994299"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2e6e18213d1c45012157149148994299"></a>
- virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#a2e6e18213d1c45012157149148994299">QueryRelayDestruction</a> (<a class="el" href="classRakNet_1_1Connection__RM3.html">Connection_RM3</a> *sourceConnection) const </td></tr>
- <tr class="memdesc:a2e6e18213d1c45012157149148994299"><td class="mdescLeft"> </td><td class="mdescRight">We got a message from a connection to destroy this replica Return true to automatically relay the destruction message to all our other connections For a client in client/server, it does not matter what this funtion returns For a server in client/server, this should normally return true For a peer in peer to peer, you can normally return false since the original destroying peer would have told all other peers about the destruction If a system gets a destruction command for an object that was already destroyed, the destruction message is ignored. <br/></td></tr>
- <tr class="separator:a2e6e18213d1c45012157149148994299"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a8297aa828aa9261d8ff6194f0023423a"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#a8297aa828aa9261d8ff6194f0023423a">SerializeConstruction</a> (<a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> *constructionBitstream, <a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> *destinationConnection)=0</td></tr>
- <tr class="memdesc:a8297aa828aa9261d8ff6194f0023423a"><td class="mdescLeft"> </td><td class="mdescRight">Write data to be sent only when the object is constructed on a remote system. <a href="#a8297aa828aa9261d8ff6194f0023423a"></a><br/></td></tr>
- <tr class="separator:a8297aa828aa9261d8ff6194f0023423a"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a8e18c95612054b601ce0149f91a5a34d"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#a8e18c95612054b601ce0149f91a5a34d">DeserializeConstruction</a> (<a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> *constructionBitstream, <a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> *sourceConnection)=0</td></tr>
- <tr class="memdesc:a8e18c95612054b601ce0149f91a5a34d"><td class="mdescLeft"> </td><td class="mdescRight">Read data written by <a class="el" href="classRakNet_1_1Replica3.html#a8297aa828aa9261d8ff6194f0023423a" title="Write data to be sent only when the object is constructed on a remote system.">Replica3::SerializeConstruction()</a> <a href="#a8e18c95612054b601ce0149f91a5a34d"></a><br/></td></tr>
- <tr class="separator:a8e18c95612054b601ce0149f91a5a34d"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a245a99bf6338ed42ab5386be11417fde"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#a245a99bf6338ed42ab5386be11417fde">SerializeConstructionExisting</a> (<a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> *constructionBitstream, <a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> *destinationConnection)</td></tr>
- <tr class="separator:a245a99bf6338ed42ab5386be11417fde"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a1949dd5597c106d7538ed602133ec04d"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#a1949dd5597c106d7538ed602133ec04d">DeserializeConstructionExisting</a> (<a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> *constructionBitstream, <a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> *sourceConnection)</td></tr>
- <tr class="separator:a1949dd5597c106d7538ed602133ec04d"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ac78ab07796290ede00559de9d4ceb72d"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#ac78ab07796290ede00559de9d4ceb72d">SerializeDestruction</a> (<a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> *destructionBitstream, <a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> *destinationConnection)=0</td></tr>
- <tr class="memdesc:ac78ab07796290ede00559de9d4ceb72d"><td class="mdescLeft"> </td><td class="mdescRight">Write extra data to send with the object deletion event, if desired. <a href="#ac78ab07796290ede00559de9d4ceb72d"></a><br/></td></tr>
- <tr class="separator:ac78ab07796290ede00559de9d4ceb72d"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ac7fa042647ea0bf2748d194e2eefeb74"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#ac7fa042647ea0bf2748d194e2eefeb74">DeserializeDestruction</a> (<a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> *destructionBitstream, <a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> *sourceConnection)=0</td></tr>
- <tr class="memdesc:ac7fa042647ea0bf2748d194e2eefeb74"><td class="mdescLeft"> </td><td class="mdescRight">Read data written by <a class="el" href="classRakNet_1_1Replica3.html#ac78ab07796290ede00559de9d4ceb72d" title="Write extra data to send with the object deletion event, if desired.">Replica3::SerializeDestruction()</a> <a href="#ac7fa042647ea0bf2748d194e2eefeb74"></a><br/></td></tr>
- <tr class="separator:ac7fa042647ea0bf2748d194e2eefeb74"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a72df203ad36574b2e7d09b5b9abc7788"><td class="memItemLeft" align="right" valign="top">virtual <br class="typebreak"/>
- RakNet::RM3ActionOnPopConnection </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#a72df203ad36574b2e7d09b5b9abc7788">QueryActionOnPopConnection</a> (<a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> *droppedConnection) const =0</td></tr>
- <tr class="memdesc:a72df203ad36574b2e7d09b5b9abc7788"><td class="mdescLeft"> </td><td class="mdescRight">The system is asking what to do with this replica when the connection is dropped. <a href="#a72df203ad36574b2e7d09b5b9abc7788"></a><br/></td></tr>
- <tr class="separator:a72df203ad36574b2e7d09b5b9abc7788"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a707a3bcfeea37219b778a4d0e4834d2d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a707a3bcfeea37219b778a4d0e4834d2d"></a>
- virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#a707a3bcfeea37219b778a4d0e4834d2d">OnPoppedConnection</a> (<a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> *droppedConnection)</td></tr>
- <tr class="memdesc:a707a3bcfeea37219b778a4d0e4834d2d"><td class="mdescLeft"> </td><td class="mdescRight">Notification called for each of our replicas when a connection is popped. <br/></td></tr>
- <tr class="separator:a707a3bcfeea37219b778a4d0e4834d2d"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:acf667862eb0f6ff14ce29c4a7146ccab"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#acf667862eb0f6ff14ce29c4a7146ccab">DeallocReplica</a> (<a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> *sourceConnection)=0</td></tr>
- <tr class="memdesc:acf667862eb0f6ff14ce29c4a7146ccab"><td class="mdescLeft"> </td><td class="mdescRight">Override with {delete this;}. <a href="#acf667862eb0f6ff14ce29c4a7146ccab"></a><br/></td></tr>
- <tr class="separator:acf667862eb0f6ff14ce29c4a7146ccab"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:abc1b2daa5c1a908ddd2d6df44da7e9aa"><td class="memItemLeft" align="right" valign="top">virtual <br class="typebreak"/>
- <a class="el" href="group__REPLICA__MANAGER__GROUP3.html#ga9a29b413d7f2b9cb21c16457631d3aef">RakNet::RM3QuerySerializationResult</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#abc1b2daa5c1a908ddd2d6df44da7e9aa">QuerySerialization</a> (<a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> *destinationConnection)=0</td></tr>
- <tr class="memdesc:abc1b2daa5c1a908ddd2d6df44da7e9aa"><td class="mdescLeft"> </td><td class="mdescRight">Implement with <a class="el" href="classRakNet_1_1Replica3.html#a8af3a3d3cee9098378deea019710852c" title="Default call for QuerySerialization().">QuerySerialization_ClientSerializable()</a>, <a class="el" href="classRakNet_1_1Replica3.html#a2a2c5faec10124231298d43e6f628234" title="Default call for QuerySerialization().">QuerySerialization_ServerSerializable()</a>, or <a class="el" href="classRakNet_1_1Replica3.html#a212c9fff207005acf494fb9c4ae9e194" title="Default call for QuerySerialization().">QuerySerialization_PeerToPeer()</a> <a href="#abc1b2daa5c1a908ddd2d6df44da7e9aa"></a><br/></td></tr>
- <tr class="separator:abc1b2daa5c1a908ddd2d6df44da7e9aa"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a1f633cb586ee48c3f3026f1af1053ba6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1f633cb586ee48c3f3026f1af1053ba6"></a>
- virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#a1f633cb586ee48c3f3026f1af1053ba6">OnUserReplicaPreSerializeTick</a> (void)</td></tr>
- <tr class="memdesc:a1f633cb586ee48c3f3026f1af1053ba6"><td class="mdescLeft"> </td><td class="mdescRight">Called for each replica owned by the user, once per Serialization tick, before <a class="el" href="classRakNet_1_1Replica3.html#a6e59b6a75b22441365145bf552f89e09" title="Serialize our class to a bitstream.">Serialize()</a> is called. If you want to do some kind of operation on the Replica objects that you own, just before Serialization(), then overload this function. <br/></td></tr>
- <tr class="separator:a1f633cb586ee48c3f3026f1af1053ba6"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a6e59b6a75b22441365145bf552f89e09"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__REPLICA__MANAGER__GROUP3.html#ga993da25eb23b67455e2438971c51429c">RM3SerializationResult</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#a6e59b6a75b22441365145bf552f89e09">Serialize</a> (<a class="el" href="structRakNet_1_1SerializeParameters.html">RakNet::SerializeParameters</a> *serializeParameters)=0</td></tr>
- <tr class="memdesc:a6e59b6a75b22441365145bf552f89e09"><td class="mdescLeft"> </td><td class="mdescRight">Serialize our class to a bitstream. <a href="#a6e59b6a75b22441365145bf552f89e09"></a><br/></td></tr>
- <tr class="separator:a6e59b6a75b22441365145bf552f89e09"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a0133383d790ca6e3c9d39e95ac9add8b"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#a0133383d790ca6e3c9d39e95ac9add8b">OnSerializeTransmission</a> (<a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> *bitStream, <a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> *destinationConnection, BitSize_t bitsPerChannel[RM3_NUM_OUTPUT_BITSTREAM_CHANNELS], RakNet::Time curTime)</td></tr>
- <tr class="memdesc:a0133383d790ca6e3c9d39e95ac9add8b"><td class="mdescLeft"> </td><td class="mdescRight">Called when the class is actually transmitted via <a class="el" href="classRakNet_1_1Replica3.html#a6e59b6a75b22441365145bf552f89e09" title="Serialize our class to a bitstream.">Serialize()</a> <a href="#a0133383d790ca6e3c9d39e95ac9add8b"></a><br/></td></tr>
- <tr class="separator:a0133383d790ca6e3c9d39e95ac9add8b"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:adc3ca56ef4fe3ad95e381c7d72f0956f"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#adc3ca56ef4fe3ad95e381c7d72f0956f">Deserialize</a> (RakNet::DeserializeParameters *deserializeParameters)=0</td></tr>
- <tr class="memdesc:adc3ca56ef4fe3ad95e381c7d72f0956f"><td class="mdescLeft"> </td><td class="mdescRight">Read what was written in <a class="el" href="classRakNet_1_1Replica3.html#a6e59b6a75b22441365145bf552f89e09" title="Serialize our class to a bitstream.">Serialize()</a> <a href="#adc3ca56ef4fe3ad95e381c7d72f0956f"></a><br/></td></tr>
- <tr class="separator:adc3ca56ef4fe3ad95e381c7d72f0956f"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a1b2a1d043e575f738e204d1d3a41c5a5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1b2a1d043e575f738e204d1d3a41c5a5"></a>
- virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#a1b2a1d043e575f738e204d1d3a41c5a5">PostSerializeConstruction</a> (<a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> *constructionBitstream, <a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> *destinationConnection)</td></tr>
- <tr class="memdesc:a1b2a1d043e575f738e204d1d3a41c5a5"><td class="mdescLeft"> </td><td class="mdescRight">Called after SerializeConstruction completes for all objects in a given update tick.<br/>
- Writes to <a class="el" href="classRakNet_1_1Replica3.html#a7d612c095fa5d81c1c6fabaa1a0f2501">PostDeserializeConstruction()</a>, which is called after all objects are created for a given Construction tick(). Override to send data to <a class="el" href="classRakNet_1_1Replica3.html#a7d612c095fa5d81c1c6fabaa1a0f2501">PostDeserializeConstruction()</a>, such as the NetworkID of other objects to resolve pointers to. <br/></td></tr>
- <tr class="separator:a1b2a1d043e575f738e204d1d3a41c5a5"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a7d612c095fa5d81c1c6fabaa1a0f2501"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#a7d612c095fa5d81c1c6fabaa1a0f2501">PostDeserializeConstruction</a> (<a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> *constructionBitstream, <a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> *sourceConnection)</td></tr>
- <tr class="separator:a7d612c095fa5d81c1c6fabaa1a0f2501"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a2f9257e74d9ecedb92700473dcea9bb4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2f9257e74d9ecedb92700473dcea9bb4"></a>
- virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#a2f9257e74d9ecedb92700473dcea9bb4">PostSerializeConstructionExisting</a> (<a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> *constructionBitstream, <a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> *destinationConnection)</td></tr>
- <tr class="memdesc:a2f9257e74d9ecedb92700473dcea9bb4"><td class="mdescLeft"> </td><td class="mdescRight">Same as <a class="el" href="classRakNet_1_1Replica3.html#a1b2a1d043e575f738e204d1d3a41c5a5" title="Called after SerializeConstruction completes for all objects in a given update tick. Writes to PostDeserializeConstruction(), which is called after all objects are created for a given Construction tick(). Override to send data to PostDeserializeConstruction(), such as the NetworkID of other objects to resolve pointers to.">PostSerializeConstruction()</a>, but for objects that returned RM3CS_ALREADY_EXISTS_REMOTELY from QueryConstruction. <br/></td></tr>
- <tr class="separator:a2f9257e74d9ecedb92700473dcea9bb4"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a15bdad205bb8e73c686b526b104fc1e6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a15bdad205bb8e73c686b526b104fc1e6"></a>
- virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#a15bdad205bb8e73c686b526b104fc1e6">PostDeserializeConstructionExisting</a> (<a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> *constructionBitstream, <a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> *sourceConnection)</td></tr>
- <tr class="memdesc:a15bdad205bb8e73c686b526b104fc1e6"><td class="mdescLeft"> </td><td class="mdescRight">Same as <a class="el" href="classRakNet_1_1Replica3.html#a7d612c095fa5d81c1c6fabaa1a0f2501">PostDeserializeConstruction()</a>, but for objects that returned RM3CS_ALREADY_EXISTS_REMOTELY from QueryConstruction. <br/></td></tr>
- <tr class="separator:a15bdad205bb8e73c686b526b104fc1e6"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ad517ffd842f11fe5cdef2678e87c86ab"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#ad517ffd842f11fe5cdef2678e87c86ab">PreDestruction</a> (<a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> *sourceConnection)</td></tr>
- <tr class="separator:ad517ffd842f11fe5cdef2678e87c86ab"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a98df31b4f30c6a6913963d6ecb8fea73"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__REPLICA__MANAGER__GROUP3.html#ga16aaecf3c23582f0de6652b348ccfa38">RM3ConstructionState</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#a98df31b4f30c6a6913963d6ecb8fea73">QueryConstruction_ClientConstruction</a> (<a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> *destinationConnection, bool isThisTheServer)</td></tr>
- <tr class="memdesc:a98df31b4f30c6a6913963d6ecb8fea73"><td class="mdescLeft"> </td><td class="mdescRight">Default call for <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...">QueryConstruction()</a>. <a href="#a98df31b4f30c6a6913963d6ecb8fea73"></a><br/></td></tr>
- <tr class="separator:a98df31b4f30c6a6913963d6ecb8fea73"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a8d72273c247770401da9d54b6bad4d16"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#a8d72273c247770401da9d54b6bad4d16">QueryRemoteConstruction_ClientConstruction</a> (<a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> *sourceConnection, bool isThisTheServer)</td></tr>
- <tr class="separator:a8d72273c247770401da9d54b6bad4d16"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a111ebc1ea1f9f11202ea15abb39fc329"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__REPLICA__MANAGER__GROUP3.html#ga16aaecf3c23582f0de6652b348ccfa38">RM3ConstructionState</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#a111ebc1ea1f9f11202ea15abb39fc329">QueryConstruction_ServerConstruction</a> (<a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> *destinationConnection, bool isThisTheServer)</td></tr>
- <tr class="memdesc:a111ebc1ea1f9f11202ea15abb39fc329"><td class="mdescLeft"> </td><td class="mdescRight">Default call for <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...">QueryConstruction()</a>. <a href="#a111ebc1ea1f9f11202ea15abb39fc329"></a><br/></td></tr>
- <tr class="separator:a111ebc1ea1f9f11202ea15abb39fc329"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:af5d3b25a95bbd91020d035ce9f6476a9"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#af5d3b25a95bbd91020d035ce9f6476a9">QueryRemoteConstruction_ServerConstruction</a> (<a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> *sourceConnection, bool isThisTheServer)</td></tr>
- <tr class="memdesc:af5d3b25a95bbd91020d035ce9f6476a9"><td class="mdescLeft"> </td><td class="mdescRight">Default call for <a class="el" href="classRakNet_1_1Replica3.html#a79bd207fb79055d2b39943eb1c6b1f58" title="We're about to call DeserializeConstruction() on this Replica3. If QueryRemoteConstruction() returns ...">QueryRemoteConstruction()</a>. Allow the server to create this object, but not the client. <a href="#af5d3b25a95bbd91020d035ce9f6476a9"></a><br/></td></tr>
- <tr class="separator:af5d3b25a95bbd91020d035ce9f6476a9"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:abd7b33c48572729b624485e69e1f0fe2"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__REPLICA__MANAGER__GROUP3.html#ga16aaecf3c23582f0de6652b348ccfa38">RM3ConstructionState</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#abd7b33c48572729b624485e69e1f0fe2">QueryConstruction_PeerToPeer</a> (<a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> *destinationConnection, <a class="el" href="group__REPLICA__MANAGER__GROUP3.html#ga91a588da9d58bc86b8fb7e4f27ddcf7e">Replica3P2PMode</a> p2pMode=<a class="el" href="group__REPLICA__MANAGER__GROUP3.html#gga91a588da9d58bc86b8fb7e4f27ddcf7eae6bb229afa26313b6aa4c11320e630d5">R3P2PM_SINGLE_OWNER</a>)</td></tr>
- <tr class="memdesc:abd7b33c48572729b624485e69e1f0fe2"><td class="mdescLeft"> </td><td class="mdescRight">Default call for <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...">QueryConstruction()</a>. <a href="#abd7b33c48572729b624485e69e1f0fe2"></a><br/></td></tr>
- <tr class="separator:abd7b33c48572729b624485e69e1f0fe2"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a6f398550955711b0a2b8366ca6627835"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#a6f398550955711b0a2b8366ca6627835">QueryRemoteConstruction_PeerToPeer</a> (<a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> *sourceConnection)</td></tr>
- <tr class="memdesc:a6f398550955711b0a2b8366ca6627835"><td class="mdescLeft"> </td><td class="mdescRight">Default call for <a class="el" href="classRakNet_1_1Replica3.html#a79bd207fb79055d2b39943eb1c6b1f58" title="We're about to call DeserializeConstruction() on this Replica3. If QueryRemoteConstruction() returns ...">QueryRemoteConstruction()</a>. <a href="#a6f398550955711b0a2b8366ca6627835"></a><br/></td></tr>
- <tr class="separator:a6f398550955711b0a2b8366ca6627835"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a8af3a3d3cee9098378deea019710852c"><td class="memItemLeft" align="right" valign="top">virtual <br class="typebreak"/>
- <a class="el" href="group__REPLICA__MANAGER__GROUP3.html#ga9a29b413d7f2b9cb21c16457631d3aef">RakNet::RM3QuerySerializationResult</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#a8af3a3d3cee9098378deea019710852c">QuerySerialization_ClientSerializable</a> (<a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> *destinationConnection, bool isThisTheServer)</td></tr>
- <tr class="memdesc:a8af3a3d3cee9098378deea019710852c"><td class="mdescLeft"> </td><td class="mdescRight">Default call for <a class="el" href="classRakNet_1_1Replica3.html#abc1b2daa5c1a908ddd2d6df44da7e9aa" title="Implement with QuerySerialization_ClientSerializable(), QuerySerialization_ServerSerializable(), or QuerySerialization_PeerToPeer()">QuerySerialization()</a>. <a href="#a8af3a3d3cee9098378deea019710852c"></a><br/></td></tr>
- <tr class="separator:a8af3a3d3cee9098378deea019710852c"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a2a2c5faec10124231298d43e6f628234"><td class="memItemLeft" align="right" valign="top">virtual <br class="typebreak"/>
- <a class="el" href="group__REPLICA__MANAGER__GROUP3.html#ga9a29b413d7f2b9cb21c16457631d3aef">RakNet::RM3QuerySerializationResult</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#a2a2c5faec10124231298d43e6f628234">QuerySerialization_ServerSerializable</a> (<a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> *destinationConnection, bool isThisTheServer)</td></tr>
- <tr class="memdesc:a2a2c5faec10124231298d43e6f628234"><td class="mdescLeft"> </td><td class="mdescRight">Default call for <a class="el" href="classRakNet_1_1Replica3.html#abc1b2daa5c1a908ddd2d6df44da7e9aa" title="Implement with QuerySerialization_ClientSerializable(), QuerySerialization_ServerSerializable(), or QuerySerialization_PeerToPeer()">QuerySerialization()</a>. <a href="#a2a2c5faec10124231298d43e6f628234"></a><br/></td></tr>
- <tr class="separator:a2a2c5faec10124231298d43e6f628234"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a212c9fff207005acf494fb9c4ae9e194"><td class="memItemLeft" align="right" valign="top">virtual <br class="typebreak"/>
- <a class="el" href="group__REPLICA__MANAGER__GROUP3.html#ga9a29b413d7f2b9cb21c16457631d3aef">RakNet::RM3QuerySerializationResult</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#a212c9fff207005acf494fb9c4ae9e194">QuerySerialization_PeerToPeer</a> (<a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> *destinationConnection, <a class="el" href="group__REPLICA__MANAGER__GROUP3.html#ga91a588da9d58bc86b8fb7e4f27ddcf7e">Replica3P2PMode</a> p2pMode=<a class="el" href="group__REPLICA__MANAGER__GROUP3.html#gga91a588da9d58bc86b8fb7e4f27ddcf7eae6bb229afa26313b6aa4c11320e630d5">R3P2PM_SINGLE_OWNER</a>)</td></tr>
- <tr class="memdesc:a212c9fff207005acf494fb9c4ae9e194"><td class="mdescLeft"> </td><td class="mdescRight">Default call for <a class="el" href="classRakNet_1_1Replica3.html#abc1b2daa5c1a908ddd2d6df44da7e9aa" title="Implement with QuerySerialization_ClientSerializable(), QuerySerialization_ServerSerializable(), or QuerySerialization_PeerToPeer()">QuerySerialization()</a>. <a href="#a212c9fff207005acf494fb9c4ae9e194"></a><br/></td></tr>
- <tr class="separator:a212c9fff207005acf494fb9c4ae9e194"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a4e6de7837b8df78d6932691df18d2111"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4e6de7837b8df78d6932691df18d2111"></a>
- virtual RM3ActionOnPopConnection </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#a4e6de7837b8df78d6932691df18d2111">QueryActionOnPopConnection_Client</a> (<a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> *droppedConnection) const </td></tr>
- <tr class="memdesc:a4e6de7837b8df78d6932691df18d2111"><td class="mdescLeft"> </td><td class="mdescRight">Default: If we are a client, and the connection is lost, delete the server's objects. <br/></td></tr>
- <tr class="separator:a4e6de7837b8df78d6932691df18d2111"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ae9f27d603e6e5848fc2b6406319a2307"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae9f27d603e6e5848fc2b6406319a2307"></a>
- virtual RM3ActionOnPopConnection </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#ae9f27d603e6e5848fc2b6406319a2307">QueryActionOnPopConnection_Server</a> (<a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> *droppedConnection) const </td></tr>
- <tr class="memdesc:ae9f27d603e6e5848fc2b6406319a2307"><td class="mdescLeft"> </td><td class="mdescRight">Default: If we are a server, and the connection is lost, delete the client's objects and broadcast the destruction. <br/></td></tr>
- <tr class="separator:ae9f27d603e6e5848fc2b6406319a2307"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:adfc92444727b42175cba755a63c9b94b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adfc92444727b42175cba755a63c9b94b"></a>
- virtual RM3ActionOnPopConnection </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#adfc92444727b42175cba755a63c9b94b">QueryActionOnPopConnection_PeerToPeer</a> (<a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> *droppedConnection) const </td></tr>
- <tr class="memdesc:adfc92444727b42175cba755a63c9b94b"><td class="mdescLeft"> </td><td class="mdescRight">Default: If we are a peer, and the connection is lost, delete the peer's objects. <br/></td></tr>
- <tr class="separator:adfc92444727b42175cba755a63c9b94b"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a7c6a22d575326cddec3a70eb1c2568f2"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#a7c6a22d575326cddec3a70eb1c2568f2">BroadcastDestruction</a> (void)</td></tr>
- <tr class="separator:a7c6a22d575326cddec3a70eb1c2568f2"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ada38ca6f642e7fd0b014cbf9d983e31a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#ada38ca6f642e7fd0b014cbf9d983e31a">GetCreatingSystemGUID</a> (void) const </td></tr>
- <tr class="separator:ada38ca6f642e7fd0b014cbf9d983e31a"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a80c1541b6b76ad0c5513e45c1fbb1bdd"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#a80c1541b6b76ad0c5513e45c1fbb1bdd">WasReferenced</a> (void) const </td></tr>
- <tr class="separator:a80c1541b6b76ad0c5513e45c1fbb1bdd"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="inherit_header pub_methods_classRakNet_1_1NetworkIDObject"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classRakNet_1_1NetworkIDObject')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classRakNet_1_1NetworkIDObject.html">RakNet::NetworkIDObject</a></td></tr>
- <tr class="memitem:abb1048648224a0c27fea7cb04f444310 inherit pub_methods_classRakNet_1_1NetworkIDObject"><td class="memItemLeft" align="right" valign="top">virtual void </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>
- <tr class="separator:abb1048648224a0c27fea7cb04f444310 inherit pub_methods_classRakNet_1_1NetworkIDObject"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ac3be9f98153dfb91a16d16a8a63aca3d inherit pub_methods_classRakNet_1_1NetworkIDObject"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac3be9f98153dfb91a16d16a8a63aca3d"></a>
- virtual <a class="el" href="classRakNet_1_1NetworkIDManager.html">NetworkIDManager</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1NetworkIDObject.html#ac3be9f98153dfb91a16d16a8a63aca3d">GetNetworkIDManager</a> (void) const </td></tr>
- <tr class="memdesc:ac3be9f98153dfb91a16d16a8a63aca3d inherit pub_methods_classRakNet_1_1NetworkIDObject"><td class="mdescLeft"> </td><td class="mdescRight">Returns what was passed to SetNetworkIDManager. <br/></td></tr>
- <tr class="separator:ac3be9f98153dfb91a16d16a8a63aca3d inherit pub_methods_classRakNet_1_1NetworkIDObject"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a4e2454899578ba16379491fc0aa45bb6 inherit pub_methods_classRakNet_1_1NetworkIDObject"><td class="memItemLeft" align="right" valign="top">virtual NetworkID </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1NetworkIDObject.html#a4e2454899578ba16379491fc0aa45bb6">GetNetworkID</a> (void)</td></tr>
- <tr class="separator:a4e2454899578ba16379491fc0aa45bb6 inherit pub_methods_classRakNet_1_1NetworkIDObject"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a5ebfffe7c5bb1a87888b9c3bd940cf35 inherit pub_methods_classRakNet_1_1NetworkIDObject"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1NetworkIDObject.html#a5ebfffe7c5bb1a87888b9c3bd940cf35">SetNetworkID</a> (NetworkID id)</td></tr>
- <tr class="separator:a5ebfffe7c5bb1a87888b9c3bd940cf35 inherit pub_methods_classRakNet_1_1NetworkIDObject"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a4cc5a498e4cd73194d7406350dd7a4c6 inherit pub_methods_classRakNet_1_1NetworkIDObject"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1NetworkIDObject.html#a4cc5a498e4cd73194d7406350dd7a4c6">SetParent</a> (void *_parent)</td></tr>
- <tr class="separator:a4cc5a498e4cd73194d7406350dd7a4c6 inherit pub_methods_classRakNet_1_1NetworkIDObject"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a6f48e0e1854cbc49cde9e9c9f7d3f679 inherit pub_methods_classRakNet_1_1NetworkIDObject"><td class="memItemLeft" align="right" valign="top">virtual void * </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1NetworkIDObject.html#a6f48e0e1854cbc49cde9e9c9f7d3f679">GetParent</a> (void) const </td></tr>
- <tr class="separator:a6f48e0e1854cbc49cde9e9c9f7d3f679 inherit pub_methods_classRakNet_1_1NetworkIDObject"><td class="memSeparator" colspan="2"> </td></tr>
- </table><table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
- Public Attributes</h2></td></tr>
- <tr class="memitem:a02e865cdf4292bd4dd8c9795ebb3bb05"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#a02e865cdf4292bd4dd8c9795ebb3bb05">creatingSystemGUID</a></td></tr>
- <tr class="separator:a02e865cdf4292bd4dd8c9795ebb3bb05"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a7caafa3334eddc2697a1b41828b3a997"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7caafa3334eddc2697a1b41828b3a997"></a>
- <a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1Replica3.html#a7caafa3334eddc2697a1b41828b3a997">deletingSystemGUID</a></td></tr>
- <tr class="memdesc:a7caafa3334eddc2697a1b41828b3a997"><td class="mdescLeft"> </td><td class="mdescRight">GUID of the system that caused the item to send a deletion command over the network. <br/></td></tr>
- <tr class="separator:a7caafa3334eddc2697a1b41828b3a997"><td class="memSeparator" colspan="2"> </td></tr>
- </table><table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
- Additional Inherited Members</h2></td></tr>
- <tr class="inherit_header pro_attribs_classRakNet_1_1NetworkIDObject"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classRakNet_1_1NetworkIDObject')"><img src="closed.png" alt="-"/> Protected Attributes inherited from <a class="el" href="classRakNet_1_1NetworkIDObject.html">RakNet::NetworkIDObject</a></td></tr>
- <tr class="memitem:aa88968a38decf8659bc5e55e8193818b inherit pro_attribs_classRakNet_1_1NetworkIDObject"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa88968a38decf8659bc5e55e8193818b"></a>
- NetworkID </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1NetworkIDObject.html#aa88968a38decf8659bc5e55e8193818b">networkID</a></td></tr>
- <tr class="memdesc:aa88968a38decf8659bc5e55e8193818b inherit pro_attribs_classRakNet_1_1NetworkIDObject"><td class="mdescLeft"> </td><td class="mdescRight">The network ID of this object. <br/></td></tr>
- <tr class="separator:aa88968a38decf8659bc5e55e8193818b inherit pro_attribs_classRakNet_1_1NetworkIDObject"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a0df64530ef4626519c4e9999ad753a77 inherit pro_attribs_classRakNet_1_1NetworkIDObject"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0df64530ef4626519c4e9999ad753a77"></a>
- void * </td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1NetworkIDObject.html#a0df64530ef4626519c4e9999ad753a77">parent</a></td></tr>
- <tr class="memdesc:a0df64530ef4626519c4e9999ad753a77 inherit pro_attribs_classRakNet_1_1NetworkIDObject"><td class="mdescLeft"> </td><td class="mdescRight">The parent set by <a class="el" href="classRakNet_1_1NetworkIDObject.html#a4cc5a498e4cd73194d7406350dd7a4c6">SetParent()</a> <br/></td></tr>
- <tr class="separator:a0df64530ef4626519c4e9999ad753a77 inherit pro_attribs_classRakNet_1_1NetworkIDObject"><td class="memSeparator" colspan="2"> </td></tr>
- </table>
- <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
- <div class="textblock"><p>Base class for your replicated objects for the <a class="el" href="classRakNet_1_1ReplicaManager3.html" title="System to help automate game object construction, destruction, and serialization.">ReplicaManager3</a> system. </p>
- <p>To use, derive your class, or a member of your class, from <a class="el" href="classRakNet_1_1Replica3.html" title="Base class for your replicated objects for the ReplicaManager3 system.">Replica3</a>.<br/>
- </p>
- </div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
- <a class="anchor" id="a1fbe0ed0e0c540bbad1da2549b1a4074"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual RakNet::Replica3::~Replica3 </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Before deleting a local instance of <a class="el" href="classRakNet_1_1Replica3.html" title="Base class for your replicated objects for the ReplicaManager3 system.">Replica3</a>, call <a class="el" href="classRakNet_1_1Replica3.html#a7c6a22d575326cddec3a70eb1c2568f2">Replica3::BroadcastDestruction()</a> for the deletion notification to go out on the network. It is not necessary to call <a class="el" href="classRakNet_1_1ReplicaManager3.html#a4bd439b6f0479a20236cc29ac36a6ff2" title="Removes a replicated object from the system.">ReplicaManager3::Dereference()</a>, as this happens automatically in the destructor </p>
- </div>
- </div>
- <h2 class="groupheader">Member Function Documentation</h2>
- <a class="anchor" id="a7c6a22d575326cddec3a70eb1c2568f2"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void RakNet::Replica3::BroadcastDestruction </td>
- <td>(</td>
- <td class="paramtype">void </td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Call to send a network message to delete this object on other systems.<br/>
- Call it before deleting the object </p>
- </div>
- </div>
- <a class="anchor" id="acf667862eb0f6ff14ce29c4a7146ccab"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void RakNet::Replica3::DeallocReplica </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> * </td>
- <td class="paramname"><em>sourceConnection</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Override with {delete this;}. </p>
- <ol>
- <li>
- Got a remote message to delete this object which passed <a class="el" href="classRakNet_1_1Replica3.html#ac7fa042647ea0bf2748d194e2eefeb74" title="Read data written by Replica3::SerializeDestruction()">DeserializeDestruction()</a>, OR </li>
- <li>
- <a class="el" href="classRakNet_1_1ReplicaManager3.html#af7e33dfb956e311cde40a97c9f89dc8e" title="Enable or disable automatically assigning connections to new instances of Connection_RM3.">ReplicaManager3::SetAutoManageConnections()</a> was called autoDestroy true (which is the default setting), and a remote system that owns this object disconnected) OR <> <br/>
- Override with {delete this;} to actually delete the object (and any other processing you wish).<br/>
- If you don't want to delete the object, just do nothing, however, the system will not know this. You may wish to call Dereference() if the object should no longer be networked, but remain in memory. You are responsible for deleting it yoruself later.<br/>
- destructionBitstream may be 0 if the object was deleted locally </li>
- </ol>
- <p>Implemented in <a class="el" href="classRakNet_1_1Replica3Composite.html#a403aa19294fd0c5adc64bd6204b7c134">RakNet::Replica3Composite< parent_type ></a>.</p>
- </div>
- </div>
- <a class="anchor" id="adc3ca56ef4fe3ad95e381c7d72f0956f"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void RakNet::Replica3::Deserialize </td>
- <td>(</td>
- <td class="paramtype">RakNet::DeserializeParameters * </td>
- <td class="paramname"><em>deserializeParameters</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Read what was written in <a class="el" href="classRakNet_1_1Replica3.html#a6e59b6a75b22441365145bf552f89e09" title="Serialize our class to a bitstream.">Serialize()</a> </p>
- <p>Reads the contents of the class from SerializationParamters::serializationBitstream.<br/>
- Called whenever <a class="el" href="classRakNet_1_1Replica3.html#a6e59b6a75b22441365145bf552f89e09" title="Serialize our class to a bitstream.">Serialize()</a> is called with different data from the last send. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">serializationBitstream</td><td>Bitstream passed to <a class="el" href="classRakNet_1_1Replica3.html#a6e59b6a75b22441365145bf552f89e09" title="Serialize our class to a bitstream.">Serialize()</a> </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">timeStamp</td><td>0 if unused, else contains the time the message originated on the remote system </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">sourceConnection</td><td>Which system sent to us </td></tr>
- </table>
- </dd>
- </dl>
- <p>Implemented in <a class="el" href="classRakNet_1_1Replica3Composite.html#a93bedef73e62c6893d47cd0482807f4c">RakNet::Replica3Composite< parent_type ></a>.</p>
- </div>
- </div>
- <a class="anchor" id="a8e18c95612054b601ce0149f91a5a34d"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual bool RakNet::Replica3::DeserializeConstruction </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> * </td>
- <td class="paramname"><em>constructionBitstream</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> * </td>
- <td class="paramname"><em>sourceConnection</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Read data written by <a class="el" href="classRakNet_1_1Replica3.html#a8297aa828aa9261d8ff6194f0023423a" title="Write data to be sent only when the object is constructed on a remote system.">Replica3::SerializeConstruction()</a> </p>
- <p>Reads whatever data was written to <em>constructionBitstream</em> in <a class="el" href="classRakNet_1_1Replica3.html#a8297aa828aa9261d8ff6194f0023423a" title="Write data to be sent only when the object is constructed on a remote system.">Replica3::SerializeConstruction()</a> </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[out]</td><td class="paramname">constructionBitstream</td><td>Bitstream written to in <a class="el" href="classRakNet_1_1Replica3.html#a8297aa828aa9261d8ff6194f0023423a" title="Write data to be sent only when the object is constructed on a remote system.">Replica3::SerializeConstruction()</a> </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">sourceConnection</td><td>System that sent us this network message. </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>true to accept construction of the object. false to reject, in which case the object will be deleted via <a class="el" href="classRakNet_1_1Replica3.html#acf667862eb0f6ff14ce29c4a7146ccab" title="Override with {delete this;}.">Replica3::DeallocReplica()</a> </dd></dl>
- <p>Implemented in <a class="el" href="classRakNet_1_1Replica3Composite.html#a387379441c90fcb6381d0227c42c5712">RakNet::Replica3Composite< parent_type ></a>.</p>
- </div>
- </div>
- <a class="anchor" id="a1949dd5597c106d7538ed602133ec04d"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void RakNet::Replica3::DeserializeConstructionExisting </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> * </td>
- <td class="paramname"><em>constructionBitstream</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> * </td>
- <td class="paramname"><em>sourceConnection</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Same as <a class="el" href="classRakNet_1_1Replica3.html#a8e18c95612054b601ce0149f91a5a34d" title="Read data written by Replica3::SerializeConstruction()">DeserializeConstruction()</a>, but for an object that already exists on the remote system. Used if you return RM3CS_ALREADY_EXISTS_REMOTELY from QueryConstruction </p>
- <p>Reimplemented in <a class="el" href="classRakNet_1_1Replica3Composite.html#a90b834da8ba20e7e46dd2efedfc83f78">RakNet::Replica3Composite< parent_type ></a>.</p>
- </div>
- </div>
- <a class="anchor" id="ac7fa042647ea0bf2748d194e2eefeb74"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual bool RakNet::Replica3::DeserializeDestruction </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> * </td>
- <td class="paramname"><em>destructionBitstream</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> * </td>
- <td class="paramname"><em>sourceConnection</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Read data written by <a class="el" href="classRakNet_1_1Replica3.html#ac78ab07796290ede00559de9d4ceb72d" title="Write extra data to send with the object deletion event, if desired.">Replica3::SerializeDestruction()</a> </p>
- <p>Return true to delete the object. <a class="el" href="classRakNet_1_1Replica3.html#a7c6a22d575326cddec3a70eb1c2568f2">BroadcastDestruction()</a> will be called automatically, followed by <a class="el" href="classRakNet_1_1ReplicaManager3.html#a4bd439b6f0479a20236cc29ac36a6ff2" title="Removes a replicated object from the system.">ReplicaManager3::Dereference</a>.<br/>
- Return false to not delete it. If you delete it at a later point, you are responsible for calling <a class="el" href="classRakNet_1_1Replica3.html#a7c6a22d575326cddec3a70eb1c2568f2">BroadcastDestruction()</a> yourself. </p>
- <p>Implemented in <a class="el" href="classRakNet_1_1Replica3Composite.html#a16992d92f94580265ae4bba1a199b5ab">RakNet::Replica3Composite< parent_type ></a>.</p>
- </div>
- </div>
- <a class="anchor" id="ada38ca6f642e7fd0b014cbf9d983e31a"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a> RakNet::Replica3::GetCreatingSystemGUID </td>
- <td>(</td>
- <td class="paramtype">void </td>
- <td class="paramname"></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>creatingSystemGUID is set the first time Reference() is called, or if we get the object from another system </p>
- <dl class="section return"><dt>Returns</dt><dd>System that originally created this object </dd></dl>
- </div>
- </div>
- <a class="anchor" id="a0133383d790ca6e3c9d39e95ac9add8b"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void RakNet::Replica3::OnSerializeTransmission </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> * </td>
- <td class="paramname"><em>bitStream</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> * </td>
- <td class="paramname"><em>destinationConnection</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">BitSize_t </td>
- <td class="paramname"><em>bitsPerChannel</em>[RM3_NUM_OUTPUT_BITSTREAM_CHANNELS], </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">RakNet::Time </td>
- <td class="paramname"><em>curTime</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Called when the class is actually transmitted via <a class="el" href="classRakNet_1_1Replica3.html#a6e59b6a75b22441365145bf552f89e09" title="Serialize our class to a bitstream.">Serialize()</a> </p>
- <p>Use to track how much bandwidth this class it taking </p>
- </div>
- </div>
- <a class="anchor" id="a7d612c095fa5d81c1c6fabaa1a0f2501"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void RakNet::Replica3::PostDeserializeConstruction </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> * </td>
- <td class="paramname"><em>constructionBitstream</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> * </td>
- <td class="paramname"><em>sourceConnection</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Called after DeserializeConstruction completes for all objects in a given update tick.<br/>
- This is used to resolve dependency chains, where two objects would refer to each other in DeserializeConstruction, yet one had not been constructed yet In <a class="el" href="classRakNet_1_1Replica3.html#a7d612c095fa5d81c1c6fabaa1a0f2501">PostDeserializeConstruction()</a>, you know that all objects have already been created, so can resolve NetworkIDs to pointers safely. You can also use it to trigger some sort of event when you know the object has completed deserialization. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">constructionBitstream</td><td><a class="el" href="classRakNet_1_1BitStream.html">BitStream</a> written in <a class="el" href="classRakNet_1_1Replica3.html#a1b2a1d043e575f738e204d1d3a41c5a5" title="Called after SerializeConstruction completes for all objects in a given update tick. Writes to PostDeserializeConstruction(), which is called after all objects are created for a given Construction tick(). Override to send data to PostDeserializeConstruction(), such as the NetworkID of other objects to resolve pointers to.">PostSerializeConstruction()</a> </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">sourceConnection</td><td>System that sent us this network message. </td></tr>
- </table>
- </dd>
- </dl>
- <p>Reimplemented in <a class="el" href="classRakNet_1_1Replica3Composite.html#ac8258f928d6922f928c5d842c62c8094">RakNet::Replica3Composite< parent_type ></a>.</p>
- </div>
- </div>
- <a class="anchor" id="ad517ffd842f11fe5cdef2678e87c86ab"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void RakNet::Replica3::PreDestruction </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> * </td>
- <td class="paramname"><em>sourceConnection</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Called after DeserializeDestruction completes for the object successfully, but obviously before the object is deleted.<br/>
- Override to trigger some sort of event when you know the object has completed destruction. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">sourceConnection</td><td>System that sent us this network message. </td></tr>
- </table>
- </dd>
- </dl>
- <p>Reimplemented in <a class="el" href="classRakNet_1_1Replica3Composite.html#a5756a6c31fde002484a031199c32f053">RakNet::Replica3Composite< parent_type ></a>.</p>
- </div>
- </div>
- <a class="anchor" id="a72df203ad36574b2e7d09b5b9abc7788"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual RakNet::RM3ActionOnPopConnection RakNet::Replica3::QueryActionOnPopConnection </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> * </td>
- <td class="paramname"><em>droppedConnection</em></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>The system is asking what to do with this replica when the connection is dropped. </p>
- <p>Return QueryActionOnPopConnection_Client, QueryActionOnPopConnection_Server, or QueryActionOnPopConnection_PeerToPeer </p>
- <p>Implemented in <a class="el" href="classRakNet_1_1Replica3Composite.html#a72b9991e5a7042055cd570f4f6988aa9">RakNet::Replica3Composite< parent_type ></a>.</p>
- </div>
- </div>
- <a class="anchor" id="ad826e04ce6a0db4e32c3d990fd27e943"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual <a class="el" href="group__REPLICA__MANAGER__GROUP3.html#ga16aaecf3c23582f0de6652b348ccfa38">RM3ConstructionState</a> RakNet::Replica3::QueryConstruction </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> * </td>
- <td class="paramname"><em>destinationConnection</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="classRakNet_1_1ReplicaManager3.html">ReplicaManager3</a> * </td>
- <td class="paramname"><em>replicaManager3</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Ask if this object, which does not exist on <em>destinationConnection</em> should (now) be sent to that system. </p>
- <p>If ReplicaManager3::QueryConstructionMode() returns QUERY_CONNECTION_FOR_REPLICA_LIST or QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION (default), then QueyrConstruction() is called once per tick from <a class="el" href="classRakNet_1_1ReplicaManager3.html#a8aa2fdb5b20aeeab74b037bc1632c9e9" title="Call interfaces, send data.">ReplicaManager3::Update()</a> to determine if an object should exist on a given system.<br/>
- Based on the return value, a network message may be sent to the other system to create the object.<br/>
- If QueryConstructionMode() is overriden to return QUERY_CONNECTION_FOR_REPLICA_LIST, this function is unused.<br/>
- </p>
- <dl class="section note"><dt>Note</dt><dd>Defaults are provided: <a class="el" href="classRakNet_1_1Replica3.html#abd7b33c48572729b624485e69e1f0fe2" title="Default call for QueryConstruction().">QueryConstruction_PeerToPeer()</a>, <a class="el" href="classRakNet_1_1Replica3.html#a111ebc1ea1f9f11202ea15abb39fc329" title="Default call for QueryConstruction().">QueryConstruction_ServerConstruction()</a>, <a class="el" href="classRakNet_1_1Replica3.html#a98df31b4f30c6a6913963d6ecb8fea73" title="Default call for QueryConstruction().">QueryConstruction_ClientConstruction()</a>. Return one of these functions for a working default for the relevant topology. </dd></dl>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">destinationConnection</td><td>Which system we will send to </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">replicaManager3</td><td>Plugin instance for this <a class="el" href="classRakNet_1_1Replica3.html" title="Base class for your replicated objects for the ReplicaManager3 system.">Replica3</a> </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>What action to take </dd></dl>
- <p>Implemented in <a class="el" href="classRakNet_1_1Replica3Composite.html#a28ba2a4669eb1f6c5a0b1d6eec31848c">RakNet::Replica3Composite< parent_type ></a>.</p>
- </div>
- </div>
- <a class="anchor" id="a98df31b4f30c6a6913963d6ecb8fea73"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual <a class="el" href="group__REPLICA__MANAGER__GROUP3.html#ga16aaecf3c23582f0de6652b348ccfa38">RM3ConstructionState</a> RakNet::Replica3::QueryConstruction_ClientConstruction </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> * </td>
- <td class="paramname"><em>destinationConnection</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">bool </td>
- <td class="paramname"><em>isThisTheServer</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Default call for <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...">QueryConstruction()</a>. </p>
- <p>Both the client and the server is allowed to create this object. The network topology is client/server </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">destinationConnection</td><td>destinationConnection parameter passed to <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...">QueryConstruction()</a> </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">isThisTheServer</td><td>True if this system is the server, false if not. </td></tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
- <a class="anchor" id="abd7b33c48572729b624485e69e1f0fe2"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual <a class="el" href="group__REPLICA__MANAGER__GROUP3.html#ga16aaecf3c23582f0de6652b348ccfa38">RM3ConstructionState</a> RakNet::Replica3::QueryConstruction_PeerToPeer </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> * </td>
- <td class="paramname"><em>destinationConnection</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group__REPLICA__MANAGER__GROUP3.html#ga91a588da9d58bc86b8fb7e4f27ddcf7e">Replica3P2PMode</a> </td>
- <td class="paramname"><em>p2pMode</em> = <code><a class="el" href="group__REPLICA__MANAGER__GROUP3.html#gga91a588da9d58bc86b8fb7e4f27ddcf7eae6bb229afa26313b6aa4c11320e630d5">R3P2PM_SINGLE_OWNER</a></code> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Default call for <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...">QueryConstruction()</a>. </p>
- <p>All clients are allowed to create all objects. The object is not relayed when remotely created </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">destinationConnection</td><td>destinationConnection parameter passed to <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...">QueryConstruction()</a> </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">p2pMode</td><td>If controlled only by this system ever, pass R3P2PM_SINGLE_OWNER. Otherwise pass R3P2PM_MULTI_OWNER_CURRENTLY_AUTHORITATIVE or R3P2PM_MULTI_OWNER_NOT_CURRENTLY_AUTHORITATIVE </td></tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
- <a class="anchor" id="a111ebc1ea1f9f11202ea15abb39fc329"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual <a class="el" href="group__REPLICA__MANAGER__GROUP3.html#ga16aaecf3c23582f0de6652b348ccfa38">RM3ConstructionState</a> RakNet::Replica3::QueryConstruction_ServerConstruction </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> * </td>
- <td class="paramname"><em>destinationConnection</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">bool </td>
- <td class="paramname"><em>isThisTheServer</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Default call for <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...">QueryConstruction()</a>. </p>
- <p>Only the server is allowed to create this object. The network topology is client/server </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">destinationConnection</td><td>destinationConnection parameter passed to <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...">QueryConstruction()</a> </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">isThisTheServer</td><td>True if this system is the server, false if not. </td></tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
- <a class="anchor" id="ab476629672d62c7c33c8b1d8aa606918"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual <a class="el" href="group__REPLICA__MANAGER__GROUP3.html#ga400c157a937f062bd8a3c19a49d33541">RM3DestructionState</a> RakNet::Replica3::QueryDestruction </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> * </td>
- <td class="paramname"><em>destinationConnection</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="classRakNet_1_1ReplicaManager3.html">ReplicaManager3</a> * </td>
- <td class="paramname"><em>replicaManager3</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Ask if this object, which does exist on <em>destinationConnection</em> should be removed from the remote system. </p>
- <p>If ReplicaManager3::QueryConstructionMode() returns QUERY_REPLICA_FOR_CONSTRUCTION_AND_DESTRUCTION (default), then <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...">QueryDestruction()</a> is called once per tick from <a class="el" href="classRakNet_1_1ReplicaManager3.html#a8aa2fdb5b20aeeab74b037bc1632c9e9" title="Call interfaces, send data.">ReplicaManager3::Update()</a> to determine if an object that exists on a remote system should be destroyed for a given system.<br/>
- Based on the return value, a network message may be sent to the other system to destroy the object.<br/>
- Note that you can also destroy objects with <a class="el" href="classRakNet_1_1Replica3.html#a7c6a22d575326cddec3a70eb1c2568f2">BroadcastDestruction()</a>, so this function is not useful unless you plan to delete objects for only a particular connection.<br/>
- If QueryConstructionMode() is overriden to return QUERY_CONNECTION_FOR_REPLICA_LIST, this function is unused.<br/>
- </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">destinationConnection</td><td>Which system we will send to </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">replicaManager3</td><td>Plugin instance for this <a class="el" href="classRakNet_1_1Replica3.html" title="Base class for your replicated objects for the ReplicaManager3 system.">Replica3</a> </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>What action to take. Only RM3CS_SEND_DESTRUCTION does anything at this time. </dd></dl>
- <p>Reimplemented in <a class="el" href="classRakNet_1_1Replica3Composite.html#a6072ff772d5eff7c73e6f6e5b8e00ac3">RakNet::Replica3Composite< parent_type ></a>.</p>
- </div>
- </div>
- <a class="anchor" id="a79bd207fb79055d2b39943eb1c6b1f58"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual bool RakNet::Replica3::QueryRemoteConstruction </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> * </td>
- <td class="paramname"><em>sourceConnection</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>We're about to call <a class="el" href="classRakNet_1_1Replica3.html#a8e18c95612054b601ce0149f91a5a34d" title="Read data written by Replica3::SerializeConstruction()">DeserializeConstruction()</a> on this <a class="el" href="classRakNet_1_1Replica3.html" title="Base class for your replicated objects for the ReplicaManager3 system.">Replica3</a>. If <a class="el" href="classRakNet_1_1Replica3.html#a79bd207fb79055d2b39943eb1c6b1f58" title="We're about to call DeserializeConstruction() on this Replica3. If QueryRemoteConstruction() returns ...">QueryRemoteConstruction()</a> returns false, this object is deleted instead. </p>
- <p>By default, <a class="el" href="classRakNet_1_1Replica3.html#af5d3b25a95bbd91020d035ce9f6476a9" title="Default call for QueryRemoteConstruction(). Allow the server to create this object, but not the client.">QueryRemoteConstruction_ServerConstruction()</a> does not allow clients to create objects. The client will get Replica3::DeserializeConstructionRequestRejected().<br/>
- If you want the client to be able to potentially create objects for client/server, override accordingly.<br/>
- Other variants of QueryRemoteConstruction_* just return true. </p>
- <dl class="section note"><dt>Note</dt><dd>Defaults are provided: <a class="el" href="classRakNet_1_1Replica3.html#a6f398550955711b0a2b8366ca6627835" title="Default call for QueryRemoteConstruction().">QueryRemoteConstruction_PeerToPeer()</a>, <a class="el" href="classRakNet_1_1Replica3.html#af5d3b25a95bbd91020d035ce9f6476a9" title="Default call for QueryRemoteConstruction(). Allow the server to create this object, but not the client.">QueryRemoteConstruction_ServerConstruction()</a>, <a class="el" href="classRakNet_1_1Replica3.html#a8d72273c247770401da9d54b6bad4d16">QueryRemoteConstruction_ClientConstruction()</a>. Return one of these functions for a working default for the relevant topology. </dd></dl>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">sourceConnection</td><td>Which system sent us the object creation request message. </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>True to allow the object to pass onto <a class="el" href="classRakNet_1_1Replica3.html#a8e18c95612054b601ce0149f91a5a34d" title="Read data written by Replica3::SerializeConstruction()">DeserializeConstruction()</a> (where it may also be rejected), false to immediately reject the remote construction request </dd></dl>
- <p>Implemented in <a class="el" href="classRakNet_1_1Replica3Composite.html#ae5f099064ed5168d7bb180aec8ca2eb5">RakNet::Replica3Composite< parent_type ></a>.</p>
- </div>
- </div>
- <a class="anchor" id="a8d72273c247770401da9d54b6bad4d16"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual bool RakNet::Replica3::QueryRemoteConstruction_ClientConstruction </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> * </td>
- <td class="paramname"><em>sourceConnection</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">bool </td>
- <td class="paramname"><em>isThisTheServer</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Default call for <a class="el" href="classRakNet_1_1Replica3.html#a79bd207fb79055d2b39943eb1c6b1f58" title="We're about to call DeserializeConstruction() on this Replica3. If QueryRemoteConstruction() returns ...">QueryRemoteConstruction()</a>.</p>
- <p>Both the client and the server is allowed to create this object. The network topology is client/server The code means on the client or the server, allow creation of <a class="el" href="classRakNet_1_1Replica3.html" title="Base class for your replicated objects for the ReplicaManager3 system.">Replica3</a> instances </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">sourceConnection</td><td>destinationConnection parameter passed to <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...">QueryConstruction()</a> </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">isThisTheServer</td><td>True if this system is the server, false if not. </td></tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
- <a class="anchor" id="a6f398550955711b0a2b8366ca6627835"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual bool RakNet::Replica3::QueryRemoteConstruction_PeerToPeer </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> * </td>
- <td class="paramname"><em>sourceConnection</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Default call for <a class="el" href="classRakNet_1_1Replica3.html#a79bd207fb79055d2b39943eb1c6b1f58" title="We're about to call DeserializeConstruction() on this Replica3. If QueryRemoteConstruction() returns ...">QueryRemoteConstruction()</a>. </p>
- <p>All clients are allowed to create all objects. The object is not relayed when remotely created </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">sourceConnection</td><td>destinationConnection parameter passed to <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...">QueryConstruction()</a> </td></tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
- <a class="anchor" id="af5d3b25a95bbd91020d035ce9f6476a9"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual bool RakNet::Replica3::QueryRemoteConstruction_ServerConstruction </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> * </td>
- <td class="paramname"><em>sourceConnection</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">bool </td>
- <td class="paramname"><em>isThisTheServer</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Default call for <a class="el" href="classRakNet_1_1Replica3.html#a79bd207fb79055d2b39943eb1c6b1f58" title="We're about to call DeserializeConstruction() on this Replica3. If QueryRemoteConstruction() returns ...">QueryRemoteConstruction()</a>. Allow the server to create this object, but not the client. </p>
- <p>Only the server is allowed to create this object. The network topology is client/server The code means if this is the server, and I got a command to create a <a class="el" href="classRakNet_1_1Replica3.html" title="Base class for your replicated objects for the ReplicaManager3 system.">Replica3</a> to ignore it. If this is the client, to allow it. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">sourceConnection</td><td>destinationConnection parameter passed to <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...">QueryConstruction()</a> </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">isThisTheServer</td><td>True if this system is the server, false if not. </td></tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
- <a class="anchor" id="abc1b2daa5c1a908ddd2d6df44da7e9aa"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual <a class="el" href="group__REPLICA__MANAGER__GROUP3.html#ga9a29b413d7f2b9cb21c16457631d3aef">RakNet::RM3QuerySerializationResult</a> RakNet::Replica3::QuerySerialization </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> * </td>
- <td class="paramname"><em>destinationConnection</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Implement with <a class="el" href="classRakNet_1_1Replica3.html#a8af3a3d3cee9098378deea019710852c" title="Default call for QuerySerialization().">QuerySerialization_ClientSerializable()</a>, <a class="el" href="classRakNet_1_1Replica3.html#a2a2c5faec10124231298d43e6f628234" title="Default call for QuerySerialization().">QuerySerialization_ServerSerializable()</a>, or <a class="el" href="classRakNet_1_1Replica3.html#a212c9fff207005acf494fb9c4ae9e194" title="Default call for QuerySerialization().">QuerySerialization_PeerToPeer()</a> </p>
- <p><a class="el" href="classRakNet_1_1Replica3.html#abc1b2daa5c1a908ddd2d6df44da7e9aa" title="Implement with QuerySerialization_ClientSerializable(), QuerySerialization_ServerSerializable(), or QuerySerialization_PeerToPeer()">QuerySerialization()</a> is a first pass query to check if a given object should serializable to a given system. The intent is that the user implements with one of the defaults for client, server, or peer to peer.<br/>
- Without this function, a careless implementation would serialize an object anytime it changed to all systems. This would give you feedback loops as the sender gets the same message back from the recipient it just sent to.<br/>
- If more than one system can serialize the same object then you will need to override to return true, and control the serialization result from <a class="el" href="classRakNet_1_1Replica3.html#a6e59b6a75b22441365145bf552f89e09" title="Serialize our class to a bitstream.">Replica3::Serialize()</a>. Be careful not to send back the same data to the system that just sent to you! </p>
- <dl class="section return"><dt>Returns</dt><dd>True to allow calling <a class="el" href="classRakNet_1_1Replica3.html#a6e59b6a75b22441365145bf552f89e09" title="Serialize our class to a bitstream.">Replica3::Serialize()</a> for this connection, false to not call. </dd></dl>
- <p>Implemented in <a class="el" href="classRakNet_1_1Replica3Composite.html#a4b09de10ab5fb4e5b28b385bef2a7a91">RakNet::Replica3Composite< parent_type ></a>.</p>
- </div>
- </div>
- <a class="anchor" id="a8af3a3d3cee9098378deea019710852c"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual <a class="el" href="group__REPLICA__MANAGER__GROUP3.html#ga9a29b413d7f2b9cb21c16457631d3aef">RakNet::RM3QuerySerializationResult</a> RakNet::Replica3::QuerySerialization_ClientSerializable </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> * </td>
- <td class="paramname"><em>destinationConnection</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">bool </td>
- <td class="paramname"><em>isThisTheServer</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Default call for <a class="el" href="classRakNet_1_1Replica3.html#abc1b2daa5c1a908ddd2d6df44da7e9aa" title="Implement with QuerySerialization_ClientSerializable(), QuerySerialization_ServerSerializable(), or QuerySerialization_PeerToPeer()">QuerySerialization()</a>. </p>
- <p>Use if the values you are serializing are generated by the client that owns the object. The serialization will be relayed through the server to the other clients. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">destinationConnection</td><td>destinationConnection parameter passed to <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...">QueryConstruction()</a> </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">isThisTheServer</td><td>True if this system is the server, false if not. </td></tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
- <a class="anchor" id="a212c9fff207005acf494fb9c4ae9e194"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual <a class="el" href="group__REPLICA__MANAGER__GROUP3.html#ga9a29b413d7f2b9cb21c16457631d3aef">RakNet::RM3QuerySerializationResult</a> RakNet::Replica3::QuerySerialization_PeerToPeer </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> * </td>
- <td class="paramname"><em>destinationConnection</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group__REPLICA__MANAGER__GROUP3.html#ga91a588da9d58bc86b8fb7e4f27ddcf7e">Replica3P2PMode</a> </td>
- <td class="paramname"><em>p2pMode</em> = <code><a class="el" href="group__REPLICA__MANAGER__GROUP3.html#gga91a588da9d58bc86b8fb7e4f27ddcf7eae6bb229afa26313b6aa4c11320e630d5">R3P2PM_SINGLE_OWNER</a></code> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Default call for <a class="el" href="classRakNet_1_1Replica3.html#abc1b2daa5c1a908ddd2d6df44da7e9aa" title="Implement with QuerySerialization_ClientSerializable(), QuerySerialization_ServerSerializable(), or QuerySerialization_PeerToPeer()">QuerySerialization()</a>. </p>
- <p>Use if the values you are serializing are on a peer to peer network. The peer that owns the object will send to all. Remote peers will not send. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">destinationConnection</td><td>destinationConnection parameter passed to <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...">QueryConstruction()</a> </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">p2pMode</td><td>If controlled only by this system ever, pass R3P2PM_SINGLE_OWNER. Otherwise pass R3P2PM_MULTI_OWNER_CURRENTLY_AUTHORITATIVE or R3P2PM_MULTI_OWNER_NOT_CURRENTLY_AUTHORITATIVE </td></tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
- <a class="anchor" id="a2a2c5faec10124231298d43e6f628234"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual <a class="el" href="group__REPLICA__MANAGER__GROUP3.html#ga9a29b413d7f2b9cb21c16457631d3aef">RakNet::RM3QuerySerializationResult</a> RakNet::Replica3::QuerySerialization_ServerSerializable </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> * </td>
- <td class="paramname"><em>destinationConnection</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">bool </td>
- <td class="paramname"><em>isThisTheServer</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Default call for <a class="el" href="classRakNet_1_1Replica3.html#abc1b2daa5c1a908ddd2d6df44da7e9aa" title="Implement with QuerySerialization_ClientSerializable(), QuerySerialization_ServerSerializable(), or QuerySerialization_PeerToPeer()">QuerySerialization()</a>. </p>
- <p>Use if the values you are serializing are generated only by the server. The serialization will be sent to all clients, but the clients will not send back to the server. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">destinationConnection</td><td>destinationConnection parameter passed to <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...">QueryConstruction()</a> </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">isThisTheServer</td><td>True if this system is the server, false if not. </td></tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
- <a class="anchor" id="a6e59b6a75b22441365145bf552f89e09"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual <a class="el" href="group__REPLICA__MANAGER__GROUP3.html#ga993da25eb23b67455e2438971c51429c">RM3SerializationResult</a> RakNet::Replica3::Serialize </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structRakNet_1_1SerializeParameters.html">RakNet::SerializeParameters</a> * </td>
- <td class="paramname"><em>serializeParameters</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Serialize our class to a bitstream. </p>
- <p>User should implement this function to write the contents of this class to SerializationParamters::serializationBitstream.<br/>
- If data only needs to be written once, you can write it to <a class="el" href="classRakNet_1_1Replica3.html#a8297aa828aa9261d8ff6194f0023423a" title="Write data to be sent only when the object is constructed on a remote system.">SerializeConstruction()</a> instead for efficiency.<br/>
- Transmitted over the network if it changed from the last time we called <a class="el" href="classRakNet_1_1Replica3.html#a6e59b6a75b22441365145bf552f89e09" title="Serialize our class to a bitstream.">Serialize()</a>.<br/>
- Called every time the time interval to <a class="el" href="classRakNet_1_1ReplicaManager3.html#a06af43f52ae3148e763ad9223c308639">ReplicaManager3::SetAutoSerializeInterval()</a> elapses and <a class="el" href="classRakNet_1_1ReplicaManager3.html#a8aa2fdb5b20aeeab74b037bc1632c9e9" title="Call interfaces, send data.">ReplicaManager3::Update</a> is subsequently called. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">in/out]</td><td>serializeParameters Parameters controlling the serialization, including destination bitstream to write to </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd>Whether to serialize, and if so, how to optimize the results </dd></dl>
- <p>Implemented in <a class="el" href="classRakNet_1_1Replica3Composite.html#abf66b82cf60d9c7d566ce8ade9cc17d3">RakNet::Replica3Composite< parent_type ></a>.</p>
- </div>
- </div>
- <a class="anchor" id="a8297aa828aa9261d8ff6194f0023423a"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void RakNet::Replica3::SerializeConstruction </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> * </td>
- <td class="paramname"><em>constructionBitstream</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> * </td>
- <td class="paramname"><em>destinationConnection</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Write data to be sent only when the object is constructed on a remote system. </p>
- <p>SerializeConstruction is used to write out data that you need to create this object in the context of your game, such as health, score, name. Use it for data you only need to send when the object is created.<br/>
- After <a class="el" href="classRakNet_1_1Replica3.html#a8297aa828aa9261d8ff6194f0023423a" title="Write data to be sent only when the object is constructed on a remote system.">SerializeConstruction()</a> is called, <a class="el" href="classRakNet_1_1Replica3.html#a6e59b6a75b22441365145bf552f89e09" title="Serialize our class to a bitstream.">Serialize()</a> will be called immediately thereafter. However, they are sent in different messages, so <a class="el" href="classRakNet_1_1Replica3.html#a6e59b6a75b22441365145bf552f89e09" title="Serialize our class to a bitstream.">Serialize()</a> may arrive a later frame than <a class="el" href="classRakNet_1_1Replica3.html#a8297aa828aa9261d8ff6194f0023423a" title="Write data to be sent only when the object is constructed on a remote system.">SerializeConstruction()</a> For that reason, the object should be valid after a call to <a class="el" href="classRakNet_1_1Replica3.html#a8e18c95612054b601ce0149f91a5a34d" title="Read data written by Replica3::SerializeConstruction()">DeserializeConstruction()</a> for at least a short time.<br/>
- </p>
- <dl class="section note"><dt>Note</dt><dd>The object's NetworkID and allocation id are handled by the system automatically, you do not need to write these values to <em>constructionBitstream</em> </dd></dl>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[out]</td><td class="paramname">constructionBitstream</td><td>Destination bitstream to write your data to </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">destinationConnection</td><td>System that will receive this network message. </td></tr>
- </table>
- </dd>
- </dl>
- <p>Implemented in <a class="el" href="classRakNet_1_1Replica3Composite.html#a75be39067450e1d717473408600a9c73">RakNet::Replica3Composite< parent_type ></a>.</p>
- </div>
- </div>
- <a class="anchor" id="a245a99bf6338ed42ab5386be11417fde"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void RakNet::Replica3::SerializeConstructionExisting </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> * </td>
- <td class="paramname"><em>constructionBitstream</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> * </td>
- <td class="paramname"><em>destinationConnection</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Same as <a class="el" href="classRakNet_1_1Replica3.html#a8297aa828aa9261d8ff6194f0023423a" title="Write data to be sent only when the object is constructed on a remote system.">SerializeConstruction()</a>, but for an object that already exists on the remote system. Used if you return RM3CS_ALREADY_EXISTS_REMOTELY from QueryConstruction </p>
- <p>Reimplemented in <a class="el" href="classRakNet_1_1Replica3Composite.html#a1b73936583a501800162571c5c117aff">RakNet::Replica3Composite< parent_type ></a>.</p>
- </div>
- </div>
- <a class="anchor" id="ac78ab07796290ede00559de9d4ceb72d"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void RakNet::Replica3::SerializeDestruction </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> * </td>
- <td class="paramname"><em>destructionBitstream</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> * </td>
- <td class="paramname"><em>destinationConnection</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Write extra data to send with the object deletion event, if desired. </p>
- <p><a class="el" href="classRakNet_1_1Replica3.html#ac78ab07796290ede00559de9d4ceb72d" title="Write extra data to send with the object deletion event, if desired.">Replica3::SerializeDestruction()</a> will be called to write any object destruction specific data you want to send with this event. <em>destructionBitstream</em> can be read in <a class="el" href="classRakNet_1_1Replica3.html#ac7fa042647ea0bf2748d194e2eefeb74" title="Read data written by Replica3::SerializeDestruction()">DeserializeDestruction()</a> </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[out]</td><td class="paramname">destructionBitstream</td><td>Bitstream for you to write to </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">destinationConnection</td><td>System that will receive this network message. </td></tr>
- </table>
- </dd>
- </dl>
- <p>Implemented in <a class="el" href="classRakNet_1_1Replica3Composite.html#ac02df3fd25db390ebaed1bb0773a5086">RakNet::Replica3Composite< parent_type ></a>.</p>
- </div>
- </div>
- <a class="anchor" id="a80c1541b6b76ad0c5513e45c1fbb1bdd"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">bool RakNet::Replica3::WasReferenced </td>
- <td>(</td>
- <td class="paramtype">void </td>
- <td class="paramname"></td><td>)</td>
- <td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <dl class="section return"><dt>Returns</dt><dd>If <a class="el" href="classRakNet_1_1ReplicaManager3.html#a9046d827471c0be651b54b7efb7b6f28" title="Adds a replicated object to the system.">ReplicaManager3::Reference()</a> was called on this object. </dd></dl>
- </div>
- </div>
- <a class="anchor" id="ada0458bb521a455f23e08742c9e1b0b9"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void RakNet::Replica3::WriteAllocationID </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="classRakNet_1_1Connection__RM3.html">RakNet::Connection_RM3</a> * </td>
- <td class="paramname"><em>destinationConnection</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> * </td>
- <td class="paramname"><em>allocationIdBitstream</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td> const</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Write a unique identifer that can be read on a remote system to create an object of this same class. </p>
- <p>The value written to <em>allocationIdBitstream</em> will be passed to <a class="el" href="classRakNet_1_1Connection__RM3.html#ab05d85100f726378f2ed73c6792a5b46" title="Class factory to create a Replica3 instance, given a user-defined identifier.">Connection_RM3::AllocReplica()</a>.<br/>
- Sample implementation:<br/>
- {allocationIdBitstream->Write(<a class="el" href="classRakNet_1_1RakString.html" title="String class.">RakNet::RakString</a>("Soldier");}<br/>
- </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[out]</td><td class="paramname">allocationIdBitstream</td><td>Bitstream for the user to write to, to identify this class </td></tr>
- </table>
- </dd>
- </dl>
- <p>Implemented in <a class="el" href="classRakNet_1_1Replica3Composite.html#a7a05709ac67f8261dd5e3293c4374d3a">RakNet::Replica3Composite< parent_type ></a>.</p>
- </div>
- </div>
- <h2 class="groupheader">Member Data Documentation</h2>
- <a class="anchor" id="a02e865cdf4292bd4dd8c9795ebb3bb05"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a> RakNet::Replica3::creatingSystemGUID</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>GUID of the system that first called Reference() on this object. Transmitted automatically when the object is constructed </p>
- </div>
- </div>
- <hr/>The documentation for this class was generated from the following file:<ul>
- <li>D:/temp/RakNet_PC/Source/<a class="el" href="ReplicaManager3_8h.html">ReplicaManager3.h</a></li>
- </ul>
- </div><!-- contents -->
- <!-- start footer part -->
- <hr class="footer"/><address class="footer"><small>
- Generated on Mon Jun 2 2014 20:10:29 for RakNet by  <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/>
- </a> 1.8.2
- </small></address>
- </body>
- </html>
|