5#include "Containers/Array.h"
16template<
typename T,
typename TAllocator = FDefaultAllocator>
26 Data[NextIndexToInsert] =
InItem;
27 bIsBufferFull |= NextIndexToInsert == Data.Num() - 1;
28 NextIndexToInsert = (NextIndexToInsert + 1) % Data.Num();
34 return bIsBufferFull ? &Data[NextIndexToInsert] :
nullptr;
46 return bIsBufferFull ?
Capacity() : NextIndexToInsert;
51 return !bIsBufferFull && NextIndexToInsert == 0;
71 bool bIsBufferFull =
false;
73 SIZE_T NextIndexToInsert = 0;
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition ModuloCircularBuffer.h:18
TConstArrayView< T > AsUnorderedView() const
Definition ModuloCircularBuffer.h:61
bool IsEmpty() const
Definition ModuloCircularBuffer.h:49
TModuloCircularBuffer(SIZE_T InNumSamples)
Definition ModuloCircularBuffer.h:21
bool IsFull() const
Definition ModuloCircularBuffer.h:55
SIZE_T Num() const
Definition ModuloCircularBuffer.h:44
const T * GetNextReplacedItem() const
Definition ModuloCircularBuffer.h:32
SIZE_T Capacity() const
Definition ModuloCircularBuffer.h:38
void Add(const T &InItem)
Definition ModuloCircularBuffer.h:24
Definition TimecodeEstimator.cpp:12