Apparatus Version 1.23
ECS data-oriented workflow for Unreal Engine.
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Attributes | Friends | List of all members
TChunkIt< SubjectHandleT > Struct Template Reference

A generic chunk's iterator base. More...

#include <ChunkIt.h>

Public Types

typedef SubjectHandleT SubjectHandleType
 The type of the subject handle used.
 
typedef SubjectHandleType::SubjectivePtrType SubjectivePtrType
 The compatible type of the subjective used.
 

Public Member Functions

bool IsLocking () const
 Check if the iterator is currently locking its chunk.
 
UChunkGetChunk () const
 Get the chunk of the iterator.
 
const FFilterGetFilter () const
 Get the filter of the iterator.
 
int32 GetSlotIndex () const
 Get the current chunk's slot index.
 
UChunkGetIterationChunk () const
 Get the real working chunk of the current iteration.
 
EApparatusStatus GetSubject (SubjectHandleT &OutSubject) const
 Get the subject from the chunk iterator.
 
SubjectHandleT GetSubject () const
 Get a subject from the chunk iterator.
 
const FFingerprintGetFingerprint () const
 Get the subject fingerprint from the chunk iterator.
 
UObject * GetSubjectiveObject () const
 Get the currently iterated subjective object (if available).
 
SubjectivePtrType GetSubjective () const
 Get a subjective from the chunk iterator (if any).
 
void MoveToEnd ()
 Move the iterator to the end of the chunk.
 
void Reset ()
 Clear the iterator to a null-state.
 
bool IsViable () const
 Check if the iterator is valid and is not at the end of the chunk.
 
 operator bool () const
 Check if the iterator is valid and is not at the end of the chunk.
 
TChunkItoperator= (TChunkIt &&Iterator)
 Move an iterator.
 
TChunkItoperator= (const TChunkIt &Iterator)
 Set the iterator equal to an another one.
 
EApparatusStatus Advance ()
 Move iterator to the next place (if available).
 
 ~TChunkIt ()
 Destroy the chunk iterator.
 
Traits Data Access
template<EParadigm Paradigm = EParadigm::Default, TTraitVoidPtrResultSecurity< Paradigm > = 0>
TTraitVoidPtrResult< Paradigm > GetTraitPtr (UScriptStruct *const TraitType) const
 Get a trait of a certain type from a currently iterated subject.
 
template<EParadigm Paradigm, typename T , TTraitPtrResultSecurity< Paradigm, T > = 0>
TOutcome< Paradigm, TTraitPtrResult< Paradigm, T > > GetTraitPtr () const
 Get a pointer to a trait of a certain type from a currently iterated subject.
 
template<typename T , EParadigm Paradigm = EParadigm::Default, TTraitPtrResultSecurity< Paradigm, T > = 0>
TOutcome< Paradigm, TTraitPtrResult< Paradigm, T > > GetTraitPtr () const
 Get a pointer to a trait of a certain type from a currently iterated subject.
 
template<EParadigm Paradigm, typename T , TTraitRefResultSecurity< Paradigm, T > = 0>
TOutcome< Paradigm, TTraitRefResult< Paradigm, T > > GetTraitRef () const
 Get a trait reference of a certain type from a currently iterated subject.
 
template<typename T , EParadigm Paradigm = EParadigm::Default, TTraitRefResultSecurity< Paradigm, T > = 0>
TOutcome< Paradigm, TTraitRefResult< Paradigm, T > > GetTraitRef () const
 Get a trait reference of a certain type from a currently iterated subject.
 
template<EParadigm Paradigm = EParadigm::Default, typename T >
TOutcome< Paradigm, TTraitAtLine (const int32 TraitLineIndex) const
 Get a trait pointer at a line index from a currently iterated subject.
 
template<EParadigm Paradigm = EParadigm::Default, TTraitVoidPtrResultSecurity< Paradigm > = 0>
TOutcome< Paradigm, TTraitVoidPtrResult< Paradigm > > TraitPtrAtLine (UScriptStruct *TraitType, const int32 TraitLineIndex) const
 Get a trait pointer at a line index from a currently iterated subject.
 
template<EParadigm Paradigm, typename T , TTraitPtrResultSecurity< Paradigm, T > = 0>
TOutcome< Paradigm, TTraitPtrResult< Paradigm, T > > TraitPtrAtLine (const int32 TraitLineIndex) const
 Get a trait pointer at a line index from a currently iterated subject.
 
template<EParadigm Paradigm, typename T , TTraitRefResultSecurity< Paradigm, T > = 0>
TOutcome< Paradigm, TTraitRefResult< Paradigm, T > > TraitRefAtLine (const int32 TraitLineIndex) const
 Get a trait reference at a line index from a currently iterated subject.
 
Traits Getting
template<EParadigm Paradigm = EParadigm::Default>
TOutcome< Paradigm > GetTrait (UScriptStruct *const TraitType, void *const OutTraitData, const bool bTraitDataInitialized=true) const
 Get a trait of a certain type from a currently iterated subject.
 
template<EParadigm Paradigm, typename T >
TOutcome< Paradigm, TGetTrait () const
 Get a copy of a trait of a certain type from a currently iterated subject.
 
template<typename T , EParadigm Paradigm = EParadigm::Default>
auto GetTrait () const
 Get a copy of a trait of a certain type from a currently iterated subject.
 
Details Getting
template<EParadigm Paradigm = EParadigm::Default, TDetailPtrResultSecurity< UDetail > = 0>
TOutcome< Paradigm, TDetailPtrResult< UDetail > > GetDetail (const TSubclassOf< UDetail > DetailClass) const
 Get a detail of a certain class from a currently iterated subject.
 
template<EParadigm Paradigm, class D , TDetailPtrResultSecurity< D > = 0>
TOutcome< Paradigm, TDetailPtrResult< D > > GetDetail () const
 Get a detail of a certain class from a currently iterated subject.
 
template<class D , EParadigm Paradigm = EParadigm::Default, TDetailPtrResultSecurity< D > = 0>
TOutcome< Paradigm, TDetailPtrResult< D > > GetDetail () const
 Get a detail of a certain class from a currently iterated subject.
 
Hinted Traits Getting
int32 HintTrait (UScriptStruct *const TraitType) const
 Get the hinting index of a trait.
 
template<typename T >
constexpr int32 HintTrait () const
 Get the hinting index of a trait.
 
template<EParadigm Paradigm = EParadigm::Default, TTraitVoidPtrResultSecurity< Paradigm > = 0>
TOutcome< Paradigm, TTraitVoidPtrResult< Paradigm > > GetTraitPtrHinted (UScriptStruct *const TraitType, const int32 TraitIndexHint) const
 Get a trait pointer at a hinted index from a currently iterated subject.
 
template<EParadigm Paradigm, typename T , TTraitPtrResultSecurity< Paradigm, T > = 0>
TOutcome< Paradigm, TTraitPtrResult< Paradigm, T > > GetTraitPtrHinted (const int32 TraitIndexHint) const
 Get a trait pointer at a hinted index from a currently iterated subject.
 
template<typename T , EParadigm Paradigm = EParadigm::Default, TTraitPtrResultSecurity< Paradigm, T > = 0>
TOutcome< Paradigm, TTraitPtrResult< Paradigm, T > > GetTraitPtrHinted (const int32 TraitIndexHint) const
 Get a trait pointer at a hinted index from a currently iterated subject.
 
template<EParadigm Paradigm, typename T , TTraitRefResultSecurity< Paradigm, T > = 0>
TOutcome< Paradigm, TTraitRefResult< Paradigm, T > > GetTraitRefHinted (const int32 TraitIndexHint) const
 Get a trait reference at a hinted index from a currently iterated subject.
 
template<typename T , EParadigm Paradigm = EParadigm::Default, TTraitRefResultSecurity< Paradigm, T > = 0>
TOutcome< Paradigm, TTraitRefResult< Paradigm, T > > GetTraitRefHinted (const int32 TraitIndexHint) const
 Get a trait reference at a hinted index from a currently iterated subject.
 
template<EParadigm Paradigm = EParadigm::Default>
TOutcome< Paradigm > GetTraitHinted (UScriptStruct *const TraitType, const int32 TraitIndexHint, void *const OutTraitData, const bool bTraitDataInitialized=true) const
 Get a trait at index from a currently iterated subject.
 
template<EParadigm Paradigm, typename T >
TOutcome< Paradigm, TGetTraitHinted (const int32 TraitIndexHint) const
 Get a copy of a trait at a hinted index from a currently iterated subject.
 
template<typename T , EParadigm Paradigm = EParadigm::Default>
TOutcome< Paradigm, TGetTraitHinted (const int32 TraitIndexHint) const
 Get a copy of a trait at a hinted index from a currently iterated subject.
 
Initialization
 TChunkIt ()
 Initialize an empty chunk iterator.
 
 TChunkIt (TChunkIt &&Iterator)
 Move-initialize a chunk iterator.
 
 TChunkIt (const TChunkIt &Iterator)
 Initialize a chunk iterator as a copy of another iterator.
 

Static Public Attributes

static constexpr bool IsSolid = SubjectHandleType::IsHandleSolid()
 The solidity state of the chunk iterator.
 
static constexpr bool AllowsChanges = SubjectHandleType::AllowsChanges
 Is the subject of a mutable semantics.
 
static constexpr bool AllowsStructuralChanges = SubjectHandleType::AllowsStructuralChanges
 Are structural changes (adding/removing components) allowed?
 
static constexpr bool AllowsDirectTraitAccess = SubjectHandleType::AllowsDirectTraitAccess
 The direct trait data access status.
 
static constexpr auto InvalidSlotIndex = FSubjectInfo::InvalidSlotIndex
 Invalid subject index.
 
static constexpr auto InvalidTraitIndex = UChunk::InvalidTraitLineIndex
 Invalid trait index.
 

Friends

class UChunk
 
template<typename ChunkItT , typename BeltItT , EParadigm Paradigm>
struct TChain
 

Detailed Description

template<typename SubjectHandleT>
struct TChunkIt< SubjectHandleT >

A generic chunk's iterator base.

Can be a solid or an ordinary mutable iterator.

Template Parameters
StructHandleTThe type of the subject handle.

Member Typedef Documentation

◆ SubjectHandleType

template<typename SubjectHandleT >
typedef SubjectHandleT TChunkIt< SubjectHandleT >::SubjectHandleType

The type of the subject handle used.

◆ SubjectivePtrType

template<typename SubjectHandleT >
typedef SubjectHandleType::SubjectivePtrType TChunkIt< SubjectHandleT >::SubjectivePtrType

The compatible type of the subjective used.

Constructor & Destructor Documentation

◆ TChunkIt() [1/3]

template<typename SubjectHandleT >
TChunkIt< SubjectHandleT >::TChunkIt ( )
inline

Initialize an empty chunk iterator.

◆ TChunkIt() [2/3]

template<typename SubjectHandleT >
TChunkIt< SubjectHandleT >::TChunkIt ( TChunkIt< SubjectHandleT > &&  Iterator)
inline

Move-initialize a chunk iterator.

◆ TChunkIt() [3/3]

template<typename SubjectHandleT >
TChunkIt< SubjectHandleT >::TChunkIt ( const TChunkIt< SubjectHandleT > &  Iterator)
inline

Initialize a chunk iterator as a copy of another iterator.

Note
Locks the chunk appropriately, if it's available in the original.

◆ ~TChunkIt()

template<typename SubjectHandleT >
TChunkIt< SubjectHandleT >::~TChunkIt ( )
inline

Destroy the chunk iterator.

Note
Unlocks the chunk, if it has been locked.

Member Function Documentation

◆ Advance()

template<typename SubjectHandleT >
EApparatusStatus TChunkIt< SubjectHandleT >::Advance ( )
inline

Move iterator to the next place (if available).

Returns
The status of the operation.

◆ GetChunk()

template<typename SubjectHandleT >
UChunk * TChunkIt< SubjectHandleT >::GetChunk ( ) const
inline

Get the chunk of the iterator.

When an iterator comes to an end of a chunk it still persists this state value, unless cleared with Reset().

Returns
The chunk of the iterator (if any).

◆ GetDetail() [1/3]

template<typename SubjectHandleT >
template<EParadigm Paradigm, class D , TDetailPtrResultSecurity< D > = 0>
TOutcome< Paradigm, TDetailPtrResult< D > > TChunkIt< SubjectHandleT >::GetDetail ( ) const
inline

Get a detail of a certain class from a currently iterated subject.

Template Parameters
ParadigmThe paradigm to work under.
DThe class of the detail to get.

◆ GetDetail() [2/3]

template<typename SubjectHandleT >
template<class D , EParadigm Paradigm = EParadigm::Default, TDetailPtrResultSecurity< D > = 0>
TOutcome< Paradigm, TDetailPtrResult< D > > TChunkIt< SubjectHandleT >::GetDetail ( ) const
inline

Get a detail of a certain class from a currently iterated subject.

Template Parameters
DThe class of the detail to get.
ParadigmThe paradigm to work under.

◆ GetDetail() [3/3]

template<typename SubjectHandleT >
template<EParadigm Paradigm = EParadigm::Default, TDetailPtrResultSecurity< UDetail > = 0>
TOutcome< Paradigm, TDetailPtrResult< UDetail > > TChunkIt< SubjectHandleT >::GetDetail ( const TSubclassOf< UDetail DetailClass) const
inline

Get a detail of a certain class from a currently iterated subject.

Template Parameters
ParadigmThe paradigm to work under.
Parameters
DetailClassThe class of the detail to get.

◆ GetFilter()

template<typename SubjectHandleT >
const FFilter & TChunkIt< SubjectHandleT >::GetFilter ( ) const
inline

Get the filter of the iterator.

◆ GetFingerprint()

template<typename SubjectHandleT >
const FFingerprint & TChunkIt< SubjectHandleT >::GetFingerprint ( ) const
inline

Get the subject fingerprint from the chunk iterator.

Gets the fingerprint of the subject that is currently pointed by the chunk iterator.

Returns
The fingerprint of the current subject.

◆ GetIterationChunk()

template<typename SubjectHandleT >
UChunk * TChunkIt< SubjectHandleT >::GetIterationChunk ( ) const
inline

Get the real working chunk of the current iteration.

If the current subject is removed from the iterated chunk, its actual present chunk is returned.

If the subject is despawned completely the current chunk is removed for safety.

◆ GetSlotIndex()

template<typename SubjectHandleT >
int32 TChunkIt< SubjectHandleT >::GetSlotIndex ( ) const
inline

Get the current chunk's slot index.

Returns
The current iterated slot index.

◆ GetSubject() [1/2]

template<typename SubjectHandleT >
SubjectHandleT TChunkIt< SubjectHandleT >::GetSubject ( ) const
inline

Get a subject from the chunk iterator.

Get a subject that is currently pointed by the chunk iterator.

Returns
The subject handle of the current iteration.

◆ GetSubject() [2/2]

template<typename SubjectHandleT >
EApparatusStatus TChunkIt< SubjectHandleT >::GetSubject ( SubjectHandleT &  OutSubject) const
inline

Get the subject from the chunk iterator.

Get the active subject that is currently pointed by the chunk iterator.

Parameters
OutSubjectThe subject handle receiver.
Returns
The status of the operation.

◆ GetSubjective()

template<typename SubjectHandleT >
SubjectivePtrType TChunkIt< SubjectHandleT >::GetSubjective ( ) const
inline

Get a subjective from the chunk iterator (if any).

Get a subjective that is currently pointed by the chunk iterator if there is any associated with a subject.

Returns
The subjective of the current iteration. Returns nullptr, if there is none.

◆ GetSubjectiveObject()

template<typename SubjectHandleT >
UObject * TChunkIt< SubjectHandleT >::GetSubjectiveObject ( ) const
inline

Get the currently iterated subjective object (if available).

◆ GetTrait() [1/3]

template<typename SubjectHandleT >
template<EParadigm Paradigm, typename T >
TOutcome< Paradigm, T > TChunkIt< SubjectHandleT >::GetTrait ( ) const
inline

Get a copy of a trait of a certain type from a currently iterated subject.

Template Parameters
ParadigmThe paradigm to work under.
TThe type of the trait to get.
Returns
A copy of the trait.

◆ GetTrait() [2/3]

template<typename SubjectHandleT >
template<typename T , EParadigm Paradigm = EParadigm::Default>
auto TChunkIt< SubjectHandleT >::GetTrait ( ) const
inline

Get a copy of a trait of a certain type from a currently iterated subject.

Template Parameters
TThe type of the trait to get.
ParadigmThe paradigm to work under.
Returns
A copy of the trait.

◆ GetTrait() [3/3]

template<typename SubjectHandleT >
template<EParadigm Paradigm = EParadigm::Default>
TOutcome< Paradigm > TChunkIt< SubjectHandleT >::GetTrait ( UScriptStruct *const  TraitType,
void *const  OutTraitData,
const bool  bTraitDataInitialized = true 
) const
inline

Get a trait of a certain type from a currently iterated subject.

Template Parameters
ParadigmThe paradigm to work under.
Parameters
[in]TraitTypeThe type of the trait to get.
[out]OutTraitDataThe trait data receiver.
[in]bTraitDataInitializedIs the OutTraitData buffer actually initialized?
Returns
The status of the operation.

◆ GetTraitHinted() [1/3]

template<typename SubjectHandleT >
template<EParadigm Paradigm, typename T >
TOutcome< Paradigm, T > TChunkIt< SubjectHandleT >::GetTraitHinted ( const int32  TraitIndexHint) const
inline

Get a copy of a trait at a hinted index from a currently iterated subject.

Gets a trait from a currently iterated subject with its hinted index, relative to the current chunk-locking filter's traitmark.

Template Parameters
ParadigmThe paradigm to work under.
TThe type of trait to get.
Parameters
TraitIndexHintThe index of the trait to hint with. Relative to the current's filter traitmark.
Returns
A copy of the requested trait.

◆ GetTraitHinted() [2/3]

template<typename SubjectHandleT >
template<typename T , EParadigm Paradigm = EParadigm::Default>
TOutcome< Paradigm, T > TChunkIt< SubjectHandleT >::GetTraitHinted ( const int32  TraitIndexHint) const
inline

Get a copy of a trait at a hinted index from a currently iterated subject.

Gets a trait from a currently iterated subject with its hinted index, relative to the current chunk-locking filter's traitmark.

Template Parameters
TThe type of trait to get.
ParadigmThe paradigm to work under.
Parameters
TraitIndexHintThe index of the trait to hint with. Relative to the current's filter traitmark.
Returns
A copy of the requested trait.

◆ GetTraitHinted() [3/3]

template<typename SubjectHandleT >
template<EParadigm Paradigm = EParadigm::Default>
TOutcome< Paradigm > TChunkIt< SubjectHandleT >::GetTraitHinted ( UScriptStruct *const  TraitType,
const int32  TraitIndexHint,
void *const  OutTraitData,
const bool  bTraitDataInitialized = true 
) const
inline

Get a trait at index from a currently iterated subject.

Gets a trait from a currently iterated subject by its index, relative to the current chunk-locking filter's traitmark.

Parameters
TraitTypeThe type of the trait to get.
TraitIndexHintThe hinting index for the trait to get. Relative to the current's filter traitmark.
OutTraitDataThe trait data receiver.
bTraitDataInitializedIs the OutTraitData buffer actually initialized?
Returns
The status of the operation.

◆ GetTraitPtr() [1/3]

template<typename SubjectHandleT >
template<EParadigm Paradigm, typename T , TTraitPtrResultSecurity< Paradigm, T > = 0>
TOutcome< Paradigm, TTraitPtrResult< Paradigm, T > > TChunkIt< SubjectHandleT >::GetTraitPtr ( ) const
inline

Get a pointer to a trait of a certain type from a currently iterated subject.

Templated version.

Template Parameters
ParadigmThe safety paradigm to use.
TThe type of the trait to get.
Returns
A pointer to the trait.

◆ GetTraitPtr() [2/3]

template<typename SubjectHandleT >
template<typename T , EParadigm Paradigm = EParadigm::Default, TTraitPtrResultSecurity< Paradigm, T > = 0>
TOutcome< Paradigm, TTraitPtrResult< Paradigm, T > > TChunkIt< SubjectHandleT >::GetTraitPtr ( ) const
inline

Get a pointer to a trait of a certain type from a currently iterated subject.

Templated version.

Template Parameters
TThe type of the trait to get.
ParadigmThe safety paradigm to use.
Returns
A pointer to the trait.

◆ GetTraitPtr() [3/3]

template<typename SubjectHandleT >
template<EParadigm Paradigm = EParadigm::Default, TTraitVoidPtrResultSecurity< Paradigm > = 0>
TTraitVoidPtrResult< Paradigm > TChunkIt< SubjectHandleT >::GetTraitPtr ( UScriptStruct *const  TraitType) const
inline

Get a trait of a certain type from a currently iterated subject.

Can be used during the solid iterating only.

Template Parameters
ParadigmThe safety paradigm to use.
Parameters
TraitTypeThe type of the trait to get.
Returns
A pointer to the trait data.

◆ GetTraitPtrHinted() [1/3]

template<typename SubjectHandleT >
template<EParadigm Paradigm, typename T , TTraitPtrResultSecurity< Paradigm, T > = 0>
TOutcome< Paradigm, TTraitPtrResult< Paradigm, T > > TChunkIt< SubjectHandleT >::GetTraitPtrHinted ( const int32  TraitIndexHint) const
inline

Get a trait pointer at a hinted index from a currently iterated subject.

Templated version.

Gets a trait from a currently iterated subject by its index, relative to the current chunk's traitmark.

Template Parameters
ParadigmThe access safety paradigm.
TThe type of the trait to get.
Parameters
TraitIndexHintThe index hinting of the trait to get.
Returns
A pointer to the trait data.

◆ GetTraitPtrHinted() [2/3]

template<typename SubjectHandleT >
template<typename T , EParadigm Paradigm = EParadigm::Default, TTraitPtrResultSecurity< Paradigm, T > = 0>
TOutcome< Paradigm, TTraitPtrResult< Paradigm, T > > TChunkIt< SubjectHandleT >::GetTraitPtrHinted ( const int32  TraitIndexHint) const
inline

Get a trait pointer at a hinted index from a currently iterated subject.

Templated version.

Gets a trait from a currently iterated subject by its index, relative to the current chunk's traitmark.

Template Parameters
TThe type of the trait to get.
ParadigmThe access safety paradigm.
Parameters
TraitIndexHintThe index hinting of the trait to get.
Returns
A pointer to the trait data.

◆ GetTraitPtrHinted() [3/3]

template<typename SubjectHandleT >
template<EParadigm Paradigm = EParadigm::Default, TTraitVoidPtrResultSecurity< Paradigm > = 0>
TOutcome< Paradigm, TTraitVoidPtrResult< Paradigm > > TChunkIt< SubjectHandleT >::GetTraitPtrHinted ( UScriptStruct *const  TraitType,
const int32  TraitIndexHint 
) const
inline

Get a trait pointer at a hinted index from a currently iterated subject.

Gets a trait from a currently iterated subject by its index, relative to the current chunk's traitmark.

Template Parameters
ParadigmThe access safety paradigm.
Parameters
TraitTypeThe type of the trait to get.
TraitIndexHintThe index hinting of the trait to get.
Returns
A pointer to the trait data.

◆ GetTraitRef() [1/2]

template<typename SubjectHandleT >
template<EParadigm Paradigm, typename T , TTraitRefResultSecurity< Paradigm, T > = 0>
TOutcome< Paradigm, TTraitRefResult< Paradigm, T > > TChunkIt< SubjectHandleT >::GetTraitRef ( ) const
inline

Get a trait reference of a certain type from a currently iterated subject.

Template Parameters
ParadigmThe access safety paradigm.
TThe type of the trait to get.
Returns
A reference for the trait.

◆ GetTraitRef() [2/2]

template<typename SubjectHandleT >
template<typename T , EParadigm Paradigm = EParadigm::Default, TTraitRefResultSecurity< Paradigm, T > = 0>
TOutcome< Paradigm, TTraitRefResult< Paradigm, T > > TChunkIt< SubjectHandleT >::GetTraitRef ( ) const
inline

Get a trait reference of a certain type from a currently iterated subject.

Template Parameters
TThe type of the trait to get.
ParadigmThe access safety paradigm.
Returns
A reference for the trait.

◆ GetTraitRefHinted() [1/2]

template<typename SubjectHandleT >
template<EParadigm Paradigm, typename T , TTraitRefResultSecurity< Paradigm, T > = 0>
TOutcome< Paradigm, TTraitRefResult< Paradigm, T > > TChunkIt< SubjectHandleT >::GetTraitRefHinted ( const int32  TraitIndexHint) const
inline

Get a trait reference at a hinted index from a currently iterated subject.

Gets a trait from a currently iterated subject by its index, relative to the current chunk's traitmark.

Template Parameters
ParadigmThe access safety paradigm.
TThe type of trait to get. Must be a USTRUCT-type.
Parameters
TraitIndexHintThe index hint of the trait to get.
Returns
A reference to the trait data.

◆ GetTraitRefHinted() [2/2]

template<typename SubjectHandleT >
template<typename T , EParadigm Paradigm = EParadigm::Default, TTraitRefResultSecurity< Paradigm, T > = 0>
TOutcome< Paradigm, TTraitRefResult< Paradigm, T > > TChunkIt< SubjectHandleT >::GetTraitRefHinted ( const int32  TraitIndexHint) const
inline

Get a trait reference at a hinted index from a currently iterated subject.

Gets a trait from a currently iterated subject by its index, relative to the current chunk's traitmark.

Template Parameters
TThe type of trait to get. Must be a USTRUCT-type.
ParadigmThe access safety paradigm.
Parameters
TraitIndexHintThe index hint of the trait to get.
Returns
A reference to the trait data.

◆ HintTrait() [1/2]

template<typename SubjectHandleT >
template<typename T >
constexpr int32 TChunkIt< SubjectHandleT >::HintTrait ( ) const
inlineconstexpr

Get the hinting index of a trait.

Templated version.

Note
May actually be safely used on non-trait types and will return INDEX_NONE in that case.
Template Parameters
TThe trait type to query for.
Returns
The hinting index of the trait.

◆ HintTrait() [2/2]

template<typename SubjectHandleT >
int32 TChunkIt< SubjectHandleT >::HintTrait ( UScriptStruct *const  TraitType) const
inline

Get the hinting index of a trait.

Parameters
TraitTypeThe trait type to query for.
Returns
The hinting index of the trait.

◆ IsLocking()

template<typename SubjectHandleT >
bool TChunkIt< SubjectHandleT >::IsLocking ( ) const
inline

Check if the iterator is currently locking its chunk.

◆ IsViable()

template<typename SubjectHandleT >
bool TChunkIt< SubjectHandleT >::IsViable ( ) const
inline

Check if the iterator is valid and is not at the end of the chunk.

Returns
The state of examination.

◆ MoveToEnd()

template<typename SubjectHandleT >
void TChunkIt< SubjectHandleT >::MoveToEnd ( )
inline

Move the iterator to the end of the chunk.

This basically unlocks the locked chunk.

◆ operator bool()

template<typename SubjectHandleT >
TChunkIt< SubjectHandleT >::operator bool ( ) const
inline

Check if the iterator is valid and is not at the end of the chunk.

Returns
The state of examination.

◆ operator=() [1/2]

template<typename SubjectHandleT >
TChunkIt & TChunkIt< SubjectHandleT >::operator= ( const TChunkIt< SubjectHandleT > &  Iterator)
inline

Set the iterator equal to an another one.

◆ operator=() [2/2]

template<typename SubjectHandleT >
TChunkIt & TChunkIt< SubjectHandleT >::operator= ( TChunkIt< SubjectHandleT > &&  Iterator)
inline

Move an iterator.

◆ Reset()

template<typename SubjectHandleT >
void TChunkIt< SubjectHandleT >::Reset ( )
inline

Clear the iterator to a null-state.

◆ TraitAtLine()

template<typename SubjectHandleT >
template<EParadigm Paradigm = EParadigm::Default, typename T >
TOutcome< Paradigm, T > TChunkIt< SubjectHandleT >::TraitAtLine ( const int32  TraitLineIndex) const
inline

Get a trait pointer at a line index from a currently iterated subject.

Gets a trait from a currently iterated subject by its index, relative to the current chunk's traitmark.

Template Parameters
ParadigmThe access safety paradigm.
Tthe typ of the trait to get.
Parameters
TraitLineIndexThe index of the trait line.
Returns
A pointer to the trait data.

◆ TraitPtrAtLine() [1/2]

template<typename SubjectHandleT >
template<EParadigm Paradigm, typename T , TTraitPtrResultSecurity< Paradigm, T > = 0>
TOutcome< Paradigm, TTraitPtrResult< Paradigm, T > > TChunkIt< SubjectHandleT >::TraitPtrAtLine ( const int32  TraitLineIndex) const
inline

Get a trait pointer at a line index from a currently iterated subject.

Templated version.

Gets a trait from a currently iterated subject by its index, relative to the current chunk's traitmark.

Template Parameters
ParadigmThe access safety paradigm.
TThe type of the trait to get.
Parameters
TraitLineIndexThe index of the trait line to get from.
Returns
A pointer to the trait data.

◆ TraitPtrAtLine() [2/2]

template<typename SubjectHandleT >
template<EParadigm Paradigm = EParadigm::Default, TTraitVoidPtrResultSecurity< Paradigm > = 0>
TOutcome< Paradigm, TTraitVoidPtrResult< Paradigm > > TChunkIt< SubjectHandleT >::TraitPtrAtLine ( UScriptStruct *  TraitType,
const int32  TraitLineIndex 
) const
inline

Get a trait pointer at a line index from a currently iterated subject.

Gets a trait from a currently iterated subject by its index, relative to the current chunk's traitmark.

Template Parameters
ParadigmThe access safety paradigm.
Parameters
TraitTypeThe type of the trait to get.
TraitLineIndexThe index of the trait line.
Returns
A pointer to the trait data.

◆ TraitRefAtLine()

template<typename SubjectHandleT >
template<EParadigm Paradigm, typename T , TTraitRefResultSecurity< Paradigm, T > = 0>
TOutcome< Paradigm, TTraitRefResult< Paradigm, T > > TChunkIt< SubjectHandleT >::TraitRefAtLine ( const int32  TraitLineIndex) const
inline

Get a trait reference at a line index from a currently iterated subject.

Templated version.

Gets a trait from a currently iterated subject by its index, relative to the current chunk's traitmark.

Template Parameters
ParadigmThe access safety paradigm.
TThe type of the trait to get.
Parameters
TraitLineIndexThe index of the trait line to get from.
Returns
A pointer to the trait data.

Friends And Related Function Documentation

◆ TChain

template<typename SubjectHandleT >
template<typename ChunkItT , typename BeltItT , EParadigm Paradigm>
friend struct TChain
friend

◆ UChunk

template<typename SubjectHandleT >
friend class UChunk
friend

Member Data Documentation

◆ AllowsChanges

template<typename SubjectHandleT >
constexpr bool TChunkIt< SubjectHandleT >::AllowsChanges = SubjectHandleType::AllowsChanges
staticconstexpr

Is the subject of a mutable semantics.

◆ AllowsDirectTraitAccess

template<typename SubjectHandleT >
constexpr bool TChunkIt< SubjectHandleT >::AllowsDirectTraitAccess = SubjectHandleType::AllowsDirectTraitAccess
staticconstexpr

The direct trait data access status.

◆ AllowsStructuralChanges

template<typename SubjectHandleT >
constexpr bool TChunkIt< SubjectHandleT >::AllowsStructuralChanges = SubjectHandleType::AllowsStructuralChanges
staticconstexpr

Are structural changes (adding/removing components) allowed?

◆ InvalidSlotIndex

template<typename SubjectHandleT >
constexpr auto TChunkIt< SubjectHandleT >::InvalidSlotIndex = FSubjectInfo::InvalidSlotIndex
staticconstexpr

Invalid subject index.

◆ InvalidTraitIndex

template<typename SubjectHandleT >
constexpr auto TChunkIt< SubjectHandleT >::InvalidTraitIndex = UChunk::InvalidTraitLineIndex
staticconstexpr

Invalid trait index.

◆ IsSolid

template<typename SubjectHandleT >
constexpr bool TChunkIt< SubjectHandleT >::IsSolid = SubjectHandleType::IsHandleSolid()
staticconstexpr

The solidity state of the chunk iterator.


The documentation for this struct was generated from the following files: