7template<
typename DataType >
152 const uint32 BufferDataSize;
164 uint64 TotalNumDataPushed;
169template<
typename DataType >
173 Data =
new DataType[BufferDataSize];
177template<
typename DataType >
183template<
typename DataType >
187 NumDataAvailable = 0;
189 TotalNumDataPushed = 0;
192template<
typename DataType >
195 Data[DataIndex++] =
Val;
196 DataIndex %= BufferDataSize;
197 ++TotalNumDataPushed;
198 NumDataAvailable = FMath::Clamp< uint32 >(NumDataAvailable + 1, 0, BufferDataSize);
201template<
typename DataType >
212 DataIndex %= BufferDataSize;
213 TotalNumDataPushed +=
BufLen;
214 NumDataAvailable = FMath::Clamp<uint32>(NumDataAvailable +
BufLen, 0, BufferDataSize);
217template<
typename DataType >
222 NumDataAvailable = FMath::Clamp< uint32 >(NumDataAvailable - 1, 0, BufferDataSize);
231template<
typename DataType >
239template<
typename DataType >
242 if (NumDataAvailable > 0)
253template<
typename DataType >
267template<
typename DataType >
280template<
typename DataType >
294template<
typename DataType >
303template<
typename DataType >
306 return Data[(BottomIndex() +
Index) % BufferDataSize];
309template<
typename DataType >
312 return Data[(BottomIndex() +
Index) % BufferDataSize];
315template<
typename DataType >
318 return Data[TopIndex()];
321template<
typename DataType >
324 return Data[TopIndex()];
327template<
typename DataType >
330 return Data[BottomIndex()];
333template<
typename DataType >
336 return Data[BottomIndex()];
339template<
typename DataType >
342 return (DataIndex + BufferDataSize - 1) % BufferDataSize;
345template<
typename DataType >
348 return (DataIndex + BufferDataSize - NumDataAvailable) % BufferDataSize;
351template<
typename DataType >
357template<
typename DataType >
360 return BufferDataSize;
363template<
typename DataType >
366 return NumDataAvailable;
369template<
typename DataType >
372 return TotalNumDataPushed;
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
float Val(const FString &Value)
Definition UnrealMath.cpp:3163
Definition SecureHash.h:314
CORE_API void Update(const uint8 *data, uint64 len)
Definition SecureHash.cpp:1205
CORE_API void GetHash(uint8 *puDest) const
Definition SecureHash.cpp:1269
CORE_API void Final()
Definition SecureHash.cpp:1245
Definition SecureHash.h:226
Definition RingBuffer.h:135
FORCEINLINE uint32 NextIndex() const
Definition RingBuffer.h:352
bool Dequeue(DataType &ValOut)
Definition RingBuffer.h:218
FORCEINLINE DataType & Bottom()
Definition RingBuffer.h:334
TRingBuffer(uint32 BufferDataSize)
Definition RingBuffer.h:170
FORCEINLINE uint32 RingDataSize() const
Definition RingBuffer.h:358
uint32 Peek(DataType *ValBuf, const uint32 &BufLen) const
Definition RingBuffer.h:254
FORCEINLINE const DataType & Bottom() const
Definition RingBuffer.h:328
int32 SerialCompare(const DataType *SerialBuffer, uint32 CompareLen) const
Definition RingBuffer.h:268
void GetShaHash(FSHAHash &OutHash) const
Definition RingBuffer.h:281
FORCEINLINE uint32 TopIndex() const
Definition RingBuffer.h:340
FORCEINLINE DataType & Top()
Definition RingBuffer.h:322
void Enqueue(const DataType *ValBuf, const uint32 &BufLen)
Definition RingBuffer.h:202
FORCEINLINE DataType & operator[](const int32 &Index)
Definition RingBuffer.h:310
FORCEINLINE uint32 RingDataUsage() const
Definition RingBuffer.h:364
void Empty()
Definition RingBuffer.h:184
uint32 Dequeue(DataType *ValBuf, const uint32 &BufLen)
Definition RingBuffer.h:232
FORCEINLINE uint64 TotalDataPushed() const
Definition RingBuffer.h:370
FORCEINLINE const DataType & Top() const
Definition RingBuffer.h:316
FORCEINLINE uint32 BottomIndex() const
Definition RingBuffer.h:346
FORCEINLINE const DataType & operator[](const int32 &Index) const
Definition RingBuffer.h:304
TRingBuffer()
Definition RingBuffer.h:164
void Enqueue(const DataType &Val)
Definition RingBuffer.h:193
void Serialize(DataType *SerialBuffer) const
Definition RingBuffer.h:295
~TRingBuffer()
Definition RingBuffer.h:224
bool Peek(DataType &ValOut) const
Definition RingBuffer.h:240
ElementType & operator[](IndexType Index)
Definition RingBuffer.h:595
U16 Index
Definition radfft.cpp:71
static UE_FORCEINLINE_HINT void * Memzero(void *Dest, SIZE_T Count)
Definition UnrealMemory.h:131
static UE_FORCEINLINE_HINT int32 Memcmp(const void *Buf1, const void *Buf2, SIZE_T Count)
Definition UnrealMemory.h:114
static UE_FORCEINLINE_HINT void * Memcpy(void *Dest, const void *Src, SIZE_T Count)
Definition UnrealMemory.h:160