# ReplicaManager2.h File Reference

Contains the second iteration of the ReplicaManager class. This system automatically creates and destroys objects, downloads the world to new players, manages players, and automatically serializes as needed. More...

`#include "Export.h"`
`#include "RakNetTypes.h"`
`#include "DS_Map.h"`
`#include "PluginInterface2.h"`
`#include "NetworkIDObject.h"`
`#include "PacketPriority.h"`
`#include "GetTime.h"`
`#include "BitStream.h"`
`#include "DS_Queue.h"`

## Classes
class | RakNet::ReplicaManager2
| A management system for your game objects and players to make serialization, scoping, and object creation and destruction easier. More...
struct | RakNet::SerializationContext
| Contextual information about serialization, passed to some functions in Replica2. More...
class | RakNet::Replica2
| Base class for game objects that use the ReplicaManager2 system All game objects that want to use the ReplicaManager2 functionality must inherit from Replica2. Generally you will want to implement at a minimum Serialize(), Deserialize(), and SerializeConstruction(). More...
class | RakNet::Connection_RM2Factory
| Implement this factory class to return instances of your Connection_RM2 derived object. This is used as a class factory and exposes functionality related to the connection and the system. More...
class | RakNet::Connection_RM2
| This class represents a connection between two instances of ReplicaManager2 Represents a connection. Allocated by user supplied factory interface Connection_RM2Factory Implicitly created as needed Generally you will want to implement at a minimum the Construct() function, used as a factory function to create your game objects. More...
## Namespaces
namespace | RakNet
| Forward declaration.

## Typedefs
typedef int | RakNet::SerializationType
| These are the types of events that can cause network data to be transmitted.
## Enumerations
enum | { RakNet::SEND_SERIALIZATION_GENERIC_TO_SYSTEM, RakNet::BROADCAST_SERIALIZATION_GENERIC_TO_SYSTEM, RakNet::SEND_SERIALIZATION_CONSTRUCTION_TO_SYSTEM, RakNet::BROADCAST_SERIALIZATION_CONSTRUCTION_TO_SYSTEM, RakNet::SEND_AUTO_SERIALIZE_TO_SYSTEM, RakNet::BROADCAST_AUTO_SERIALIZE_TO_SYSTEM, RakNet::RELAY_SERIALIZATION_TO_SYSTEMS, RakNet::SEND_CONSTRUCTION_SERIALIZATION_AUTO_INITIAL_DOWNLOAD_TO_SYSTEM , RakNet::SEND_DATA_SERIALIZATION_AUTO_INITIAL_DOWNLOAD_TO_SYSTEM, RakNet::SEND_DESTRUCTION_GENERIC_TO_SYSTEM, RakNet::SEND_DESTRUCTION_VISIBILITY_RECALCULATION_TO_SYSTEM, RakNet::BROADCAST_DESTRUCTION_GENERIC_TO_SYSTEM, RakNet::RELAY_DESTRUCTION_TO_SYSTEMS, RakNet::SEND_CONSTRUCTION_GENERIC_TO_SYSTEM, RakNet::SEND_CONSTRUCTION_VISIBILITY_RECALCULATION_TO_SYSTEM, RakNet::BROADCAST_CONSTRUCTION_GENERIC_TO_SYSTEM, RakNet::SEND_CONSTRUCTION_REQUEST_TO_SERVER, RakNet::BROADCAST_CONSTRUCTION_REQUEST_ACCEPTED_TO_SYSTEM, RakNet::SEND_CONSTRUCTION_REPLY_ACCEPTED_TO_CLIENT, RakNet::SEND_CONSTRUCTION_REPLY_DENIED_TO_CLIENT, RakNet::SEND_VISIBILITY_TRUE_TO_SYSTEM, RakNet::BROADCAST_VISIBILITY_TRUE_TO_SYSTEM, RakNet::SEND_VISIBILITY_FALSE_TO_SYSTEM, RakNet::BROADCAST_VISIBILITY_FALSE_TO_SYSTEM, RakNet::RELAY_VISIBILITY_TRUE_TO_SYSTEMS, RakNet::RELAY_VISIBILITY_FALSE_TO_SYSTEMS, RakNet::AUTOSERIALIZE_RESYNCH_ONLY, RakNet::AUTOSERIALIZE_DEFAULT, RakNet::UNDEFINED_REASON }
## Variables
| BQR_ALWAYS
| The query is always true, for all systems. Certain optimizations are performed here, but you should not later return any other value without first calling ReplicaManager2::RecalculateVisibility.
| BQR_YES
| True.
| BQR_NO
| False.

## Detailed Description

Contains the second iteration of the ReplicaManager class. This system automatically creates and destroys objects, downloads the world to new players, manages players, and automatically serializes as needed.

This file is part of RakNet Copyright 2003 Kevin Jenkins.

Usage of RakNet is subject to the appropriate license agreement. Creative Commons Licensees are subject to the license found at http://creativecommons.org/licenses/by-nc/2.5/ Single application licensees are subject to the license found at http://www.jenkinssoftware.com/SingleApplicationLicense.html Custom license users are subject to the terms therein. GPL license users are subject to the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.