| 
    Apparatus
   Version 1.23
    
   ECS data-oriented workflow for Unreal Engine. 
   | 
 
A group of iterable locked together in a sequence. More...
#include <Chain.h>


Classes | |
| struct | TCursor | 
| A state of the chain iterating.  More... | |
Public Types | |
| using | Super = FCommonChain | 
| typedef ChunkItT | ChunkItType | 
| typedef BeltItT | BeltItType | 
| typedef ChunkItT::SubjectHandleType | SubjectHandleType | 
| The subject handle argument type.   | |
| typedef std::conditional< std::templateis_same< SubjectHandleType, FSolidSubjectHandle >::value, FSubjectHandle, void >::type | IncompatibleSubjectHandleType | 
| A subject handle type, specifically incompatible with the current one used.   | |
| typedef ChunkItT::SubjectivePtrType | SubjectivePtrType | 
| The subjective argument type, including the possible 'const' specification.   | |
| template<EParadigm Paradigm> | |
| using | TTraitVoidPtrResultSecurity = typename ChunkItT::template TTraitVoidPtrResultSecurity< Paradigm > | 
| Protect the type of a trait void pointer returned by the methods.   | |
| template<EParadigm Paradigm> | |
| using | TTraitVoidPtrResult = typename ChunkItT::template TTraitVoidPtrResult< Paradigm > | 
| The type of a trait void pointer returned by the methods.   | |
| template<EParadigm Paradigm, typename T > | |
| using | TTraitPtrResultSecurity = typename ChunkItT::template TTraitPtrResultSecurity< Paradigm, T > | 
| Protect the type of a trait pointer returned by the methods.   | |
| template<EParadigm Paradigm, typename T > | |
| using | TTraitPtrResult = typename ChunkItT::template TTraitPtrResult< Paradigm, T > | 
| The type of a trait pointer returned by the methods.   | |
| template<EParadigm Paradigm, typename T > | |
| using | TTraitRefResultSecurity = typename ChunkItT::template TTraitRefResultSecurity< Paradigm, T > | 
| Protect the type of a trait reference returned by the methods.   | |
| template<EParadigm Paradigm, typename T > | |
| using | TTraitRefResult = typename ChunkItT::template TTraitRefResult< Paradigm, T > | 
| The type of a trait reference returned by the methods.   | |
| template<class D > | |
| using | TDetailPtrResultSecurity = typename ChunkItT::template TDetailPtrResultSecurity< D > | 
| The class of a detail pointer returned by the methods.   | |
| template<class D > | |
| using | TDetailPtrResult = typename ChunkItT::template TDetailPtrResult< D > | 
| The class of a detail pointer returned by the methods.   | |
| using | FCursor = TCursor<> | 
| Non-templated cursor version.   | |
  Public Types inherited from FCommonChain | |
| enum | {  InvalidId = -1 , InvalidSlotIndex = -1 , FirstId = 0 , InvalidCursorId = -1 , DefaultCursorId = 0 , InvalidSegmentIndex = -1 }  | 
Public Member Functions | |
| int32 | GetId () const | 
| A unique identifier of an embedded chain.   | |
| EApparatusStatus | Reset (bool bWaitForOperatings=true) override | 
| Reset the chain completely.   | |
| template<typename FilterT , typename IterableT , typename AllocatorT , EParadigm Paradigm = DefaultParadigm, TFilterTypeSecurity< std::decay_t< FilterT > > = true> | |
| TOutcome< Paradigm > | Enchain (FilterT &&InFilter, const TArray< IterableT *, AllocatorT > &InIterables) | 
| Set to chain a set of iterables with a filter.   | |
| int32 | FindSegment (const int32 InSlotIndex, int32 &OutLocalIndex, const int32 SegmentOffset=0) const | 
| Find a certain chain segment by a chain's slot index.   | |
| template<typename... Ps> | |
| TCursor< Ps... > | Iterate (const int32 Offset=0, const int32 Limit=TNumericLimits< int32 >::Max()) const | 
| Prepare the chain for iterating returning the cursor.   | |
| bool | Begin (const int32 CursorId=DefaultCursorId, const int32 Offset=0, const int32 Limit=TNumericLimits< int32 >::Max()) const | 
| Begin iterating the chain using an embedded cursor.   | |
| bool | Advance (const int32 CursorId=DefaultCursorId) const | 
| Advance iterating the chain to the next iteration using the embedded cursor.   | |
| bool | BeginOrAdvance (const int32 CursorId=DefaultCursorId, const int32 Offset=0, const int32 Limit=TNumericLimits< int32 >::Max()) const | 
| Begin or advance iterating the chain.   | |
Operating  | |
| template<EParadigm Paradigm = DefaultParadigm, typename MechanicT = void, typename std::enable_if<!std::is_function< MechanicT >::value, bool >::type = true> | |
| auto | Operate (const MechanicT &InMechanic) const | 
| Process the chain using a functor mechanic.   | |
| template<EParadigm Paradigm = DefaultParadigm, typename MechanicT = void, typename std::enable_if<!std::is_function< MechanicT >::value, bool >::type = true> | |
| auto | Operate (MechanicT &InMechanic) const | 
| Process the chain using a functor mechanic.   | |
| template<EParadigm Paradigm = DefaultParadigm, typename FunctionT = void, typename std::enable_if< std::is_function< FunctionT >::value, bool >::type = true> | |
| auto | Operate (FunctionT *const InMechanic) const | 
| Process the chain using a free function.   | |
| template<EParadigm Paradigm = DefaultParadigm, typename FunctorT = void, typename std::enable_if<(IsSolid||IsUnsafe(Paradigm)) &&!std::is_void< FunctorT >::value &&!std::is_function< std::decay_t< FunctorT > >::value, bool >::type = true> | |
| auto | OperateConcurrently (const FunctorT &InMechanic, const int32 ThreadsCountMax, const int32 SlotsPerThreadMin=1, const bool bSync=true) const | 
| Process the chain using a functor mechanic in a parallel manner.   | |
| template<EParadigm Paradigm = DefaultParadigm, typename FunctorT = void, typename std::enable_if<(IsSolid||IsUnsafe(Paradigm)) &&!std::is_void< FunctorT >::value &&!std::is_function< std::decay_t< FunctorT > >::value, bool >::type = true> | |
| auto | OperateConcurrently (FunctorT &InMechanic, const int32 ThreadsCountMax, const int32 SlotsPerThreadMin=1, const bool bSync=true) const | 
| Process the chain using a functor mechanic in a parallel manner.   | |
| template<EParadigm Paradigm = DefaultParadigm, typename FunctionT = void, more::enable_if_t<(IsSolid||IsUnsafe(Paradigm)) &&std::is_function< FunctionT >::value, bool > = true> | |
| auto | OperateConcurrently (FunctionT *const InMechanic, const int32 ThreadsCountMax, const int32 SlotsPerThreadMin=1, const bool bSync=true) const | 
| Process the chain using a function mechanic in a parallel manner.   | |
| template<typename FunctorT , EParadigm Paradigm = DefaultParadigm> | |
| auto | Operate () const | 
| Process the chain using a functor mechanic.   | |
| template<EParadigm Paradigm, typename FunctorT > | |
| auto | Operate () const | 
| Process the chain using a functor mechanic.   | |
| template<typename FunctorT , EParadigm Paradigm = DefaultParadigm, more::enable_if_t<(IsSolid||IsUnsafe(Paradigm)) &&!std::is_void< FunctorT >::value, bool > = true> | |
| auto | OperateConcurrently (const int32 ThreadsCountMax, const int32 SlotsPerThreadMin=1, const bool bSync=true) const | 
| Process the chain using a functor mechanic in a parallel manner.   | |
| template<EParadigm Paradigm, typename FunctorT , more::enable_if_t<(IsSolid||IsUnsafe(Paradigm)) &&!std::is_void< FunctorT >::value, bool > = true> | |
| auto | OperateConcurrently (const int32 ThreadsCountMax, const int32 SlotsPerThreadMin=1, const bool bSync=true) const | 
| Process the chain using a functor mechanic in a parallel manner.   | |
Iteration State  | |
| SubjectHandleType | GetSubject (const int32 CursorId=DefaultCursorId) const | 
| Get the subject of the current iteration.   | |
| SubjectivePtrType | GetSubjective (const int32 CursorId=DefaultCursorId) const | 
| Get the subjective of the current iteration (if any).   | |
Traits Getting  | |
| EApparatusStatus | GetTrait (const int32 CursorId, UScriptStruct *const TraitType, void *const OutTraitData, const bool bTraitDataInitialized=true) const | 
| Get a trait of a certain type on the current iteration.   | |
| EApparatusStatus | GetTrait (UScriptStruct *const TraitType, void *const OutTraitData, const bool bTraitDataInitialized=true) const | 
| Get the trait on the current iteration.   | |
| template<typename T > | |
| EApparatusStatus | GetTrait (const int32 CursorId, T &OutTraitData, const bool bTraitDataInitialized=true) const | 
| Get a trait on the current iteration.   | |
| template<typename T > | |
| EApparatusStatus | GetTrait (T &OutTraitData, const bool bTraitDataInitialized=true) const | 
| Get the trait on the current iteration.   | |
| template<typename T > | |
| T | GetTrait (const int32 CursorId=DefaultCursorId) const | 
| Get a trait copy on the current iteration.   | |
| template<EParadigm Paradigm = DefaultParadigm> | |
| TOutcome< Paradigm > | GetTraitHinted (const int32 CursorId, UScriptStruct *TraitType, const int32 TraitIndexHint, void *const OutTraitData, const bool bTraitDataInitialized=true) const | 
| Get the trait on the current iteration at a specified index hinted.   | |
| template<EParadigm Paradigm = DefaultParadigm> | |
| TOutcome< Paradigm > | GetTraitHinted (UScriptStruct *TraitType, const int32 TraitIndexHint, void *const OutTraitData, const bool bTraitDataInitialized=true) const | 
| Get the trait on the current iteration at a specified index hinted.   | |
| template<EParadigm Paradigm, typename T > | |
| TOutcome< Paradigm > | GetTraitHinted (const int32 CursorId, const int32 TraitIndexHint, T &OutTraitData, const bool bTraitDataInitialized=true) const | 
| Get the trait on the current iteration at a specified index hinted.   | |
| template<typename T , EParadigm Paradigm = DefaultParadigm> | |
| auto | GetTraitHinted (const int32 CursorId, const int32 TraitIndexHint, T &OutTraitData, const bool bTraitDataInitialized=true) const | 
| Get the trait on the current iteration at a specified index hinted.   | |
| template<EParadigm Paradigm, typename T > | |
| auto | GetTraitHinted (const int32 TraitIndexHint, T &OutTraitData, const bool bTraitDataInitialized=true) const | 
| Get the trait on the current iteration at a specified index hinted.   | |
| template<typename T , EParadigm Paradigm = DefaultParadigm> | |
| auto | GetTraitHinted (const int32 TraitIndexHint, T &OutTraitData, const bool bTraitDataInitialized=true) const | 
| Get the trait on the current iteration at a specified index hinted.   | |
| template<EParadigm Paradigm, typename T > | |
| TOutcome< Paradigm, T > | GetTraitHinted (const int32 CursorId, const int32 TraitIndexHint) const | 
| Get a copy of a trait on the current iteration at a specified index hinted.   | |
| template<typename T , EParadigm Paradigm = DefaultParadigm> | |
| auto | GetTraitHinted (const int32 CursorId, const int32 TraitIndexHint) const | 
| Get a copy of a trait on the current iteration at a specified index hinted.   | |
| template<EParadigm Paradigm, typename T > | |
| TOutcome< Paradigm, T > | GetTraitHinted (const int32 TraitIndexHint) const | 
| Get a copy of a trait on the current iteration at a specified index hinted.   | |
| template<typename T , EParadigm Paradigm = DefaultParadigm> | |
| TOutcome< Paradigm, T > | GetTraitHinted (const int32 TraitIndexHint) const | 
| Get a copy of a trait on the current iteration at a specified index hinted.   | |
Traits Data Access  | |
| template<EParadigm Paradigm = DefaultParadigm> | |
| TOutcome< Paradigm, TTraitVoidPtrResult< Paradigm > > | GetTraitPtr (const int32 CursorId, UScriptStruct *const TraitType) const | 
| Get a pointer to a trait of a certain type on the current iteration.   | |
| template<EParadigm Paradigm, typename T , TTraitPtrResultSecurity< Paradigm, T > = 0> | |
| TOutcome< Paradigm, TTraitPtrResult< Paradigm, T > > | GetTraitPtr (const int32 CursorId=DefaultCursorId) const | 
| Get a pointer to a trait of a certain type on the current iteration.   | |
| template<typename T , EParadigm Paradigm = DefaultParadigm, TTraitPtrResultSecurity< Paradigm, T > = 0> | |
| TOutcome< Paradigm, TTraitPtrResult< Paradigm, T > > | GetTraitPtr (const int32 CursorId=DefaultCursorId) const | 
| Get a pointer to a trait of a certain type on the current iteration.   | |
| template<EParadigm Paradigm, typename T , TTraitRefResultSecurity< Paradigm, T > = 0> | |
| TOutcome< Paradigm, TTraitRefResult< Paradigm, T > > | GetTraitRef (const int32 CursorId=DefaultCursorId) const | 
| Get a trait reference on the current iteration.   | |
| template<typename T , EParadigm Paradigm = DefaultParadigm, TTraitRefResultSecurity< Paradigm, T > = 0> | |
| TOutcome< Paradigm, TTraitRefResult< Paradigm, T > > | GetTraitRef (const int32 CursorId=DefaultCursorId) const | 
| Get a trait reference on the current iteration.   | |
| template<EParadigm Paradigm = DefaultParadigm> | |
| TTraitVoidPtrResult< Paradigm > | GetTraitPtr (UScriptStruct *const TraitType) const | 
| Get a trait pointer of a specific type on the current iteration.   | |
| template<EParadigm Paradigm = DefaultParadigm> | |
| TOutcome< Paradigm, TTraitVoidPtrResult< Paradigm > > | GetTraitPtrHinted (const int32 CursorId, UScriptStruct *const TraitType, const int32 TraitIndexHint) const | 
| Get a pointer to the trait on the current iteration at a specified index hinted.   | |
| template<EParadigm Paradigm = DefaultParadigm> | |
| TOutcome< Paradigm, TTraitVoidPtrResult< Paradigm > > | GetTraitPtrHinted (UScriptStruct *const TraitType, const int32 TraitIndexHint) const | 
| Get a pointer to the trait on the current iteration at a specified index hinted.   | |
| template<EParadigm Paradigm, typename T > | |
| TOutcome< Paradigm, TTraitPtrResult< Paradigm, T > > | GetTraitPtrHinted (const int32 CursorId, const int32 TraitIndexHint) const | 
| Get a pointer to the trait on the current iteration at a specified index hinted.   | |
| template<typename T , EParadigm Paradigm = DefaultParadigm> | |
| TOutcome< Paradigm, TTraitPtrResult< Paradigm, T > > | GetTraitPtrHinted (const int32 CursorId, const int32 TraitIndexHint) const | 
| Get a pointer to the trait on the current iteration at a specified index hinted.   | |
| template<EParadigm Paradigm, typename T > | |
| TOutcome< Paradigm, TTraitPtrResult< Paradigm, T > > | GetTraitPtrHinted (const int32 TraitIndexHint) const | 
| Get a pointer to the trait on the current iteration at a specified index hinted.   | |
| template<typename T , EParadigm Paradigm = DefaultParadigm> | |
| TOutcome< Paradigm, TTraitPtrResult< Paradigm, T > > | GetTraitPtrHinted (const int32 TraitIndexHint) const | 
| Get a pointer to the trait on the current iteration at a specified index hinted.   | |
| template<EParadigm Paradigm, typename T , TTraitPtrResultSecurity< Paradigm, T > = 0> | |
| TOutcome< Paradigm, TTraitRefResult< Paradigm, T > > | GetTraitRefHinted (const int32 CursorId, const int32 TraitIndexHint) const | 
| Get a reference for the trait on the current iteration at a specified index hinted.   | |
| template<typename T , EParadigm Paradigm = DefaultParadigm, TTraitPtrResultSecurity< Paradigm, T > = 0> | |
| TOutcome< Paradigm, TTraitRefResult< Paradigm, T > > | GetTraitRefHinted (const int32 CursorId, const int32 TraitIndexHint) const | 
| Get a reference for the trait on the current iteration at a specified index hinted.   | |
| template<EParadigm Paradigm, typename T , TTraitPtrResultSecurity< Paradigm, T > = 0> | |
| TOutcome< Paradigm, TTraitRefResult< Paradigm, T > > | GetTraitRefHinted (const int32 TraitIndexHint) const | 
| Get a reference for the trait on the current iteration at a specified index hinted.   | |
| template<typename T , EParadigm Paradigm = DefaultParadigm, TTraitPtrResultSecurity< Paradigm, T > = 0> | |
| TOutcome< Paradigm, TTraitRefResult< Paradigm, T > > | GetTraitRefHinted (const int32 TraitIndexHint) const | 
| Get a reference for the trait on the current iteration at a specified index hinted.   | |
Details Getting  | |
| template<EParadigm Paradigm = DefaultParadigm> | |
| TOutcome< Paradigm, TDetailPtrResult< UDetail > > | GetDetail (const int32 CursorId, const TSubclassOf< UDetail > DetailClass) const | 
| Get a detail of a specific type on the current iteration.   | |
| template<EParadigm Paradigm = DefaultParadigm, TDetailPtrResultSecurity< UDetail > = 0> | |
| TOutcome< Paradigm, TDetailPtrResult< UDetail > > | GetDetail (const TSubclassOf< UDetail > DetailClass) const | 
| Get the detail on the current iteration of a certain class.   | |
| template<EParadigm Paradigm, class D , TDetailPtrResultSecurity< D > = 0> | |
| TOutcome< Paradigm, TDetailPtrResult< D > > | GetDetail (const int32 CursorId=DefaultCursorId) const | 
| Get the detail on the current iteration of a certain class.   | |
| template<class D , EParadigm Paradigm = DefaultParadigm, TDetailPtrResultSecurity< D > = 0> | |
| TOutcome< Paradigm, TDetailPtrResult< D > > | GetDetail (const int32 CursorId=DefaultCursorId) const | 
| Get the detail on the current iteration of a certain class.   | |
| template<EParadigm Paradigm = DefaultParadigm, TDetailPtrResultSecurity< UDetail > = 0> | |
| TOutcome< Paradigm, TDetailPtrResult< UDetail > > | GetDetailHinted (const int32 CursorId, const TSubclassOf< UDetail > DetailClass, const int32 DetailIndexHint) const | 
| Get the detail on the current iteration at a certain index.   | |
| template<EParadigm Paradigm = DefaultParadigm, TDetailPtrResultSecurity< UDetail > = 0> | |
| TOutcome< Paradigm, TDetailPtrResult< UDetail > > | GetDetailHinted (const TSubclassOf< UDetail > DetailClass, const int32 DetailIndexHint) const | 
| Get the detail on the current iteration at a certain index.   | |
| template<EParadigm Paradigm, class D , TDetailPtrResultSecurity< D > = 0> | |
| TOutcome< Paradigm, TDetailPtrResult< D > > | GetDetailHinted (const int32 CursorId, const int32 DetailIndexHint) const | 
| Get the detail on the current iteration at a certain index hinted.   | |
| template<class D , EParadigm Paradigm = DefaultParadigm, TDetailPtrResultSecurity< D > = 0> | |
| TOutcome< Paradigm, TDetailPtrResult< D > > | GetDetailHinted (const int32 CursorId, const int32 DetailIndexHint) const | 
| Get the detail on the current iteration at a certain index hinted.   | |
| template<EParadigm Paradigm, class D , TDetailPtrResultSecurity< D > = 0> | |
| TOutcome< Paradigm, TDetailPtrResult< D > > | GetDetailHinted (const int32 DetailIndexHint) const | 
| Get the detail on the current iteration at a certain index hinted.   | |
| template<class D , EParadigm Paradigm = DefaultParadigm, TDetailPtrResultSecurity< D > = 0> | |
| TOutcome< Paradigm, TDetailPtrResult< D > > | GetDetailHinted (const int32 DetailIndexHint) const | 
| Get the detail on the current iteration at a certain index hinted.   | |
| template<EParadigm Paradigm = EParadigm::Default, TDetailPtrResultSecurity< UDetail > = 0> | |
| TOutcome< Paradigm, TDetailPtrResult< UDetail > > | DetailAtLine (const int32 CursorId, const int32 LineIndex) const | 
| Get the detail on the current iteration at a certain line index.   | |
| template<EParadigm Paradigm = EParadigm::Default, TDetailPtrResultSecurity< UDetail > = 0> | |
| TOutcome< Paradigm, TDetailPtrResult< UDetail > > | DetailAtLine (const int32 LineIndex) const | 
| Get the detail on the current iteration at a certain line index.   | |
State Examination  | |
| bool | HasViableEmbeddedCursors () const | 
| Check if there any any viable (active) embedded cursors within the chain.   | |
| int32 | IterableNum () const | 
| Get the total number of iterable entities available.   | |
Assignment  | |
| TChain & | operator= (TChain &&InChain) | 
| Move a chain.   | |
| TChain & | operator= (const TChain &InChain) | 
| Set a chain equal to another chain.   | |
Initialization  | |
| TChain (AMechanism *const InOwner) | |
| Initialize a chain with its owner.   | |
| TChain (const TChain &InChain) | |
| Construct a new chain as a copy of another one.   | |
| virtual | ~TChain () | 
| Finalize the chain.   | |
  Public Member Functions inherited from FCommonChain | |
| AMechanism * | GetOwner () const | 
| Get the owning mechanism of the chain.   | |
| const FFilter & | GetFilter () const | 
| Get the current filter used to enchain the iterables.   | |
| bool | IsDisposed () const | 
| Check if the chain is disposed and is ready to be reused.   | |
| int32 | UsersNum () const | 
| Get the current number of users of the chain.   | |
| void | Retain () const | 
| Add a user of the chain preventing it from being disposed.   | |
| void | Release () const | 
| Remove a user of the chain.   | |
| virtual EApparatusStatus | Reset (bool bWaitForOperatings=true) | 
| Reset the chain.   | |
| bool | ShouldStopIterating () const | 
| Check if the chain should stop iterating.   | |
| EApparatusStatus | StopIterating () const | 
| Stop the current iterating of the chain (if any).   | |
| auto | OperatingsNum () const | 
| Get the number of current operatings happening within the chain.   | |
| void | WaitForOperatingsCompletion () const | 
| Wait for all the current operatings to be completed.   | |
| bool | WaitForOperatingsCompletion (const uint32 WaitTimeMsec, const bool bIgnoreThreadIdleStats=false) const | 
| Wait for all the current operatings to be completed.   | |
| bool | WaitForOperatingsCompletion (const FTimespan &WaitTime, const bool bIgnoreThreadIdleStats=false) const | 
| Wait for all the current operatings to be completed.   | |
| virtual | ~FCommonChain () | 
| Finalize the chain.   | |
| FString | ToString () const | 
| Convert the chain to a textual representation.   | |
Static Public Attributes | |
| static constexpr bool | IsSolid = ChunkItType::IsSolid | 
| Is the chain a solid-locking one?   | |
| static constexpr bool | AllowsChanges = ChunkItType::AllowsChanges | 
| Are subjects of the chain mutable?   | |
| static constexpr bool | AllowsStructuralChanges = ChunkItType::AllowsStructuralChanges | 
| Are structural changes (adding/removing components) allowed?   | |
| static constexpr bool | AllowsDirectTraitAccess = ChunkItType::AllowsDirectTraitAccess | 
| Is direct access to the traits data allowed?   | |
| static constexpr EParadigm | DefaultParadigm = InDefaultParadigm | 
| The default access security paradigm.   | |
Friends | |
| class | UApparatusFunctionLibrary | 
| class | AMechanism | 
| class | UMachine | 
Bulk-Copying | |
| enum | EGatheringType { Clear , Collect } | 
| The type of gathering to use during the collection.  More... | |
| template<typename T , typename AllocatorT > | |
| EApparatusStatus | GetTraits (TArray< T, AllocatorT > &OutArray, const EGatheringType GatheringType=Clear) const | 
| Copy the traits of the enchained subjects to an array.   | |
Additional Inherited Members | |
  Protected Types inherited from FCommonChain | |
| using | UsersCountValueType = uint8 | 
| The type of the number of chain users value.   | |
| using | OperatingsCountValueType = uint8 | 
| The type of the value for the number of operatings within the chain.   | |
| using | ConcurrencyLevelValueType = uint8 | 
| The type of the concurrency value.   | |
  Protected Member Functions inherited from FCommonChain | |
| bool | CanBeReused () const | 
| Check if a chain can be reused as a new chain.   | |
| void | IncrementConcurrencyLevel () const | 
| void | DecrementConcurrencyLevel () const | 
| void | IncrementOperatingsCount () const | 
| void | DecrementOperatingsCount () const | 
| EApparatusStatus | Dispose (bool bWaitForOperatings=true) | 
| Reset the state of the chain and mark as disposed (ready to be reused).   | |
| FCommonChain (AMechanism *const InOwner) | |
| Initialize a chain using its owning mechanism.   | |
  Protected Attributes inherited from FCommonChain | |
| AMechanism * | Owner = nullptr | 
| The owner of the chain.   | |
| int32 | Id = InvalidId | 
| A unique identifier of the chain.   | |
| std::atomic< UsersCountValueType > | UsersCount {0} | 
| The number of users currently needing the chain.   | |
| std::atomic< bool > | bDisposed {true} | 
| Was this chain disposed and ready to be reused?   | |
| std::atomic< bool > | bDisposing {false} | 
| Is the chain currently being disposed?   | |
| std::atomic< bool > | bStopIterating {false} | 
| Was this chain stopped from further iterating?   | |
| FFilter | Filter | 
| A filter under which the iterables are locked within the chain.   | |
| bool | bSelfDestroyOnDisposal = false | 
| Should delete itself on disposal.   | |
| bool | bInDestructor = false | 
| Are we currently in a destructor?   | |
| std::atomic< OperatingsCountValueType > | OperatingsCount {0} | 
| The number of current operatings on the chain.   | |
| std::atomic< ConcurrencyLevelValueType > | ConcurrencyLevel {0} | 
| The current concurrency level of the chain.   | |
| FEventRef | OperatingsCompleted {EEventMode::ManualReset} | 
| The event is fired once all of the operatings are completed.   | |
| TArray< TUniquePtr< FCommonRunnableMechanic > > | BackgroundRunnableMechanics | 
| The list of enqueued runnable mechanics.   | |
| FCriticalSection | BackgroundRunnableMechanicsCS | 
| A critical section for the TChain::BackgroundRunnableMechanics access.   | |
A group of iterable locked together in a sequence.
Chains internally consist of segments and are iterated by the cursors.
| ChunkItT | The type of the chunk iterator used. | 
| BeltItT | The type of the belt iterator used. | 
| InDefaultParadigm | The access security paradigm to use by default. | 
| typedef BeltItT TChain< ChunkItT, BeltItT, InDefaultParadigm >::BeltItType | 
| typedef ChunkItT TChain< ChunkItT, BeltItT, InDefaultParadigm >::ChunkItType | 
| using TChain< ChunkItT, BeltItT, InDefaultParadigm >::FCursor = TCursor<> | 
Non-templated cursor version.
| typedef std::conditional<std::templateis_same<SubjectHandleType,FSolidSubjectHandle>::value,FSubjectHandle,void>::type TChain< ChunkItT, BeltItT, InDefaultParadigm >::IncompatibleSubjectHandleType | 
A subject handle type, specifically incompatible with the current one used.
| typedef ChunkItT::SubjectHandleType TChain< ChunkItT, BeltItT, InDefaultParadigm >::SubjectHandleType | 
The subject handle argument type.
| typedef ChunkItT::SubjectivePtrType TChain< ChunkItT, BeltItT, InDefaultParadigm >::SubjectivePtrType | 
The subjective argument type, including the possible 'const' specification.
Doesn't include the pointer part.
| using TChain< ChunkItT, BeltItT, InDefaultParadigm >::Super = FCommonChain | 
| using TChain< ChunkItT, BeltItT, InDefaultParadigm >::TDetailPtrResult = typename ChunkItT::template TDetailPtrResult<D> | 
The class of a detail pointer returned by the methods.
| D | The class of the detail. | 
| using TChain< ChunkItT, BeltItT, InDefaultParadigm >::TDetailPtrResultSecurity = typename ChunkItT::template TDetailPtrResultSecurity<D> | 
The class of a detail pointer returned by the methods.
| D | The class of the detail. | 
| using TChain< ChunkItT, BeltItT, InDefaultParadigm >::TTraitPtrResult = typename ChunkItT::template TTraitPtrResult<Paradigm, T> | 
The type of a trait pointer returned by the methods.
| Paradigm | The access safety paradigm. | 
| T | The type of the trait. | 
| using TChain< ChunkItT, BeltItT, InDefaultParadigm >::TTraitPtrResultSecurity = typename ChunkItT::template TTraitPtrResultSecurity<Paradigm, T> | 
Protect the type of a trait pointer returned by the methods.
| Paradigm | The access safety paradigm. | 
| T | The type of the trait. | 
| using TChain< ChunkItT, BeltItT, InDefaultParadigm >::TTraitRefResult = typename ChunkItT::template TTraitRefResult<Paradigm, T> | 
The type of a trait reference returned by the methods.
| Paradigm | The access safety paradigm. | 
| T | The type of the trait. | 
| using TChain< ChunkItT, BeltItT, InDefaultParadigm >::TTraitRefResultSecurity = typename ChunkItT::template TTraitRefResultSecurity<Paradigm, T> | 
Protect the type of a trait reference returned by the methods.
| Paradigm | The access safety paradigm. | 
| T | The type of the trait. | 
| using TChain< ChunkItT, BeltItT, InDefaultParadigm >::TTraitVoidPtrResult = typename ChunkItT::template TTraitVoidPtrResult<Paradigm> | 
The type of a trait void pointer returned by the methods.
| Paradigm | The access safety paradigm. | 
| using TChain< ChunkItT, BeltItT, InDefaultParadigm >::TTraitVoidPtrResultSecurity = typename ChunkItT::template TTraitVoidPtrResultSecurity<Paradigm> | 
Protect the type of a trait void pointer returned by the methods.
| Paradigm | The access safety paradigm. | 
| enum TChain::EGatheringType | 
      
  | 
  inline | 
Initialize a chain with its owner.
      
  | 
  inline | 
Construct a new chain as a copy of another one.
| InChain | A chain to copy. | 
      
  | 
  inlinevirtual | 
Finalize the chain.
      
  | 
  inline | 
Advance iterating the chain to the next iteration using the embedded cursor.
| CursorId | The identifier of an already iterating cursor. | 
      
  | 
  inline | 
Begin iterating the chain using an embedded cursor.
| CursorId | The identifier of the cursor to use. Will be obtained anew if doesn't exist. | 
| Offset | The slot offset to begin iterating with. | 
| Limit | The maximum number of slots to iterate by. | 
      
  | 
  inline | 
Begin or advance iterating the chain.
| CursorId | The identifier of the cursor. Created anew if needed. | 
| Offset | The slot offset to begin iterating with. | 
| Limit | The maximum number of slots to iterate by. | 
false if the iteration should be ended. 
      
  | 
  inline | 
Get the detail on the current iteration at a certain line index.
| Paradigm | The paradigm to work under. | 
| CursorId | The embedded cursor identifier. | 
| LineIndex | The index of the detail line. | 
      
  | 
  inline | 
Get the detail on the current iteration at a certain line index.
| Paradigm | The paradigm to work under.. | 
| LineIndex | The index of the detail line. | 
      
  | 
  inline | 
Set to chain a set of iterables with a filter.
| FilterT | The type of filter used. Forwarded. | 
| IterableT | The type of iterables to enchain. | 
| AllocatorT | The type of iterables array allocator. | 
| [in] | InFilter | The target filter to enchain with. | 
| [in] | InIterables | The iterables to enchain. | 
      
  | 
  inline | 
Find a certain chain segment by a chain's slot index.
No iterating is done here, so no iterating-time checks (flagmark matching) is performed here.
| InSlotIndex | The index of the slot to find. | 
| OutLocalIndex | The local index of the slot within the chain. | 
| SegmentOffset | The starting segment offset. | 
      
  | 
  inline | 
Get a detail of a specific type on the current iteration.
| Paradigm | The paradigm to work under. | 
| CursorId | The identifier of the embedded cursor. | 
| DetailClass | The class of the detail to get. | 
      
  | 
  inline | 
Get the detail on the current iteration of a certain class.
Templated version.
| Paradigm | The paradigm to work under. | 
| D | The class of the detail to get. | 
      
  | 
  inline | 
Get the detail on the current iteration of a certain class.
Templated version.
| D | The class of the detail to get. | 
| Paradigm | The paradigm to work under. | 
| CursorId | The identifier of the embedded cursor. | 
      
  | 
  inline | 
Get the detail on the current iteration of a certain class.
| Paradigm | The paradigm to work under. | 
| DetailClass | The class of the detail to get. | 
      
  | 
  inline | 
Get the detail on the current iteration at a certain index hinted.
Templated version.
| Paradigm | The paradigm to work under. | 
| D | The class of the detail to get. | 
| CursorId | The identifier of the cursor. | 
| DetailIndexHint | The index of the detail hinting. | 
      
  | 
  inline | 
Get the detail on the current iteration at a certain index hinted.
Templated version.
| D | The class of the detail to get. | 
| Paradigm | The paradigm to work under. | 
| CursorId | The identifier of the cursor. | 
| DetailIndexHint | The index of the detail hinting. | 
      
  | 
  inline | 
Get the detail on the current iteration at a certain index.
| Paradigm | The paradigm to work under. | 
| CursorId | The identifier of the cursor to examine. | 
| DetailClass | The class of the detail to get. | 
| DetailIndexHint | The hinting index of the detail. | 
      
  | 
  inline | 
Get the detail on the current iteration at a certain index hinted.
Templated version.
| Paradigm | The paradigm to work under. | 
| T | The class of the detail to get. | 
| DetailIndexHint | The index of the detail hinting. | 
      
  | 
  inline | 
Get the detail on the current iteration at a certain index hinted.
Templated version.
| T | The class of the detail to get. | 
| Paradigm | The paradigm to work under. | 
| DetailIndexHint | The index of the detail hinting. | 
      
  | 
  inline | 
Get the detail on the current iteration at a certain index.
| Paradigm | The paradigm to work under. | 
| DetailClass | The class of the detail to get. | 
| DetailIndexHint | The index of the detail hinting. | 
      
  | 
  inline | 
A unique identifier of an embedded chain.
      
  | 
  inline | 
Get the subject of the current iteration.
      
  | 
  inline | 
Get the subjective of the current iteration (if any).
nullptr, if there is none. 
      
  | 
  inline | 
Get a trait on the current iteration.
Templated version.
| T | The type of the trait to get. | 
| CursorId | The identifier of the cursor to get from. | 
| OutTraitData | The output trait data buffer. The size of the buffer must be enough to store the whole trait. | 
| bTraitDataInitialized | Was trait data initialized prior to calling this function? | 
      
  | 
  inline | 
Get a trait of a certain type on the current iteration.
| CursorId | The identifier of the cursor to get from. | 
| TraitType | The type of the trait. | 
| OutTraitData | The output trait data. | 
| bTraitDataInitialized | Was trait data initialized prior to calling this function? | 
      
  | 
  inline | 
Get a trait copy on the current iteration.
Templated version.
| T | The type of the trait to get. | 
| CursorId | The identifier of the cursor to examine. | 
      
  | 
  inline | 
Get the trait on the current iteration.
Templated version.
| T | The type of the trait. | 
| OutTraitData | The output trait data. | 
| bTraitDataInitialized | Was trait data initialized prior to calling this function? | 
      
  | 
  inline | 
Get the trait on the current iteration.
| TraitType | The type of the trait to get. | 
| OutTraitData | The output trait data buffer. The size of the buffer must be enough to store the whole trait. | 
| bTraitDataInitialized | Was trait data initialized prior to calling this function? | 
      
  | 
  inline | 
Get a copy of a trait on the current iteration at a specified index hinted.
Templated version.
| Paradigm | The paradigm to work under. | 
| T | The type of the trait. | 
| CursorId | The identifier of the embedded cursor. | 
| TraitIndexHint | The hinting index of the trait. | 
      
  | 
  inline | 
Get a copy of a trait on the current iteration at a specified index hinted.
Templated version.
| T | The type of the trait. | 
| Paradigm | The paradigm to work under. | 
| CursorId | The identifier of the embedded cursor. | 
| TraitIndexHint | The hinting index of the trait. | 
      
  | 
  inline | 
Get the trait on the current iteration at a specified index hinted.
Templated version.
| Paradigm | The paradigm to work under. | 
| T | The type of the trait to get. | 
| [in] | CursorId | The identifier of the cursor to get from. | 
| [in] | TraitIndexHint | The index of the trait hinting. | 
| [out] | OutTraitData | The output trait data. | 
| [in] | bTraitDataInitialized | Was trait data initialized prior to calling this function? | 
      
  | 
  inline | 
Get the trait on the current iteration at a specified index hinted.
Templated version.
| T | The type of the trait to get. | 
| Paradigm | The paradigm to work under. | 
| [in] | CursorId | The identifier of the cursor to get from. | 
| [in] | TraitIndexHint | The index of the trait hinting. | 
| [out] | OutTraitData | The output trait data. | 
| [in] | bTraitDataInitialized | Was trait data initialized prior to calling this function? | 
      
  | 
  inline | 
Get the trait on the current iteration at a specified index hinted.
| Paradigm | The paradigm to work under. | 
| CursorId | The identifier of the cursor to get from. | 
| TraitIndexHint | The index of the trait. | 
| TraitType | The type of the trait. | 
| OutTraitData | The output trait data. | 
| bTraitDataInitialized | Was trait data initialized prior to calling this function? | 
      
  | 
  inline | 
Get a copy of a trait on the current iteration at a specified index hinted.
Templated version.
| Paradigm | The paradigm to work under. | 
| T | The type of the trait. | 
| TraitIndexHint | The index of the trait hint. | 
      
  | 
  inline | 
Get a copy of a trait on the current iteration at a specified index hinted.
Templated version.
| T | The type of the trait. | 
| Paradigm | The paradigm to work under. | 
| TraitIndexHint | The index of the trait hint. | 
      
  | 
  inline | 
Get the trait on the current iteration at a specified index hinted.
Templated version.
| Paradigm | The paradigm to work under. | 
| T | The type of the trait. | 
| TraitIndexHint | The index of the trait hint. | 
| OutTraitData | The output trait data. | 
| bTraitDataInitialized | Was trait data initialized prior to calling this function? | 
      
  | 
  inline | 
Get the trait on the current iteration at a specified index hinted.
Templated version.
| Paradigm | The paradigm to work under. | 
| T | The type of the trait. | 
| TraitIndexHint | The index of the trait hint. | 
| OutTraitData | The output trait data. | 
| bTraitDataInitialized | Was trait data initialized prior to calling this function? | 
      
  | 
  inline | 
Get the trait on the current iteration at a specified index hinted.
| Paradigm | The paradigm to work under. | 
| TraitType | The type of the trait to get. | 
| TraitIndexHint | The index of the trait hinting. | 
| OutTraitData | The output trait data. | 
| bTraitDataInitialized | Was trait data initialized prior to calling this function? | 
      
  | 
  inline | 
Get a pointer to a trait of a certain type on the current iteration.
| Paradigm | The security paradigm override to use. | 
| CursorId | The identifier of the cursor to get from. | 
| TraitType | The type of the trait to get. | 
      
  | 
  inline | 
Get a pointer to a trait of a certain type on the current iteration.
Templated version.
| T | The type of the trait to get. | 
| Paradigm | The security paradigm override to use. | 
| CursorId | The identifier of the cursor to get from. | 
      
  | 
  inline | 
Get a pointer to a trait of a certain type on the current iteration.
Templated version.
| T | The type of the trait to get. | 
| Paradigm | The security paradigm override to use. | 
| CursorId | The identifier of the cursor to get from. | 
      
  | 
  inline | 
Get a trait pointer of a specific type on the current iteration.
| Paradigm | The security paradigm override to use. | 
| TraitType | The type of the trait to get. | 
      
  | 
  inline | 
Get a pointer to the trait on the current iteration at a specified index hinted.
Templated version.
| Paradigm | The security paradigm override. | 
| T | The type of the trait to get. | 
| CursorId | The identifier of the cursor to get from. | 
| TraitIndexHint | The index of the trait hinting. | 
      
  | 
  inline | 
Get a pointer to the trait on the current iteration at a specified index hinted.
Templated version.
| T | The type of the trait to get. | 
| Paradigm | The security paradigm override. | 
| CursorId | The identifier of the cursor to get from. | 
| TraitIndexHint | The index of the trait hinting. | 
      
  | 
  inline | 
Get a pointer to the trait on the current iteration at a specified index hinted.
| Paradigm | The security paradigm override. | 
| CursorId | The identifier of the cursor to get from. | 
| TraitType | The type of the trait to get. | 
| TraitIndexHint | The index of the trait hinting. | 
      
  | 
  inline | 
Get a pointer to the trait on the current iteration at a specified index hinted.
Templated version.
| T | The type of the trait to get. | 
| Paradigm | The security paradigm override. | 
| TraitIndexHint | The index of the trait hinting. | 
      
  | 
  inline | 
Get a pointer to the trait on the current iteration at a specified index hinted.
Templated version.
| T | The type of the trait to get. | 
| Paradigm | The security paradigm override. | 
| TraitIndexHint | The index of the trait hinting. | 
      
  | 
  inline | 
Get a pointer to the trait on the current iteration at a specified index hinted.
| Paradigm | The security paradigm override. | 
| TraitType | The type of the trait to get. | 
| TraitIndexHint | The index of the trait hinting. | 
      
  | 
  inline | 
Get a trait reference on the current iteration.
| Paradigm | The paradigm to work under. | 
| T | The type of the trait to get. | 
| Paradigm | The security paradigm override to use. | 
| CursorId | The identifier of the cursor to get from. | 
      
  | 
  inline | 
Get a trait reference on the current iteration.
| T | The type of the trait to get. | 
| Paradigm | The paradigm to work under. | 
| Paradigm | The security paradigm override to use. | 
| CursorId | The identifier of the cursor to get from. | 
      
  | 
  inline | 
Get a reference for the trait on the current iteration at a specified index hinted.
Templated version.
| Paradigm | The security paradigm override. | 
| T | The type of the trait to get. | 
| CursorId | The identifier of the cursor to get from. | 
| TraitIndexHint | The index of the trait hinting. | 
      
  | 
  inline | 
Get a reference for the trait on the current iteration at a specified index hinted.
Templated version.
| T | The type of the trait to get. | 
| Paradigm | The security paradigm override. | 
| CursorId | The identifier of the cursor to get from. | 
| TraitIndexHint | The index of the trait hinting. | 
      
  | 
  inline | 
Get a reference for the trait on the current iteration at a specified index hinted.
Templated version.
| Paradigm | The security paradigm override. | 
| T | The type of the trait to get. | 
| TraitIndexHint | The index of the trait hinting. | 
      
  | 
  inline | 
Get a reference for the trait on the current iteration at a specified index hinted.
Templated version.
| T | The type of the trait to get. | 
| Paradigm | The security paradigm override. | 
| TraitIndexHint | The index of the trait hinting. | 
| EApparatusStatus TChain< ChunkItT, BeltItT, InDefaultParadigm >::GetTraits | ( | TArray< T, AllocatorT > & | OutArray, | 
| const EGatheringType | GatheringType = Clear  | 
        ||
| ) | const | 
Copy the traits of the enchained subjects to an array.
| T | The type of traits to copy. Must match the current filtering used. | 
| AllocatorT | The allocator used within the array. | 
| [out] | OutArray | The array to output the traits to. | 
| [in] | GatheringType | The type of gathering to use. | 
      
  | 
  inline | 
Check if there any any viable (active) embedded cursors within the chain.
      
  | 
  inline | 
Get the total number of iterable entities available.
within the chain.
This would actually include the subjects that could be filtered out due to iterating-time checks (i.e. flagmarks).
      
  | 
  inline | 
Prepare the chain for iterating returning the cursor.
| Ps | The types of components to provide efficiently using the hinting mechanism. | 
| Offset | The slot offset to begin iterating with. | 
| Limit | The maximum number of slots to iterate by. | 
      
  | 
  inline | 
Process the chain using a functor mechanic.
| FunctorT | The type of the mechanical functor to operate on the chain slots. | 
| Paradigm | The paradigm to work under. | 
| Ts | The type of components to provide to theTComponentTypesPack mechanic. | 
      
  | 
  inline | 
Process the chain using a functor mechanic.
| Paradigm | The paradigm to work under. | 
| FunctorT | The type of the mechanical functor to operate on the chain slots. | 
| Ts | The type of components to provide to theTComponentTypesPack mechanic. | 
      
  | 
  inline | 
Process the chain using a functor mechanic.
Supports lambdas. Constant mechanic version.
| Paradigm | The paradigm to work under. | 
| MechanicT | The type of the functor to operate on the enchained slots. Can be a lambda expression. | 
| InMechanic | The functor mechanic to operate with. Can be a lambda expression. | 
      
  | 
  inline | 
Process the chain using a free function.
| Paradigm | The paradigm to work under. | 
| FunctionT | The type of the function to operate on the enchained slots. | 
      
  | 
  inline | 
Process the chain using a functor mechanic.
Supports lambdas. Mutable mechanic version.
| Paradigm | The paradigm to work under. | 
| MechanicT | The type of the functor to operate on the enchained slots. Can be a lambda expression. | 
      
  | 
  inline | 
Process the chain using a functor mechanic in a parallel manner.
Supports lambdas. Constant mechanic version.
| Paradigm | The security paradigm to utilize. | 
| FunctorT | The type of the mechanic functor to operate on the slots. May be a lambda. | 
| InMechanic | The mechanic functor to operate with. Can be a lambda. | 
| ThreadsCountMax | The maximum number of threads to process with. | 
| SlotsPerThreadMin | The minimum number of slots per thread to process. | 
| bSync | Should the operation be synced within the current branch. | 
      
  | 
  inline | 
Process the chain using a functor mechanic in a parallel manner.
| FunctorT | The type of the mechanical functor to operate on the slots. | 
| Paradigm | The security paradigm to utilize. | 
| Ts | The type of components to supply to the mechanic. | 
| ThreadsCountMax | The maximum number of threads to process with. | 
| SlotsPerThreadMin | The minimum number of slots per thread to process. | 
| bSync | Should the operation be synced within the current branch. | 
      
  | 
  inline | 
Process the chain using a functor mechanic in a parallel manner.
| Paradigm | The security paradigm to utilize. | 
| FunctorT | The type of the mechanical functor to operate on the slots. | 
| Ts | The type of components to supply to the mechanic. | 
| ThreadsCountMax | The maximum number of threads to process with. | 
| SlotsPerThreadMin | The minimum number of slots per thread to process. | 
| bSync | Should the operation be synced within the current branch. | 
      
  | 
  inline | 
Process the chain using a function mechanic in a parallel manner.
| Paradigm | The security paradigm to utilize. | 
| FunctionT | The type of the mechanic free function to operate on the slots. | 
| InMechanic | The mechanical function to operate with. | 
| ThreadsCountMax | The maximum number of threads to process with. | 
| SlotsPerThreadMin | The minimum number of slots per thread to process. | 
| bSync | Should the operation be synced within the current branch. | 
      
  | 
  inline | 
Process the chain using a functor mechanic in a parallel manner.
Supports lambdas.
| Paradigm | The security paradigm to utilize. | 
| FunctorT | The type of the mechanic functor to operate on the slots. May be a lambda. | 
| InMechanic | The mechanic functor to operate with. Can be a lambda. | 
| ThreadsCountMax | The maximum number of threads to process with. | 
| SlotsPerThreadMin | The minimum number of slots per thread to process. | 
| bSync | Should the operation be synced within the current branch. | 
      
  | 
  inline | 
Set a chain equal to another chain.
      
  | 
  inline | 
Move a chain.
      
  | 
  inlineoverridevirtual | 
Reset the chain completely.
| bWaitForOperatings | Should the method wait till all the operatings are complete. | 
Reimplemented from FCommonChain.
      
  | 
  friend | 
      
  | 
  friend | 
      
  | 
  friend | 
      
  | 
  staticconstexpr | 
Are subjects of the chain mutable?
      
  | 
  staticconstexpr | 
Is direct access to the traits data allowed?
      
  | 
  staticconstexpr | 
Are structural changes (adding/removing components) allowed?
      
  | 
  staticconstexpr | 
The default access security paradigm.
      
  | 
  staticconstexpr | 
Is the chain a solid-locking one?