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
FSubjectHandle Struct Reference

A subject with structural changes allowed. More...

#include <SubjectHandle.h>

Inheritance diagram for FSubjectHandle:
Inheritance graph
[legend]
Collaboration diagram for FSubjectHandle:
Collaboration graph
[legend]

Public Types

using SuperT = TSubjectHandle< true, false, true >
 Base generic type.
 
typedef ISubjectiveSubjectivePtrType
 The compatible type of the subjective used.
 
- Public Types inherited from TSubjectHandle< true, false, true >
using Super = FCommonSubjectHandle
 The base handle type.
 
using TTraitVoidPtrResultSecurity = typename std::enable_if< bAllowDirectTraitAccess||IsUnsafe(Paradigm), bool >::type
 The type of a trait void pointer returned by the methods.
 
using TTraitVoidPtrResult = typename std::conditional< AllowsChanges, void *, const void * >::type
 The type of a trait void pointer returned by the methods.
 
using TTraitPtrResultSecurity = typename std::enable_if<(bAllowDirectTraitAccess||IsUnsafe(Paradigm)) &&IsTraitType< std::remove_cv_t< T > >(), bool >::type
 Assess the availability of a trait pointer result.
 
using TTraitPtrResult = typename std::conditional< AllowsChanges, std::add_pointer_t< T >, std::add_pointer_t< std::add_const_t< T > > >::type
 The type of a trait pointer returned by the methods.
 
using TTraitRefResultSecurity = typename std::enable_if<(bAllowDirectTraitAccess||IsUnsafe(Paradigm)) &&IsTraitType< std::remove_cv_t< T > >(), bool >::type
 Check the type of a trait reference returned by the methods.
 
using TTraitRefResult = typename std::conditional< bAllowChanges, std::add_lvalue_reference_t< T >, std::add_lvalue_reference_t< std::add_const_t< T > > >::type
 The type of a trait reference returned by the methods.
 
using TDetailPtrResultSecurity = typename std::enable_if< IsDetailClass< std::remove_cv_t< D > >(), bool >::type
 Check the class of a detail.
 
using TDetailPtrResult = typename std::conditional< bAllowChanges, std::add_pointer_t< D >, std::add_pointer_t< std::add_const_t< D > > >::type
 The type of a detail pointer returned by the methods.
 
- Public Types inherited from FCommonSubjectHandle
typedef FSubjectInfo::MechanismIdType MechanismIdType
 The type of the unique mechanism identifier.
 
typedef FSubjectInfo::IdType IdType
 The type of the unique subject identifier.
 
typedef FSubjectInfo::GenerationType GenerationType
 The type of the subject generation counter.
 
using NetworkIdType = FSubjectNetworkState::IdType
 The type of the network identifier.
 

Public Member Functions

SubjectivePtrType GetSubjective () const
 Get a subjective this handle is associated with (if any).
 
A Pointer-Like Interface
auto operator-> () const
 Use the handle as a pointer.
 
auto & operator* () const
 Dereference itself.
 
Validity
bool operator== (TYPE_OF_NULLPTR) const
 Check if the subject handle is invalid and is pointing to a non-existent subject.
 
bool operator!= (TYPE_OF_NULLPTR) const
 Check if the subject handle is valid and is pointing to an existent subject.
 
 operator bool () const
 Check if the subject handle is valid and is pointing to an existent subject.
 
Equality
bool operator== (const FCommonSubjectHandle &InSubjectHandle) const
 Check if the subject handle points to the same subject as the other one.
 
bool operator!= (const FCommonSubjectHandle &InSubjectHandle) const
 Check if the subject handle point to a different subject than the other one.
 
Assignment
FSubjectHandleoperator= (const FSubjectHandle &InHandle)
 Copy a subject handle.
 
Initialization
 FSubjectHandle ()
 Construct a new invalid subject handle.
 
 FSubjectHandle (const FSubjectHandle &InHandle)
 Copy-construct a new subject handle.
 
 FSubjectHandle (const FCommonSubjectHandle &InBaseHandle)
 Initialize a new subject handle from a base handle version.
 
- Public Member Functions inherited from TSubjectHandle< true, false, true >
TSubjectHandleoperator= (TYPE_OF_NULLPTR)
 Clear the subject handle, essentially making it invalid.
 
 TSubjectHandle ()
 Construct a new invalid subject handle.
 
 TSubjectHandle (const TSubjectHandle &InHandle)
 Copy-construct a new subject handle.
 
auto operator-> () const
 Use the handle as a pointer.
 
auto & operator* () const
 Dereference itself.
 
bool operator== (TYPE_OF_NULLPTR) const
 Check if the subject handle is invalid and is pointing to a non-existent subject.
 
bool operator!= (TYPE_OF_NULLPTR) const
 Check if the subject handle is valid and is pointing to an existent subject.
 
bool operator== (const FCommonSubjectHandle &InSubjectHandle) const
 Check if the subject handle points to the same subject as the other one.
 
bool operator!= (const FCommonSubjectHandle &InSubjectHandle) const
 Check if the subject handle points to a different subject than the other one.
 
TOutcomeIfUnsafeOr< Paradigm, AllowsStructuralChangesSetMechanism (AMechanism *const Mechanism)
 Set the mechanism of the subjective.
 
TOutcomeIfUnsafeOr< Paradigm, AllowsStructuralChangesDespawn () const
 Destroy the subject.
 
TOutcomeIfUnsafeOr< Paradigm, AllowsChangesDespawnDeferred (const bool bHard=true) const
 Destroy the subject.
 
TOutcomeIfUnsafeOr< Paradigm, AllowsChanges, EFlagmarkSetFlagmark (const EFlagmark Flagmark) const
 Set the flagmark of the subject.
 
std::enable_if< AllowsChanges||IsUnsafe(Paradigm), EApparatusStatus >::type SetFlagmark_Status (const EFlagmark Flagmark) const
 Set the flagmark of the subject.
 
TOutcomeIfUnsafeOr< Paradigm, AllowsChanges, EFlagmarkSetFlagmarkMasked (const EFlagmark Flagmark, const EFlagmark Mask) const
 Set the flagmark of the subject.
 
std::enable_if< AllowsChanges||(Paradigm<=EParadigm::Unsafe), EApparatusStatus >::type SetFlagmarkMasked_Status (const EFlagmark Flagmark, const EFlagmark Mask) const
 Set the flagmark of the subject.
 
TOutcomeIfUnsafeOr< Paradigm, AllowsChanges, boolSetFlag (const EFlagmarkBit Flag, const bool bState=true) const
 Set a single flag for the subject.
 
std::enable_if< AllowsChanges||(Paradigm<=EParadigm::Unsafe), EApparatusStatus >::type SetFlag_Status (const EFlagmarkBit Flag, const bool bState=true) const
 Set a single flag for the subject.
 
TOutcomeIfUnsafeOr< Paradigm, AllowsChanges, EFlagmarkAddToFlagmark (const EFlagmark Flagmark) const
 Add flags to the flagmark of the subject.
 
TOutcomeIfUnsafeOr< Paradigm, AllowsChanges, boolToggleFlag (const EFlagmarkBit Flag) const
 Toggle a single flag for the subject.
 
TOutcome< Paradigm, TTraitVoidPtrResult< Paradigm > > GetTraitPtr (UScriptStruct *const TraitType) const
 Get a pointer to a trait of the subject of a certain type.
 
TOutcome< Paradigm, TTraitPtrResult< Paradigm, T > > GetTraitPtr () const
 Get a pointer to a trait of a certain type.
 
TOutcome< Paradigm, TTraitPtrResult< Paradigm, T > > GetTraitPtr () const
 Get a pointer to a trait of a certain type.
 
TOutcome< Paradigm, TTraitRefResult< Paradigm, T > > GetTraitRef () const
 Get a trait from a subject by its type.
 
TOutcome< Paradigm, TTraitRefResult< Paradigm, T > > GetTraitRef () const
 Get a trait from a subject by its type.
 
TOutcomeIfUnsafeOr< Paradigm, AllowsStructuralChangesSetTrait (UScriptStruct *const TraitType, const void *const TraitData) const
 Set a trait of the subject by its type.
 
TOutcomeIfUnsafeOr< Paradigm, AllowsStructuralChangesSetTrait (const T *const TraitData) const
 Set a trait of the subject by its type.
 
TOutcomeIfUnsafeOr< Paradigm, AllowsStructuralChangesSetTrait (const FTraitRecord &TraitRecord) const
 Set a trait of the subject to a trait record.
 
TOutcomeIfUnsafeOr< Paradigm, AllowsStructuralChangesSetTrait (const T &Trait) const
 Set a trait of the subject.
 
auto SetTrait (const T &Flagmark) const
 Add a flagmark to the subject.
 
TOutcomeIfUnsafeOr< Paradigm, AllowsStructuralChangesSetTraits (const TArray< UScriptStruct *, A1 > &TraitsTypes, const TArray< const T *, A2 > &TraitsData, const bool bLeaveRedundant=true) const
 Set multiple subject traits equal to the supplied list.
 
TOutcomeIfUnsafeOr< Paradigm, AllowsStructuralChangesSetTraits (const FSubjectRecord &SubjectRecord, const bool bLeaveRedundant=true) const
 Set multiple subject traits from a subject record.
 
TOutcome< Paradigm > OverwriteTraits (const TArray< UScriptStruct *, A1 > &TraitsTypes, const TArray< const T *, A2 > &TraitsData) const
 Overwrite existing subject traits from the array.
 
TOutcomeIfUnsafeOr< Paradigm, AllowsChangesOverwriteTraits (const FSubjectRecord &SubjectRecord) const
 Overwrite existing traits from a subject record.
 
TOutcome< Paradigm > CopyTraitsTo (const TSubjectHandle< true, AnyDirectAccess, true > &DestinationSubjectHandle) const
 Copy all of the traits of the subject to some other subject.
 
TOutcome< Paradigm > ObtainTrait (UScriptStruct *const TraitType, T *const OutTraitData, const bool bTraitDataInitialized=true) const
 Obtain a trait from the subject by its type.
 
TOutcome< Paradigm > ObtainTrait (UScriptStruct *const TraitType) const
 Obtain a trait for the subject by its type.
 
TOutcome< Paradigm > ObtainTrait (T &OutTrait, const bool bTraitDataInitialized=true) const
 Obtain a trait from the subject.
 
TOutcome< Paradigm, TObtainTrait () const
 Obtain a trait copy from the subject.
 
auto ObtainTrait () const
 Obtain a trait copy from the subject.
 
TOutcome< Paradigm, TTraitVoidPtrResult< Paradigm > > ObtainTraitPtr (UScriptStruct *const TraitType) const
 Obtain a trait data pointer from the subject by its type.
 
TOutcome< Paradigm, TTraitPtrResult< Paradigm, T > > ObtainTraitPtr () const
 Obtain a trait pointer from the subject.
 
auto ObtainTraitPtr () const
 Obtain a trait pointer from the subject.
 
TOutcome< Paradigm, TTraitRefResult< Paradigm, T > > ObtainTraitRef () const
 Obtain a trait reference from the subject.
 
TOutcome< Paradigm, TTraitRefResult< Paradigm, T > > ObtainTraitRef () const
 Obtain a trait reference from the subject.
 
TOutcome< Paradigm > ObtainTraitDeferred (UScriptStruct *const TraitType) const
 Obtain a trait for the subject by its type.
 
TOutcome< Paradigm, TObtainTraitDeferred () const
 Obtain a trait copy from the subject.
 
auto ObtainTraitDeferred () const
 Obtain a trait copy from the subject.
 
TOutcome< Paradigm > SetTraitDeferred (UScriptStruct *const TraitType, const void *const TraitData) const
 Set a trait of the subject by its type.
 
TOutcome< Paradigm > SetTraitDeferred (const T *Trait) const
 Set a trait of the subject by its type.
 
TOutcome< Paradigm > SetTraitDeferred (const T &Trait) const
 Set a trait of the subject by its type.
 
TOutcome< Paradigm > RemoveTrait (UScriptStruct *const TraitType) const
 Remove a trait from the subject.
 
TOutcome< Paradigm > RemoveTrait () const
 Remove a trait from the subject.
 
auto RemoveTrait () const
 Remove a trait from the subject.
 
TOutcome< Paradigm > RemoveAllTraits () const
 Remove all of the traits from the subject (if any).
 
TOutcome< Paradigm > RemoveTraitDeferred (UScriptStruct *const TraitType) const
 Remove a trait from the subject.
 
TOutcome< Paradigm > RemoveTraitDeferred () const
 Remove a trait from the subject.
 
TOutcome< Paradigm > RemoveTraitDeferred () const
 Remove a trait from the subject.
 
TOutcomeIfUnsafeOr< Paradigm, AllowsChangesRemoveAllTraitsDeferred (const bool bForceEnqueue=false) const
 Remove all of the traits from the subject.
 
TDetailPtrResult< UDetailGetDetail (TSubclassOf< UDetail > DetailClass) const
 Get a detail of a certain class.
 
TDetailPtrResult< DGetDetail () const
 Get a detail of a certain class.
 
TOutcomeIfUnsafeOr< Paradigm, AllowsChangesBringOnline () const
 Make the subject networked.
 
TOutcome< Paradigm > BringOnline (const TRange< NetworkIdType > &IdRange) const
 Make the subject networked while using a custom network identifiers range.
 
TOutcomeIfUnsafeOr< Paradigm, AllowsChangesSetConnectionPermit (UNetConnection *const Connection) const
 Set the server-side connection to a client from which it is allowed to push traits to this subject.
 
TOutcomeIfUnsafeOr< Paradigm, AllowsChangesSetTraitmarkPermit (const FTraitmark &InTraitmarkPermit) const
 Set the server-side list of traits allowed to be pushed from clients.
 
TOutcomeIfUnsafeOr< Paradigm, AllowsChangesSetTraitmarkPass (const FTraitmark &InTraitmarkPermit) const
 
TOutcomeIfUnsafeOr< Paradigm, AllowsStructuralChangesPushTrait (UScriptStruct *const TraitType, const void *const TraitData, const EPeerRole PeerRole=EPeerRole::Auto, const bool bReliable=true) const
 Send an additional trait to the remote version of the subject.
 
TOutcomeIfUnsafeOr< Paradigm, AllowsStructuralChangesPushTrait (UScriptStruct *const TraitType, const void *const TraitData, const bool bSetForLocal=false, const EPeerRole PeerRole=EPeerRole::Auto, const bool bReliable=true) const
 Send an additional trait to the remote version of the subject.
 
TOutcomeIfUnsafeOr< Paradigm, AllowsStructuralChangesPushTrait (const T &Trait, const EPeerRole PeerRole=EPeerRole::Auto, const bool bReliable=true) const
 Send an additional trait to the remote version of the subject.
 
TOutcomeIfUnsafeOr< Paradigm, AllowsStructuralChangesPushTrait (const T &Trait, const bool bSetForLocal=false, const EPeerRole PeerRole=EPeerRole::Auto, const bool bReliable=true) const
 Send an additional trait to the remote version of the subject.
 
TOutcome< Paradigm > PushTrait (const T &Trait, const EPeerRole PeerRole=EPeerRole::Auto, const bool bReliable=true) const
 Send an additional trait to the remote version of the subject.
 
TOutcome< Paradigm > PushTrait (UScriptStruct *const TraitType, const EPeerRole PeerRole=EPeerRole::Auto, const bool bReliable=true) const
 Send an existing trait to the remote version of the subject.
 
TOutcome< Paradigm > PushTrait (UScriptStruct *const TraitType, const bool bReliable, const EPeerRole PeerRole=EPeerRole::Auto) const
 Send an existing trait to the remote version of the subject.
 
TOutcome< Paradigm > PushTrait (const EPeerRole PeerRole=EPeerRole::Auto, const bool bReliable=true) const
 Send an existing trait to the remote version of the subject.
 
auto PushTrait (const EPeerRole PeerRole=EPeerRole::Auto, const bool bReliable=true) const
 Send an existing trait to the remote version of the subject.
 
auto PushTrait (const bool bReliable, const EPeerRole PeerRole=EPeerRole::Auto) const
 Send an existing trait to the remote version of the subject.
 
- Public Member Functions inherited from FCommonSubjectHandle
 FCommonSubjectHandle ()
 Initialize an invalid (null) handle.
 
 FCommonSubjectHandle (const FCommonSubjectHandle &InSubjectHandle)
 Initialize as a copy of an another subject handle.
 
auto operator-> () const
 Use the handle as a pointer.
 
auto & operator* () const
 Dereference itself.
 
IdType GetId () const
 Get the unique identifier of the subject.
 
GenerationType GetGeneration () const
 Get the current generation of the subject.
 
auto GetMechanismId () const
 Get the identifier of the mechanism the subject is part of.
 
auto GetPlace () const
 Get the place index of the subject.
 
bool IsSolid () const
 Check if the subject is currently solid.
 
void ResetHandle ()
 Reset the subject handle.
 
FCommonSubjectHandleoperator= (TYPE_OF_NULLPTR)
 Clear the subject handle, essentially making it invalid.
 
uint32 CalcHash () const
 Calculate the hash-sum value for the handle.
 
AMechanismGetMechanism () const
 Get the mechanism the subject is part of.
 
const FFingerprintGetFingerprint () const
 Get the current fingerprint of the subject.
 
bool Matches (const FFilter &InFilter) const
 Check if the subject matches a certain filter.
 
bool IsValid () const
 Check if the subject handle is valid and is pointing to an existent subject.
 
bool operator== (TYPE_OF_NULLPTR) const
 Check if the subject handle is invalid and is pointing to a non-existent subject.
 
bool operator!= (TYPE_OF_NULLPTR) const
 Check if the subject handle is valid and is pointing to an existent subject.
 
 operator bool () const
 Check if the subject handle is valid and is pointing to an existent subject.
 
bool EqualsRaw (const FCommonSubjectHandle &InSubject) const
 Check if two subject handles are equal byte-wise.
 
bool Equals (const FCommonSubjectHandle &InSubjectHandle) const
 Check if the subject handle points to the same subject as the other one.
 
bool operator== (const FCommonSubjectHandle &InSubjectHandle) const
 Check if the subject handle points to the same subject as the other one.
 
bool operator!= (const FCommonSubjectHandle &InSubjectHandle) const
 Check if the subject handles point to different subjects.
 
EFlagmark GetFlagmark () const
 Get the flagmark of the subject.
 
bool HasFlag (const EFlagmarkBit Flag) const
 Get the state of a certain flag of the subject.
 
bool HasTrait (UScriptStruct *const TraitType) const
 Check if the subject has a certain trait.
 
template<typename T >
std::enable_if< IsTraitType< T >(), bool >::type HasTrait () const
 Check if the subject has a certain trait.
 
bool HasDetail (TSubclassOf< UDetail > DetailClass) const
 Check if the subject has a certain detail.
 
template<typename D >
std::enable_if< IsDetailClass< D >(), bool >::type HasDetail () const
 Check if the subject has a certain detail.
 
template<EParadigm Paradigm = EParadigm::Default>
TOutcome< Paradigm > GetTrait (UScriptStruct *const TraitType, void *const OutTraitData, const bool bTraitDataInitialized=true) const
 Get a trait from the subject by its type.
 
template<EParadigm Paradigm = EParadigm::Default, typename T = void>
TOutcome< Paradigm > GetTrait (T &OutTrait, const bool bTraitDataInitialized=true) const
 Get a trait from a subject by its type.
 
template<EParadigm Paradigm, typename T >
TOutcome< Paradigm, TGetTrait () const
 Get a trait copy from the subject by its type.
 
template<typename T , EParadigm Paradigm = EParadigm::Default>
TOutcome< Paradigm, TGetTrait () const
 Get a trait copy from the subject by its type.
 
bool IsOnline () const
 Check if the subject currently networked.
 
NetworkIdType GetNetworkId () const
 Get a unique network identifier of a subject (if any).
 
bool IsInNetworkMode (const ENetMode Mode) const
 Check if the subject is of a certain network mode.
 
bool IsServerSide () const
 Check if this is a server-side version of the subject.
 
bool IsClientSide () const
 Check if this is a client-side version of the subject.
 
UNetConnection * GetConnectionPermit () const
 Get the server-side connection that is allowed to push to the server's version of the subject.
 
const FTraitmarkGetTraitmarkPermit () const
 Get the server-side list of traits allowed to be received from clients.
 
const FTraitmarkGetTraitmarkPass () const
 
FCommonSubjectHandleoperator= (const FCommonSubjectHandle &InSubjectHandle)
 Assign to be a copy of an another subject handle.
 

Static Public Attributes

static const FSubjectHandle Invalid
 A global constant for an invalid (NULL) subject handle.
 
- Static Public Attributes inherited from TSubjectHandle< true, false, true >
static constexpr bool AllowsChanges
 Is the target subject mutable (non-constant)?
 
static constexpr bool AllowsDirectTraitAccess
 Is the direct (trait) data access possible?
 
static constexpr bool AllowsStructuralChanges
 Is changing of the subject's structure (adding/removing traits) allowed.
 
- Static Public Attributes inherited from FCommonSubjectHandle
static constexpr IdType InvalidId = FSubjectInfo::InvalidId
 Invalid subject identifier.
 
static constexpr IdType FirstPlace = FSubjectInfo::FirstPlace
 A first valid subject identifier.
 
static constexpr IdType LastPlace = FSubjectInfo::LastPlace
 The maximum valid subject identifier.
 
static constexpr GenerationType FirstGeneration = FSubjectInfo::FirstGeneration
 The first valid generation.
 
static constexpr GenerationType LastGeneration = FSubjectInfo::LastGeneration
 The maximum valid generation.
 
static const FCommonSubjectHandle Invalid
 An invalid common subject handle constant.
 

Friends

struct FSubjectInfo
 
struct FSolidSubjectHandle
 
struct FConstSubjectHandle
 
struct FUnsafeSubjectHandle
 
class UChunk
 
class AMechanism
 
class UMachine
 
class ISubjective
 
template<typename ChunkItT , typename BeltItT , EParadigm Paradigm>
struct TChain
 

Additional Inherited Members

- Static Public Member Functions inherited from TSubjectHandle< true, false, true >
static constexpr bool IsHandleSolid ()
 Check if the handle itself a solid one.
 
- Protected Member Functions inherited from TSubjectHandle< true, false, true >
 TSubjectHandle (const int32 InId, const GenerationType InGeneration)
 
 TSubjectHandle (const MechanismIdType InMechanismId, const IdType InPlace, const GenerationType InGeneration)
 
 TSubjectHandle (const FCommonSubjectHandle &InHandle)
 
- Protected Member Functions inherited from FCommonSubjectHandle
FSubjectInfoFindInfo () const
 Get the valid subject info record (if any).
 
FSubjectInfoGetInfo () const
 Get the subject info record associated with it.
 
FFingerprintGetFingerprintRef () const
 Get the current fingerprint's reference of the subject.
 
template<EParadigm Paradigm = EParadigm::DefaultInternal>
TOutcome< Paradigm, boolMarkBooted () const
 
UChunkGetChunk () const
 Get the current chunk of the subject.
 
ISubjectiveGetSubjective () const
 Get a subjective this handle is associated with (if any).
 
UDetailGetDetail (TSubclassOf< UDetail > DetailClass) const
 Get a detail of a certain class.
 
template<class D >
DGetDetail () const
 Get a detail of a certain class.
 
 FCommonSubjectHandle (const IdType InId, const GenerationType InGeneration)
 Initialize a common handle with explicit id and generation specifications.
 
 FCommonSubjectHandle (const MechanismIdType InMechanismId, const IdType InPlace, const GenerationType InGeneration)
 Initialize a common handle with explicit mechanism, placement and generation specifications.
 
- Protected Attributes inherited from FCommonSubjectHandle
int32 Id = InvalidId
 A unique identifier of the subject within the mechanism.
 
uint32 Generation = FirstGeneration
 A unique generation of the subject.
 

Detailed Description

A subject with structural changes allowed.

This is a user-level handle structure, something like a pointer. The size of this structure is exactly 64-bit and may be passed by value.

Member Typedef Documentation

◆ SubjectivePtrType

The compatible type of the subjective used.

◆ SuperT

using FSubjectHandle::SuperT = TSubjectHandle<true, false, true>

Base generic type.

Constructor & Destructor Documentation

◆ FSubjectHandle() [1/3]

FSubjectHandle::FSubjectHandle ( )
inline

Construct a new invalid subject handle.

◆ FSubjectHandle() [2/3]

FSubjectHandle::FSubjectHandle ( const FSubjectHandle InHandle)
inline

Copy-construct a new subject handle.

◆ FSubjectHandle() [3/3]

FSubjectHandle::FSubjectHandle ( const FCommonSubjectHandle InBaseHandle)
inlineexplicit

Initialize a new subject handle from a base handle version.

Parameters
InBaseHandleThe base handle to initialize with.

Member Function Documentation

◆ GetSubjective()

SubjectivePtrType FSubjectHandle::GetSubjective ( ) const
inline

Get a subjective this handle is associated with (if any).

◆ operator bool()

FSubjectHandle::operator bool ( ) const
inline

Check if the subject handle is valid and is pointing to an existent subject.

Returns
Returns true if the subject is valid. Otherwise, false is returned.

◆ operator!=() [1/2]

bool FSubjectHandle::operator!= ( const FCommonSubjectHandle InSubjectHandle) const
inline

Check if the subject handle point to a different subject than the other one.

Two invalid subject handles are considered to be the same and this operator would return false.

Parameters
InSubjectHandleA subject handle to compare with.
Returns
true if the handles point to different subjects or one is invalid.
false if the handles point to the same subject or both are invalid.

◆ operator!=() [2/2]

bool FSubjectHandle::operator!= ( TYPE_OF_NULLPTR  ) const
inline

Check if the subject handle is valid and is pointing to an existent subject.

Returns
Returns true if the subject is valid. Otherwise, false is returned.

◆ operator*()

auto & FSubjectHandle::operator* ( ) const
inline

Dereference itself.

This interface is needed for compatiblity

◆ operator->()

auto FSubjectHandle::operator-> ( ) const
inline

Use the handle as a pointer.

This interface is needed for compatiblity

◆ operator=()

FSubjectHandle & FSubjectHandle::operator= ( const FSubjectHandle InHandle)
inline

Copy a subject handle.

◆ operator==() [1/2]

bool FSubjectHandle::operator== ( const FCommonSubjectHandle InSubjectHandle) const
inline

Check if the subject handle points to the same subject as the other one.

If both handles are invalid, returns true

Parameters
InSubjectHandleA subject handle to compare with.
Returns
true if the handles point to the same subject or both are invalid.
false if the handles point to different subjects or one is invalid.

◆ operator==() [2/2]

bool FSubjectHandle::operator== ( TYPE_OF_NULLPTR  ) const
inline

Check if the subject handle is invalid and is pointing to a non-existent subject.

Returns
Returns true if the subject is invalid. Otherwise, false is returned.

Friends And Related Function Documentation

◆ AMechanism

friend class AMechanism
friend

◆ FConstSubjectHandle

friend struct FConstSubjectHandle
friend

◆ FSolidSubjectHandle

friend struct FSolidSubjectHandle
friend

◆ FSubjectInfo

friend struct FSubjectInfo
friend

◆ FUnsafeSubjectHandle

friend struct FUnsafeSubjectHandle
friend

◆ ISubjective

friend class ISubjective
friend

◆ TChain

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

◆ UChunk

friend class UChunk
friend

◆ UMachine

friend class UMachine
friend

Member Data Documentation

◆ Invalid

const FSubjectHandle FSubjectHandle::Invalid
static

A global constant for an invalid (NULL) subject handle.


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