UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::Editor::DataStorage::FColumnSorterInterface Class Referenceabstract

#include <TypedElementSorter.h>

+ Inheritance diagram for UE::Editor::DataStorage::FColumnSorterInterface:

Public Types

enum class  ESortType : uint8 {
  FixedSize64 , FixedSizeOnly , ComparativeSort , HybridSort ,
  Max
}
 

Public Member Functions

virtual ~FColumnSorterInterface ()=default
 
virtual ESortType GetSortType () const =0
 
virtual FText GetShortName () const =0
 
virtual int32 Compare (const ICoreProvider &Storage, RowHandle Left, RowHandle Right) const =0
 
virtual FPrefixInfo CalculatePrefix (const ICoreProvider &Storage, RowHandle Row, uint32 ByteIndex) const =0
 

Detailed Description

Interface to provide sorting of rows by column.

Member Enumeration Documentation

◆ ESortType

Enumerator
FixedSize64 

Supports sort algorithms that sort by only using a single (packed) value of 64 bits. Algorithms supporting this option will only use SortPrefix and will only call this once per row.

FixedSizeOnly 

Supports sort algorithms that sort by only using one or more fixed sized values like integers or floats. Algorithms supporting this option will only use SortPrefix and assume only fixed sized values are used. Including values with variable size such as strings will lead to suboptimal performance.

ComparativeSort 

Supports sort algorithms that sort using a comparative function. Algorithms supporting this option will only use the Compare function to sort. Comparative sorting requires more reads from columns than fixed sized sorting or hybrid sorting an is also more susceptible to frame spikes when distributed over multiple frames and/or threads. It does however provide greater flexibility when requiring complex comparisons such as ones requiring multiple strings.

HybridSort 

Supports sort algorithms that sort using both a prefix and a comparative function. Algorithms supporting this option will use both the SortPrefix and Compare functions to sort. Typically rows are grouped into buckets based on their prefix and when a bucket is small enough a compare may be used to sort the bucket. A hybrid approach is typically faster for larger numbers of rows as is reduces the amount of times columns have to be read. It also reduces or removes the need for a compare which can be beneficial if the compare is expensive. Lastly it typically also allows for more even work distribution over frames/threads, reducing the risk of spikes. However it does come at an increased peak memory usage and limits the number of variable sized variables to one, which also have to be the last variable in the chain.

Max 

Indicates the final value, cannot be used as input.

Constructor & Destructor Documentation

◆ ~FColumnSorterInterface()

virtual UE::Editor::DataStorage::FColumnSorterInterface::~FColumnSorterInterface ( )
virtualdefault

Member Function Documentation

◆ CalculatePrefix()

virtual FPrefixInfo UE::Editor::DataStorage::FColumnSorterInterface::CalculatePrefix ( const ICoreProvider Storage,
RowHandle  Row,
uint32  ByteIndex 
) const
pure virtual

The numeric prefix for the column. For numeric values this typically the number itself. For strings it's typically the next 8 characters or 4 wide characters starting at the provided byte index. The utility function can CreateSortPrefix be used to help create a prefix from one or more variables. Note that using a prefix is limited to only one value that has a variable length (e.g. strings) and has to be the last value to be sorted.

Implemented in UE::Editor::DataStorage::TColumnSorterInterface< FColumnSorterInterface::ESortType::FixedSize64, ColumnType >, UE::Editor::DataStorage::TColumnSorterInterface< FColumnSorterInterface::ESortType::FixedSizeOnly, ColumnType >, UE::Editor::DataStorage::TColumnSorterInterface< FColumnSorterInterface::ESortType::ComparativeSort, ColumnType >, and UE::Editor::DataStorage::TColumnSorterInterface< FColumnSorterInterface::ESortType::HybridSort, ColumnType >.

◆ Compare()

virtual int32 UE::Editor::DataStorage::FColumnSorterInterface::Compare ( const ICoreProvider Storage,
RowHandle  Left,
RowHandle  Right 
) const
pure virtual

◆ GetShortName()

virtual FText UE::Editor::DataStorage::FColumnSorterInterface::GetShortName ( ) const
pure virtual

If set, this can be used.

◆ GetSortType()


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