Open 3D Engine GridMate API Reference  2205.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Friends | List of all members
GridMate::Replica Class Referencefinal

Inherits GridMate::ReplicaStatusInterface.

Public Types

typedef vector< ReplicaChunkPtr > ChunkListType
 

Public Member Functions

 GM_CLASS_ALLOCATOR (Replica)
 
void Destroy ()
 
void UpdateReplica (const ReplicaContext &rc)
 
void UpdateFromReplica (const ReplicaContext &rc)
 
bool AcceptChangeOwnership (PeerId requestor, const ReplicaContext &rc)
 
void OnActivate (const ReplicaContext &rc)
 
void OnDeactivate (const ReplicaContext &rc)
 
void OnChangeOwnership (const ReplicaContext &rc)
 
bool AttachReplicaChunk (const ReplicaChunkPtr &chunk)
 
bool DetachReplicaChunk (const ReplicaChunkPtr &chunk)
 
ReplicaId GetRepId () const
 
PeerId GetPeerId () const
 
const char * GetDebugName () const
 
unsigned int GetCreateTime () const
 
ReplicaContext GetMyContext () const
 
ReplicaManagerGetReplicaManager ()
 
void RegisterMarshalingTask (ReplicaTask *task)
 
void UnregisterMarshalingTask (ReplicaTask *task)
 
bool HasMarshalingTask () const
 
void RegisterUpdateTask (ReplicaTask *task)
 
void UnregisterUpdateTask (ReplicaTask *task)
 
bool HasUpdateTask () const
 
void RequestChangeOwnership (PeerId newOwner=InvalidReplicaPeerId)
 
bool IsPrimary () const
 
bool IsProxy () const
 
bool IsNew () const
 
bool IsNewOwner () const
 
bool IsActive () const
 
void SetSyncStage (bool b=true)
 
bool IsSyncStage () const
 
bool IsMigratable () const
 
bool IsDirty () const
 
bool IsBroadcast () const
 
bool IsUpdateFromReplicaEnabled () const
 
ReplicaPriority GetPriority () const
 
size_t GetNumChunks () const
 
ReplicaChunkPtr GetChunkByIndex (size_t index)
 
template<class R >
AZStd::intrusive_ptr< R > FindReplicaChunk ()
 
AZ::u64 GetRevision () const
 
const ReplicaTargetListDebugGetTargets () const
 
PrepareDataResult DebugPrepareData (EndianType endian, AZ::u32 marshalFlags)
 
void DebugMarshal (MarshalContext &mc)
 
void DebugPreDestruct ()
 
 Replica (const char *replicaName)
 

Static Public Member Functions

static ReplicaCreateReplica (const char *replicaName)
 

Protected Types

typedef unordered_set< ReplicaTask * > PendingTasks
 

Protected Member Functions

AZ_FORCE_INLINE void add_ref ()
 
void release ()
 
void InitReplica (ReplicaManager *manager)
 
void Activate (const ReplicaContext &rc)
 
void Deactivate (const ReplicaContext &rc)
 
void PreDestruct ()
 
ReplicaChunkPtr CreateReplicaChunkFromStream (ReplicaChunkClassId classId, UnmarshalContext &mc)
 
void MarkRPCsAsRelayed ()
 
void SetPrimary (bool isPrimary)
 
void SetNew ()
 
void SetRepId (ReplicaId id)
 
void SetMigratable (bool migratable)
 
bool IsSuspendDownstream () const
 
PrepareDataResult PrepareData (EndianType endianType, AZ::u32 marshalFlags=0)
 
void Marshal (MarshalContext &mc)
 
bool Unmarshal (UnmarshalContext &mc)
 
bool ProcessRPCs (const ReplicaContext &rc)
 
void ClearPendingRPCs ()
 
void OnReplicaPriorityUpdated (ReplicaChunkBase *chunk)
 
bool RequestOwnershipFn (PeerId requestor, const RpcContext &rpcContext) override
 
bool MigrationSuspendUpstreamFn (PeerId ownerId, AZ::u32 requestTime, const RpcContext &rpcContext) override
 
bool MigrationRequestDownstreamAckFn (PeerId ownerId, AZ::u32 requestTime, const RpcContext &rpcContext) override
 

Protected Attributes

unsigned int m_refCount
 
ReplicaId m_myId
 
AZ::u32 m_flags
 
unsigned int m_createTime
 
ReplicaManagerm_manager
 
ReplicaPeerm_upstreamHop
 
ChunkListType m_chunks
 
PendingTasks m_marshalingTasks
 
PendingTasks m_updateTasks
 
AZStd::intrusive_list_node< Replicam_dirtyHook
 
ReplicaChunkPtr m_replicaStatus
 
ReplicaTargetList m_targets
 
ReplicaPriority m_priority
 
AZ::u64 m_revision
 Change stamp. Increases every time a data set changes. Start at 1 to send initial value.
 

Friends

class ReplicaChunkBase
 
class ReplicaManager
 
class ReplicaPeer
 
class ReplicaMarshalTaskBase
 
class ReplicaUpdateTaskBase
 
class ReplicaMarshalUpstreamTask
 
class ReplicaMarshalUpdateTask
 
class RelayRpcsTask
 
class ReplicaMarshalTask
 
class ReplicaMarshalZombieToPeerTask
 
class ReplicaMarshalZombieTask
 
class SendLimitProcessPolicy
 
class ReplicaMarshalNewTask
 
class ReplicaTarget
 
template<class T >
struct AZStd::IntrusivePtrCountPolicy
 

Member Function Documentation

◆ FindReplicaChunk()

template<class R >
AZStd::intrusive_ptr< R > GridMate::Replica::FindReplicaChunk
inline

Find a ReplicaChunk by type.


The documentation for this class was generated from the following files: