Navigation
API > API/Runtime > API/Runtime/IrisCore
Helper class to deliver blobs reliably in order.
| Name | FReliableNetBlobQueue |
| Type | class |
| Header File | /Engine/Source/Runtime/Net/Iris/Public/Iris/ReplicationSystem/NetBlob/ReliableNetBlobQueue.h |
| Include Path | #include "Iris/ReplicationSystem/NetBlob/ReliableNetBlobQueue.h" |
Syntax
class FReliableNetBlobQueue
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FReliableNetBlobQueue() |
Iris/ReplicationSystem/NetBlob/ReliableNetBlobQueue.h |
Destructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
~FReliableNetBlobQueue() |
Iris/ReplicationSystem/NetBlob/ReliableNetBlobQueue.h |
Structs
| Name | Remarks |
|---|---|
| FReplicationRecord | A single ReplicationRecord supports up to four disjoint sequences to be serialized in a packet. This allows for resends of dropped data while potentially also writing new blobs for the first time. |
Constants
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| MaxUnackedBlobCount | uint32 | This represents a ReplicationRecord where nothing was serialized. | Iris/ReplicationSystem/NetBlob/ReliableNetBlobQueue.h |
Variables
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| Acked | uint32 | Iris/ReplicationSystem/NetBlob/ReliableNetBlobQueue.h | ||
| FirstSeq | uint32 | Iris/ReplicationSystem/NetBlob/ReliableNetBlobQueue.h | ||
| LastSeq | uint32 | Iris/ReplicationSystem/NetBlob/ReliableNetBlobQueue.h | ||
| NetBlobs | TRefCountPtr< FNetBlob > | Iris/ReplicationSystem/NetBlob/ReliableNetBlobQueue.h | ||
| Sent | uint32 | Iris/ReplicationSystem/NetBlob/ReliableNetBlobQueue.h | ||
| UnsentBlobCount | uint32 | Iris/ReplicationSystem/NetBlob/ReliableNetBlobQueue.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void CommitReplicationRecord
(
const FReplicationRecord& Record |
Call after a packet containing serialized data was sent. | Iris/ReplicationSystem/NetBlob/ReliableNetBlobQueue.h | |
void DequeueUnreliable
(
TArray< TRefCountPtr< FNetBlob > >& Unreliable |
On the receiving end this will move all received unreliable NetBlobs to the array and release them from the queue. | Iris/ReplicationSystem/NetBlob/ReliableNetBlobQueue.h | |
uint32 Deserialize
(
FNetSerializationContext& Context |
Deserializes blobs with object using their respective Deserialize() method. | Iris/ReplicationSystem/NetBlob/ReliableNetBlobQueue.h | |
uint32 DeserializeWithObject
(
FNetSerializationContext& Context, |
Deserializes blobs with object using their respective DeserializeWithObject() method. | Iris/ReplicationSystem/NetBlob/ReliableNetBlobQueue.h | |
void DropUnreliable() |
On sending side this will drop all unreliable in the queue to avoid creating a backlog of unsent unreliable blobs | Iris/ReplicationSystem/NetBlob/ReliableNetBlobQueue.h | |
bool Enqueue
(
const TRefCountPtr< FNetBlob >& Blob |
Put a blob to be sent in the queue. | Iris/ReplicationSystem/NetBlob/ReliableNetBlobQueue.h | |
SIZE_T GetUnreliableCount() |
Count all unreliable blobs | Iris/ReplicationSystem/NetBlob/ReliableNetBlobQueue.h | |
uint32 GetUnsentBlobCount() |
Returns the number of blobs that have not yet been sent. | Iris/ReplicationSystem/NetBlob/ReliableNetBlobQueue.h | |
bool HasUnsentBlobs () |
Returns true if there are unsent blobs. | Iris/ReplicationSystem/NetBlob/ReliableNetBlobQueue.h | |
bool IsAllSentAndAcked() |
Returns whether all blobs have been sent and acknowledged as received. | Iris/ReplicationSystem/NetBlob/ReliableNetBlobQueue.h | |
bool IsSafeToDestroy() |
Returns true if it's safe to destroy this queue. | Iris/ReplicationSystem/NetBlob/ReliableNetBlobQueue.h | |
bool IsSendWindowFull() |
Returns whether the send window is full or not. | Iris/ReplicationSystem/NetBlob/ReliableNetBlobQueue.h | |
const TRefCountPtr< FNetBlob > * Peek() |
On the receiving end this will return a pointer to the next blob that can be processed. | Iris/ReplicationSystem/NetBlob/ReliableNetBlobQueue.h | |
void Pop () |
On the receiving end this will remove the next blob to be processed from the queue. | Iris/ReplicationSystem/NetBlob/ReliableNetBlobQueue.h | |
void ProcessPacketDeliveryStatus
(
EPacketDeliveryStatus Status, |
For each packet for which CommitReplicationRecord() was called ProcessPacketDeliveryStatus() needs to be called in the same order when it's known whether the packet was delivered or not. | Iris/ReplicationSystem/NetBlob/ReliableNetBlobQueue.h | |
uint32 Serialize
(
FNetSerializationContext& Context, |
Serializes as many blobs as possible using their respective Serialize() method. | Iris/ReplicationSystem/NetBlob/ReliableNetBlobQueue.h | |
uint32 SerializeWithObject
(
FNetSerializationContext& Context, |
Serializes as many blobs as possible using their respective SerializeWithObject() method. | Iris/ReplicationSystem/NetBlob/ReliableNetBlobQueue.h |