12 class FNetSerializationContext;
13 struct FReplicationStateDescriptor;
16 class FNetBlobHandlerManager;
57 for (
unsigned Index : {3U, 2U, 1U, 0U})
67 for (
unsigned Index : {0U, 1U, 2U, 3U})
179 bool IsSequenceAcked(
uint32 Seq)
const;
185 bool IsSequenceSent(
uint32 Seq)
const;
189 void ClearSequenceIsSent(
uint32 Seq);
190 void ClearIndexIsSent(
uint32 Seq);
192 bool IsValidReceiveSequence(
uint32 Seq)
const;
200 void PopInOrderAckedBlobs();
216inline uint32 FReliableNetBlobQueue::SequenceToIndex(
uint32 Seq)
const
221inline bool FReliableNetBlobQueue::IsIndexAcked(
uint32 Index)
const
223 return (Acked[
Index >> 5U] & (1U << (
Index & 31U))) != 0U;
226inline bool FReliableNetBlobQueue::IsSequenceAcked(
uint32 Seq)
const
228 return IsIndexAcked(SequenceToIndex(Seq));
231inline void FReliableNetBlobQueue::SetIndexIsAcked(
uint32 Index)
236inline void FReliableNetBlobQueue::SetSequenceIsAcked(
uint32 Seq)
238 return SetIndexIsAcked(SequenceToIndex(Seq));
241inline void FReliableNetBlobQueue::ClearIndexIsAcked(
uint32 Index)
246inline bool FReliableNetBlobQueue::IsIndexSent(
uint32 Index)
const
248 return (Sent[
Index >> 5U] & (1U << (
Index & 31U))) != 0U;
251inline bool FReliableNetBlobQueue::IsSequenceSent(
uint32 Seq)
const
253 return IsIndexSent(SequenceToIndex(Seq));
256inline void FReliableNetBlobQueue::SetIndexIsSent(
uint32 Index)
261inline void FReliableNetBlobQueue::SetSequenceIsSent(
uint32 Seq)
263 return SetIndexIsSent(SequenceToIndex(Seq));
266inline void FReliableNetBlobQueue::ClearIndexIsSent(
uint32 Index)
271inline void FReliableNetBlobQueue::ClearSequenceIsSent(
uint32 Seq)
273 return ClearIndexIsSent(SequenceToIndex(Seq));
276inline bool FReliableNetBlobQueue::IsValidReceiveSequence(
uint32 Seq)
const
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UE_ARRAY_COUNT(array)
Definition UnrealTemplate.h:212
Definition RefCounting.h:454
Definition NetRefHandle.h:25
Definition NetSerializationContext.h:31
Definition ReliableNetBlobQueue.h:25
FReliableNetBlobQueue()
Definition ReliableNetBlobQueue.cpp:25
IRISCORE_API void DropUnreliable()
Definition ReliableNetBlobQueue.cpp:238
IRISCORE_API uint32 Deserialize(FNetSerializationContext &Context)
Definition ReliableNetBlobQueue.cpp:253
IRISCORE_API void ProcessPacketDeliveryStatus(EPacketDeliveryStatus Status, const FReplicationRecord &Record)
Definition ReliableNetBlobQueue.cpp:425
IRISCORE_API void CommitReplicationRecord(const FReplicationRecord &Record)
Definition ReliableNetBlobQueue.cpp:197
IRISCORE_API uint32 DeserializeWithObject(FNetSerializationContext &Context, FNetRefHandle RefHandle)
Definition ReliableNetBlobQueue.cpp:259
uint32 GetUnsentBlobCount() const
Definition ReliableNetBlobQueue.h:89
IRISCORE_API const TRefCountPtr< FNetBlob > * Peek()
Definition ReliableNetBlobQueue.cpp:363
IRISCORE_API bool IsSafeToDestroy() const
Definition ReliableNetBlobQueue.cpp:43
IRISCORE_API bool Enqueue(const TRefCountPtr< FNetBlob > &Blob)
Definition ReliableNetBlobQueue.cpp:347
IRISCORE_API SIZE_T GetUnreliableCount() const
Definition ReliableNetBlobQueue.cpp:221
IRISCORE_API uint32 SerializeWithObject(FNetSerializationContext &Context, FNetRefHandle RefHandle, FReplicationRecord &OutRecord)
Definition ReliableNetBlobQueue.cpp:65
static constexpr uint32 MaxUnackedBlobCount
Definition ReliableNetBlobQueue.h:83
bool IsSendWindowFull() const
Definition ReliableNetBlobQueue.h:211
bool IsAllSentAndAcked() const
Definition ReliableNetBlobQueue.h:95
~FReliableNetBlobQueue()
Definition ReliableNetBlobQueue.cpp:38
IRISCORE_API void Pop()
Definition ReliableNetBlobQueue.cpp:385
IRISCORE_API void DequeueUnreliable(TArray< TRefCountPtr< FNetBlob > > &Unreliable)
Definition ReliableNetBlobQueue.cpp:397
bool HasUnsentBlobs() const
Definition ReliableNetBlobQueue.h:92
Definition ReplicationRecord.h:13
Definition OverriddenPropertySet.cpp:45
Definition NetworkVersion.cpp:28
Definition NetworkVersion.cpp:28
EPacketDeliveryStatus
Definition PacketNotification.h:12
U16 Index
Definition radfft.cpp:71
Definition ReliableNetBlobQueue.h:31
FSequence(uint16 Value)
Definition ReliableNetBlobQueue.h:39
@ NumberBitCount
Definition ReliableNetBlobQueue.h:34
@ CountBitCount
Definition ReliableNetBlobQueue.h:35
uint16 Count
Definition ReliableNetBlobQueue.h:51
uint16 Number
Definition ReliableNetBlobQueue.h:50
uint16 ToUint16() const
Definition ReliableNetBlobQueue.h:45
Definition ReliableNetBlobQueue.h:29
uint64 ToUint64() const
Definition ReliableNetBlobQueue.h:64
FReplicationRecord(uint64 Value)
Definition ReliableNetBlobQueue.h:55
FReplicationRecord()=default
bool IsValid() const
Definition ReliableNetBlobQueue.h:75
FSequence Sequences[4]
Definition ReliableNetBlobQueue.h:77