Ark Server API (ASA) - Wiki
Loading...
Searching...
No Matches
ContainerAllocationPolicies.h File Reference
+ Include dependency graph for ContainerAllocationPolicies.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  FScriptContainerElement
 
struct  TAllocatorTraitsBase< AllocatorType >
 
struct  TAllocatorTraits< AllocatorType >
 
struct  TCanMoveBetweenAllocators< FromAllocatorType, ToAllocatorType >
 
class  FContainerAllocatorInterface
 
class  FContainerAllocatorInterface::ForElementType< ElementType >
 
class  TAlignedHeapAllocator< Alignment >
 
class  TAlignedHeapAllocator< Alignment >::ForAnyElementType
 
class  TAlignedHeapAllocator< Alignment >::ForElementType< ElementType >
 
struct  TAllocatorTraits< TAlignedHeapAllocator< Alignment > >
 
struct  TBitsToSizeType< IndexSize >
 
struct  TBitsToSizeType< 8 >
 
struct  TBitsToSizeType< 16 >
 
struct  TBitsToSizeType< 32 >
 
struct  TBitsToSizeType< 64 >
 
class  TSizedHeapAllocator< IndexSize, BaseMallocType >
 
class  TSizedHeapAllocator< IndexSize, BaseMallocType >::ForAnyElementType
 
class  TSizedHeapAllocator< IndexSize, BaseMallocType >::ForElementType< ElementType >
 
struct  TAllocatorTraits< TSizedHeapAllocator< IndexSize > >
 
struct  TCanMoveBetweenAllocators< TSizedHeapAllocator< FromIndexSize >, TSizedHeapAllocator< ToIndexSize > >
 
class  TSizedInlineAllocator< NumInlineElements, IndexSize, SecondaryAllocator >
 
class  TSizedInlineAllocator< NumInlineElements, IndexSize, SecondaryAllocator >::ForElementType< ElementType >
 
class  TNonRelocatableInlineAllocator< NumInlineElements >
 
class  TNonRelocatableInlineAllocator< NumInlineElements >::ForElementType< ElementType >
 
class  TFixedAllocator< NumInlineElements >
 
class  TFixedAllocator< NumInlineElements >::ForElementType< ElementType >
 
class  TSparseArrayAllocator< InElementAllocator, InBitArrayAllocator >
 
class  TAlignedSparseArrayAllocator< Alignment, InElementAllocator, InBitArrayAllocator >
 
class  TInlineSparseArrayAllocator< NumInlineElements, SecondaryAllocator >
 
class  TFixedSparseArrayAllocator< NumInlineElements >
 
class  TSetAllocator< InSparseArrayAllocator, InHashAllocator, AverageNumberOfElementsPerHashBucket, BaseNumberOfHashBuckets, MinNumberOfHashedElements >
 
struct  TAllocatorTraits< TSetAllocator< InSparseArrayAllocator, InHashAllocator, AverageNumberOfElementsPerHashBucket, BaseNumberOfHashBuckets, MinNumberOfHashedElements > >
 
class  TInlineSetAllocator< NumInlineElements, SecondaryAllocator, AverageNumberOfElementsPerHashBucket, MinNumberOfHashedElements >
 
class  TFixedSetAllocator< NumInlineElements, AverageNumberOfElementsPerHashBucket, MinNumberOfHashedElements >
 
class  TSizedDefaultAllocator< IndexSize >
 
class  FDefaultSetAllocator
 
class  FDefaultBitArrayAllocator
 
class  FDefaultSparseArrayAllocator
 
struct  TAllocatorTraits< TSizedDefaultAllocator< IndexSize > >
 
struct  TAllocatorTraits< FDefaultAllocator >
 
struct  TAllocatorTraits< FDefaultSetAllocator >
 
struct  TAllocatorTraits< FDefaultBitArrayAllocator >
 
struct  TAllocatorTraits< FDefaultSparseArrayAllocator >
 
struct  TAllocatorTraits< TSparseArrayAllocator< InElementAllocator, InBitArrayAllocator > >
 
struct  TCanMoveBetweenAllocators< TSizedDefaultAllocator< FromIndexSize >, TSizedDefaultAllocator< ToIndexSize > >
 

Macros

#define CONTAINER_INITIAL_ALLOC_ZERO_SLACK   1
 
#define NumBitsPerDWORD   ((int32)32)
 
#define NumBitsPerDWORDLogTwo   ((int32)5)
 
#define DEFAULT_NUMBER_OF_ELEMENTS_PER_HASH_BUCKET   2
 
#define DEFAULT_BASE_NUMBER_OF_HASH_BUCKETS   8
 
#define DEFAULT_MIN_NUMBER_OF_HASHED_ELEMENTS   4
 

Typedefs

using FDefaultAllocator = TSizedDefaultAllocator<32>
 
using FHeapAllocator = TSizedHeapAllocator<32>
 
template<uint32 NumInlineElements, typename SecondaryAllocator = FDefaultAllocator>
using TInlineAllocator = TSizedInlineAllocator<NumInlineElements, 32, SecondaryAllocator>
 
template<uint32 NumInlineElements, typename SecondaryAllocator = FDefaultAllocator64>
using TInlineAllocator64 = TSizedInlineAllocator<NumInlineElements, 64, SecondaryAllocator>
 

Functions

template<typename ReferencedType >
ReferencedType * IfAThenAElseB (ReferencedType *A, ReferencedType *B)
 
template<typename PredicateType , typename ReferencedType >
ReferencedType * IfPThenAElseB (PredicateType Predicate, ReferencedType *A, ReferencedType *B)
 
template<typename SizeType >
FORCEINLINE SizeType DefaultCalculateSlackShrink (SizeType NumElements, SizeType NumAllocatedElements, SIZE_T BytesPerElement, bool bAllowQuantize, uint32 Alignment=DEFAULT_ALIGNMENT)
 
template<typename SizeType >
FORCEINLINE SizeType DefaultCalculateSlackGrow (SizeType NumElements, SizeType NumAllocatedElements, SIZE_T BytesPerElement, bool bAllowQuantize, uint32 Alignment=DEFAULT_ALIGNMENT)
 
template<typename SizeType >
FORCEINLINE SizeType DefaultCalculateSlackReserve (SizeType NumElements, SIZE_T BytesPerElement, bool bAllowQuantize, uint32 Alignment=DEFAULT_ALIGNMENT)
 

Macro Definition Documentation

◆ CONTAINER_INITIAL_ALLOC_ZERO_SLACK

#define CONTAINER_INITIAL_ALLOC_ZERO_SLACK   1

Definition at line 18 of file ContainerAllocationPolicies.h.

◆ DEFAULT_BASE_NUMBER_OF_HASH_BUCKETS

#define DEFAULT_BASE_NUMBER_OF_HASH_BUCKETS   8

Definition at line 1104 of file ContainerAllocationPolicies.h.

◆ DEFAULT_MIN_NUMBER_OF_HASHED_ELEMENTS

#define DEFAULT_MIN_NUMBER_OF_HASHED_ELEMENTS   4

Definition at line 1105 of file ContainerAllocationPolicies.h.

◆ DEFAULT_NUMBER_OF_ELEMENTS_PER_HASH_BUCKET

#define DEFAULT_NUMBER_OF_ELEMENTS_PER_HASH_BUCKET   2

Definition at line 1102 of file ContainerAllocationPolicies.h.

◆ NumBitsPerDWORD

#define NumBitsPerDWORD   ((int32)32)

Definition at line 1037 of file ContainerAllocationPolicies.h.

◆ NumBitsPerDWORDLogTwo

#define NumBitsPerDWORDLogTwo   ((int32)5)

Definition at line 1038 of file ContainerAllocationPolicies.h.

Typedef Documentation

◆ FDefaultAllocator

◆ FHeapAllocator

Definition at line 625 of file ContainerAllocationPolicies.h.

◆ TInlineAllocator

template<uint32 NumInlineElements, typename SecondaryAllocator = FDefaultAllocator>
using TInlineAllocator = TSizedInlineAllocator<NumInlineElements, 32, SecondaryAllocator>

Definition at line 783 of file ContainerAllocationPolicies.h.

◆ TInlineAllocator64

template<uint32 NumInlineElements, typename SecondaryAllocator = FDefaultAllocator64>
using TInlineAllocator64 = TSizedInlineAllocator<NumInlineElements, 64, SecondaryAllocator>

Definition at line 786 of file ContainerAllocationPolicies.h.

Function Documentation

◆ DefaultCalculateSlackGrow()

template<typename SizeType >
FORCEINLINE SizeType DefaultCalculateSlackGrow ( SizeType NumElements,
SizeType NumAllocatedElements,
SIZE_T BytesPerElement,
bool bAllowQuantize,
uint32 Alignment = DEFAULT_ALIGNMENT )

Definition at line 69 of file ContainerAllocationPolicies.h.

◆ DefaultCalculateSlackReserve()

template<typename SizeType >
FORCEINLINE SizeType DefaultCalculateSlackReserve ( SizeType NumElements,
SIZE_T BytesPerElement,
bool bAllowQuantize,
uint32 Alignment = DEFAULT_ALIGNMENT )

Definition at line 122 of file ContainerAllocationPolicies.h.

◆ DefaultCalculateSlackShrink()

template<typename SizeType >
FORCEINLINE SizeType DefaultCalculateSlackShrink ( SizeType NumElements,
SizeType NumAllocatedElements,
SIZE_T BytesPerElement,
bool bAllowQuantize,
uint32 Alignment = DEFAULT_ALIGNMENT )

Definition at line 39 of file ContainerAllocationPolicies.h.

◆ IfAThenAElseB()

template<typename ReferencedType >
ReferencedType * IfAThenAElseB ( ReferencedType * A,
ReferencedType * B )

branchless pointer selection return A ? A : B;

Chooses between the two parameters based on whether the first is nullptr or not.

Returns
If the first parameter provided is non-nullptr, it is returned; otherwise the second parameter is returned.

Definition at line 28 of file UnrealTemplate.h.

◆ IfPThenAElseB()

template<typename PredicateType , typename ReferencedType >
ReferencedType * IfPThenAElseB ( PredicateType Predicate,
ReferencedType * A,
ReferencedType * B )

branchless pointer selection based on predicate return PTRINT(Predicate) ? A : B;

Definition at line 37 of file UnrealTemplate.h.