UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
TSequenceNumber< NumBits, SequenceType > Class Template Reference

#include <SequenceNumber.h>

Public Types

enum  { SeqNumberBits = NumBits }
 
enum  { SeqNumberCount = SequenceT(1) << NumBits }
 
enum  { SeqNumberHalf = SequenceT(1) << (NumBits - 1) }
 
enum  { SeqNumberMax = SeqNumberCount - 1u }
 
enum  { SeqNumberMask = SeqNumberMax }
 
using SequenceT = SequenceType
 
using DifferenceT = int32
 

Public Member Functions

 TSequenceNumber ()
 
 TSequenceNumber (SequenceT ValueIn)
 
SequenceT Get () const
 
bool operator> (const TSequenceNumber &Other) const
 
bool operator>= (const TSequenceNumber &Other) const
 
TSequenceNumberoperator++ ()
 
TSequenceNumber operator++ (int)
 

Static Public Member Functions

static DifferenceT Diff (TSequenceNumber A, TSequenceNumber B)
 

Friends

bool operator< (const TSequenceNumber &Lhs, const TSequenceNumber &Rhs)
 
bool operator<= (const TSequenceNumber &Lhs, const TSequenceNumber &Rhs)
 
bool operator== (const TSequenceNumber &Lhs, const TSequenceNumber &Rhs)
 
bool operator!= (const TSequenceNumber &Lhs, const TSequenceNumber &Rhs)
 
const TSequenceNumber operator+ (const TSequenceNumber &Lhs, const TSequenceNumber &Rhs)
 
const TSequenceNumber operator- (const TSequenceNumber &Lhs, const TSequenceNumber &Rhs)
 
const TSequenceNumber operator+ (const TSequenceNumber &Lhs, SequenceType Rhs)
 
const TSequenceNumber operator- (const TSequenceNumber &Lhs, SequenceType Rhs)
 

Detailed Description

template<SIZE_T NumBits, typename SequenceType>
class TSequenceNumber< NumBits, SequenceType >

Helper class to work with sequence numbers

Member Typedef Documentation

◆ DifferenceT

template<SIZE_T NumBits, typename SequenceType >
using TSequenceNumber< NumBits, SequenceType >::DifferenceT = int32

◆ SequenceT

template<SIZE_T NumBits, typename SequenceType >
using TSequenceNumber< NumBits, SequenceType >::SequenceT = SequenceType

Member Enumeration Documentation

◆ anonymous enum

template<SIZE_T NumBits, typename SequenceType >
anonymous enum
Enumerator
SeqNumberBits 

◆ anonymous enum

template<SIZE_T NumBits, typename SequenceType >
anonymous enum
Enumerator
SeqNumberCount 

◆ anonymous enum

template<SIZE_T NumBits, typename SequenceType >
anonymous enum
Enumerator
SeqNumberHalf 

◆ anonymous enum

template<SIZE_T NumBits, typename SequenceType >
anonymous enum
Enumerator
SeqNumberMax 

◆ anonymous enum

template<SIZE_T NumBits, typename SequenceType >
anonymous enum
Enumerator
SeqNumberMask 

Constructor & Destructor Documentation

◆ TSequenceNumber() [1/2]

Default constructor

◆ TSequenceNumber() [2/2]

Constructor with given value

Member Function Documentation

◆ Diff()

Diff between sequence numbers (A - B) only valid if (A - B) < SeqNumberHalf

◆ Get()

template<SIZE_T NumBits, typename SequenceType >
SequenceT TSequenceNumber< NumBits, SequenceType >::Get ( ) const
inline

Get Current Value

◆ operator++() [1/2]

template<SIZE_T NumBits, typename SequenceType >
TSequenceNumber & TSequenceNumber< NumBits, SequenceType >::operator++ ( )
inline

Pre-increment and wrap around

◆ operator++() [2/2]

template<SIZE_T NumBits, typename SequenceType >
TSequenceNumber TSequenceNumber< NumBits, SequenceType >::operator++ ( int  )
inline

Post-increment and wrap around

◆ operator>()

template<SIZE_T NumBits, typename SequenceType >
bool TSequenceNumber< NumBits, SequenceType >::operator> ( const TSequenceNumber< NumBits, SequenceType > &  Other) const
inline

return true if this is > Other, this is only considered to be the case if (A - B) < SeqNumberHalf since we have to be able to detect wraparounds

◆ operator>=()

template<SIZE_T NumBits, typename SequenceType >
bool TSequenceNumber< NumBits, SequenceType >::operator>= ( const TSequenceNumber< NumBits, SequenceType > &  Other) const
inline

Check if this is >= Other, See above

Friends And Related Symbol Documentation

◆ operator!=

template<SIZE_T NumBits, typename SequenceType >
bool operator!= ( const TSequenceNumber< NumBits, SequenceType > &  Lhs,
const TSequenceNumber< NumBits, SequenceType > &  Rhs 
)
friend

◆ operator+ [1/2]

template<SIZE_T NumBits, typename SequenceType >
const TSequenceNumber operator+ ( const TSequenceNumber< NumBits, SequenceType > &  Lhs,
const TSequenceNumber< NumBits, SequenceType > &  Rhs 
)
friend

◆ operator+ [2/2]

template<SIZE_T NumBits, typename SequenceType >
const TSequenceNumber operator+ ( const TSequenceNumber< NumBits, SequenceType > &  Lhs,
SequenceType  Rhs 
)
friend

◆ operator- [1/2]

template<SIZE_T NumBits, typename SequenceType >
const TSequenceNumber operator- ( const TSequenceNumber< NumBits, SequenceType > &  Lhs,
const TSequenceNumber< NumBits, SequenceType > &  Rhs 
)
friend

◆ operator- [2/2]

template<SIZE_T NumBits, typename SequenceType >
const TSequenceNumber operator- ( const TSequenceNumber< NumBits, SequenceType > &  Lhs,
SequenceType  Rhs 
)
friend

◆ operator<

template<SIZE_T NumBits, typename SequenceType >
bool operator< ( const TSequenceNumber< NumBits, SequenceType > &  Lhs,
const TSequenceNumber< NumBits, SequenceType > &  Rhs 
)
friend

◆ operator<=

template<SIZE_T NumBits, typename SequenceType >
bool operator<= ( const TSequenceNumber< NumBits, SequenceType > &  Lhs,
const TSequenceNumber< NumBits, SequenceType > &  Rhs 
)
friend

◆ operator==

template<SIZE_T NumBits, typename SequenceType >
bool operator== ( const TSequenceNumber< NumBits, SequenceType > &  Lhs,
const TSequenceNumber< NumBits, SequenceType > &  Rhs 
)
friend

Equals, NOTE that sequence numbers wrap around so 0 == 0 + SequenceNumberCount


The documentation for this class was generated from the following file: