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.
List of all members
GridMate::ReplicaChunk Class Reference

#include <ReplicaChunk.h>

Inherits GridMate::ReplicaChunkBase, and GridMate::ReplicaChunkInterface.

Inherited by GridMate::GridMember, GridMate::Internal::GridMemberStateReplica, GridMate::Internal::GridSessionReplica, GridMate::ReplicaInternal::PeerReplica, and GridMate::ReplicaInternal::SessionInfo.

Additional Inherited Members

- Public Types inherited from GridMate::ReplicaChunkBase
using RPCQueue = AZStd::ring_buffer< Internal::RpcRequest *, SysContAlloc >
 
- Public Member Functions inherited from GridMate::ReplicaChunkBase
void Init (ReplicaChunkClassId chunkTypeId)
 Initializes the chunk. Must be called before the chunk can be used.
 
void Init (ReplicaChunkDescriptor *descriptor)
 
bool IsClassType (ReplicaChunkClassId classId) const
 
ReplicaChunkDescriptorGetDescriptor () const
 
ReplicaId GetReplicaId () const
 
PeerId GetPeerId () const
 
virtual ReplicaManagerGetReplicaManager ()
 
bool IsActive () const
 
bool IsPrimary () const
 
bool IsProxy () const
 
virtual void OnAttachedToReplica (Replica *replica)
 
virtual void OnDetachedFromReplica (Replica *replica)
 
virtual bool IsReplicaMigratable ()=0
 
virtual void UpdateChunk (const ReplicaContext &rc)
 
virtual void UpdateFromChunk (const ReplicaContext &rc)
 
virtual bool AcceptChangeOwnership (PeerId requestor, const ReplicaContext &rc)
 
virtual void OnReplicaActivate (const ReplicaContext &rc)
 
virtual void OnReplicaDeactivate (const ReplicaContext &rc)
 
virtual void OnReplicaChangeOwnership (const ReplicaContext &rc)
 
virtual bool IsUpdateFromReplicaEnabled ()
 
ReplicaGetReplica ()
 
void SetHandler (ReplicaChunkInterface *handler)
 
ReplicaChunkInterfaceGetHandler ()
 
ReplicaPriority GetPriority () const
 
void SetPriority (ReplicaPriority priority)
 
virtual bool ShouldSendToPeer (ReplicaPeer *peer) const
 
template<typename T >
bool IsType ()
 
virtual bool IsBroadcast ()
 
AZ::u64 GetLastChangeStamp () const
 
virtual bool ShouldBindToNetwork ()
 
- Public Attributes inherited from GridMate::ReplicaChunkBase
friend Replica
 
friend RpcBase
 
friend DataSetBase
 
- Static Public Attributes inherited from GridMate::ReplicaChunkBase
static constexpr AZStd::size_t MaxRpcQueueSize = 512
 Specify the maximum size of a RPC queues for each replica chunk. This queue can grow while RPCs are being delivered back to all clients.
 
- Protected Types inherited from GridMate::ReplicaChunkBase
enum  Flags { RepChunk_Updated = 1 << 0 }
 
- Protected Member Functions inherited from GridMate::ReplicaChunkBase
virtual AZ::u32 CalculateDirtyDataSetMask (MarshalContext &mc)
 
virtual void OnDataSetChanged (const DataSetBase &dataSet)
 
virtual void Marshal (MarshalContext &mc, AZ::u32 chunkIndex)
 
virtual void Unmarshal (UnmarshalContext &mc, AZ::u32 chunkIndex)
 
AZ_FORCE_INLINE void add_ref ()
 
void release ()
 
void AttachedToReplica (Replica *replica)
 
void DetachedFromReplica ()
 
bool IsDirty (AZ::u32 marshalFlags) const
 
PrepareDataResult PrepareData (EndianType endianType, AZ::u32 marshalFlags)
 
void MarshalDataSets (MarshalContext &mc, AZ::u32 chunkIndex)
 
void MarshalRpcs (MarshalContext &mc, AZ::u32 chunkIndex)
 
void UnmarshalDataSets (UnmarshalContext &mc, AZ::u32 chunkIndex)
 
void UnmarshalRpcs (UnmarshalContext &mc, AZ::u32 chunkIndex)
 
void AddDataSetEvent (DataSetBase *dataset)
 
void SignalDataSetChanged (const DataSetBase &dataset)
 
void EnqueueMarshalTask ()
 
void QueueRPCRequest (GridMate::Internal::RpcRequest *rpc)
 
bool ProcessRPCs (const ReplicaContext &rc)
 
void MarkRPCsAsRelayed ()
 
void ClearPendingRPCs ()
 
- Protected Attributes inherited from GridMate::ReplicaChunkBase
unsigned int m_refCount
 
Replicam_replica
 
ReplicaChunkDescriptorm_descriptor
 
AZ::u32 m_flags
 
RPCQueue m_rpcQueue {MaxRpcQueueSize}
 
ReplicaChunkInterfacem_handler
 
AZStd::bitset< GM_MAX_DATASETS_IN_CHUNK > m_reliableDirtyBits
 
AZStd::bitset< GM_MAX_DATASETS_IN_CHUNK > m_unreliableDirtyBits
 
AZStd::bitset< GM_MAX_DATASETS_IN_CHUNK > m_nonDefaultValueBits
 
AZ::u32 m_nDownstreamReliableRPCs
 
AZ::u32 m_nDownstreamUnreliableRPCs
 
AZ::u32 m_nUpstreamReliableRPCs
 
AZ::u32 m_nUpstreamUnreliableRPCs
 
AZ::u32 m_dirtiedDataSets
 
ReplicaPriority m_priority
 
AZ::u64 m_revision
 

Detailed Description

Use ReplicaChunk as a parent class when the chunk contains the logic for its network events. This is useful for peer to peer environments and when the same code can be shared between client and server.


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