# ReplicaManager3.h File Reference

Contains the third iteration of the ReplicaManager class. More...

`#include "DS_Multilist.h"`
`#include "RakNetTypes.h"`
`#include "RakNetTime.h"`
`#include "BitStream.h"`
`#include "PacketPriority.h"`
`#include "PluginInterface2.h"`
`#include "NetworkIDObject.h"`

## Classes
class | RakNet::ReplicaManager3
| System to help automate game object construction, destruction, and serialization ReplicaManager3 tracks your game objects and automates the networking for replicating them across the network As objects are created, destroyed, or serialized differently, those changes are pushed out to other systems To use: 1. Derive from Connection_RM3 and implement Connection_RM3::AllocReplica(). This is a factory function where given an identifier for a class (such as name) return an instance of that class. Should be able to return any networked object in your game. 2. Derive from ReplicaManager3 and implement AllocConnection() and DeallocConnection() to return the class you created in step 1. 3. Derive your networked game objects from Replica3. All pure virtuals have to be implemented, however defaults are provided for Replica3::QueryConstruction(), Replica3::QueryRemoteConstruction(), and Replica3::QuerySerialization() depending on your network architecture. 4. When a new game object is created on the local system, pass it to ReplicaManager3::Reference(). 5. When a game object is destroyed on the local system, and you want other systems to know about it, call Replica3::BroadcastDestruction(). More...
struct | RakNet::LastSerializationResult
| Represents the serialized data for an object the last time it was sent. Used by Connection_RM3::OnAutoserializeInterval() and Connection_RM3::SendSerializeIfChanged(). More...
struct | RakNet::SerializeParameters
| Parameters passed to Replica3::Serialize(). More...
class | RakNet::Connection_RM3
| Each remote system is represented by Connection_RM3. Used to allocate Replica3 and track which instances have been allocated Important function: AllocReplica() - must be overridden to create an object given an identifier for that object, which you define for all objects in your game. More...
class | RakNet::Replica3
| Base class for your replicated objects for the ReplicaManager3 system. To use, derive your class, or a member of your class, from Replica3 Implement all pure virtual functions. More...
## Namespaces
namespace | RakNet
| Forward declaration.

## Enumerations
enum | RakNet::RM3ConstructionState { RakNet::RM3CS_SEND_CONSTRUCTION, RakNet::RM3CS_ALREADY_EXISTS_REMOTELY, RakNet::RM3CS_SEND_DESTRUCTION, RakNet::RM3CS_NO_ACTION }
enum | RakNet::RM3SerializationResult { RakNet::RM3SR_SERIALIZED_IDENTICALLY, RakNet::RM3SR_SERIALIZED_UNIQUELY, RakNet::RM3SR_DO_NOT_SERIALIZE, RakNet::RM3SR_NEVER_SERIALIZE_FOR_THIS_CONNECTION }
| Return codes when constructing an object. More...

## Detailed Description

Contains the third iteration of the ReplicaManager class.

This file is part of RakNet Copyright 2003 Jenkins Software LLC

Usage of RakNet is subject to the appropriate license agreement.