![]() |
UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
|
#include <ReliableNetBlobQueue.h>
Classes | |
| struct | FReplicationRecord |
Static Public Attributes | |
| static constexpr uint32 | MaxUnackedBlobCount = 1024U |
Helper class to deliver blobs reliably in order.
| UE::Net::Private::FReliableNetBlobQueue::FReliableNetBlobQueue | ( | ) |
| UE::Net::Private::FReliableNetBlobQueue::~FReliableNetBlobQueue | ( | ) |
| void UE::Net::Private::FReliableNetBlobQueue::CommitReplicationRecord | ( | const FReplicationRecord & | Record | ) |
Call after a packet containing serialized data was sent.
| void UE::Net::Private::FReliableNetBlobQueue::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. This breaks the ordering guarantees provided by using Peek and Pop. Reliable NetBlobs are unaffected by this operation.
| uint32 UE::Net::Private::FReliableNetBlobQueue::Deserialize | ( | FNetSerializationContext & | Context | ) |
Deserializes blobs with object using their respective Deserialize() method.
| uint32 UE::Net::Private::FReliableNetBlobQueue::DeserializeWithObject | ( | FNetSerializationContext & | Context, |
| FNetRefHandle | RefHandle | ||
| ) |
Deserializes blobs with object using their respective DeserializeWithObject() method.
| void UE::Net::Private::FReliableNetBlobQueue::DropUnreliable | ( | ) |
On sending side this will drop all unreliable in the queue to avoid creating a backlog of unsent unreliable blobs
| bool UE::Net::Private::FReliableNetBlobQueue::Enqueue | ( | const TRefCountPtr< FNetBlob > & | Blob | ) |
Put a blob to be sent in the queue. Returns true if the blob was successfully queued and false if the queue was full.
| SIZE_T UE::Net::Private::FReliableNetBlobQueue::GetUnreliableCount | ( | ) | const |
Count all unreliable blobs
|
inline |
Returns the number of blobs that have not yet been sent.
|
inline |
Returns true if there are unsent blobs. There may still be unacked blobs even if there are no unsent ones.
|
inline |
Returns whether all blobs have been sent and acknowledged as received.
| bool UE::Net::Private::FReliableNetBlobQueue::IsSafeToDestroy | ( | ) | const |
Returns true if it's safe to destroy this queue.
|
inline |
Returns whether the send window is full or not.
| const TRefCountPtr< FNetBlob > * UE::Net::Private::FReliableNetBlobQueue::Peek | ( | ) |
On the receiving end this will return a pointer to the next blob that can be processed.
| void UE::Net::Private::FReliableNetBlobQueue::Pop | ( | ) |
On the receiving end this will remove the next blob to be processed from the queue. Call after processing the blob returned from Peek().
| void UE::Net::Private::FReliableNetBlobQueue::ProcessPacketDeliveryStatus | ( | EPacketDeliveryStatus | Status, |
| const FReplicationRecord & | Record | ||
| ) |
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.
| Status | Whether the packet was delivered or not or if the record should simply be discarded due to closing a connection. |
| Record | The record that was obtained via a Serialize/SerializeWithObject call and passed to CommitReplicationRecord. |
| uint32 UE::Net::Private::FReliableNetBlobQueue::Serialize | ( | FNetSerializationContext & | Context, |
| FReliableNetBlobQueue::FReplicationRecord & | OutRecord | ||
| ) |
Serializes as many blobs as possible using their respective Serialize() method.
| Context | A FNetSerializationContext. |
| OutRecord | The record to pass to CommitReplicationRecord() if a packet containing the serialized data was sent. |
| uint32 UE::Net::Private::FReliableNetBlobQueue::SerializeWithObject | ( | FNetSerializationContext & | Context, |
| FNetRefHandle | RefHandle, | ||
| FReliableNetBlobQueue::FReplicationRecord & | OutRecord | ||
| ) |
Serializes as many blobs as possible using their respective SerializeWithObject() method. It is assumed the NetRefHandle will be reconstructed somehow on the receiving end and passed to DeserializeWithObject(). This provides an opportunity for FNetObjectAttachments, such as FNetRPCs, to avoid serializing the same NetRefHandle redundantly.
| Context | A FNetSerializationContext. |
| RefHandle | The handle for the blobs' target object. |
| OutRecord | The record to pass to CommitReplicationRecord() if a packet containing the serialized data was sent. |
|
staticconstexpr |
This represents a ReplicationRecord where nothing was serialized. How many blobs can be sent before an ACK/NAK is required to continue sending. Changing this might require changing FReplicationRecord too.