class TScriptNonReflectableWrapper

template<typename NativeType, typename SelfType, typename BaseType = TScriptNonReflectableWrapperBase<NativeType>>

Extends TScriptObjectWrapper by providing functionality required for types not deriving from IReflectable that may be passed along as a shared pointer.

Public

Constructors

TScriptNonReflectableWrapper<NativeType, SelfType, BaseType>

TScriptNonReflectableWrapper<NativeType, SelfType, BaseType>(const SPtr<NativeType> &nativeObject)

Methods

GetNativeObjectAsShared

SPtr<NativeType> GetNativeObjectAsShared() const

Returns the wrapped native object as a shared pointer.

GetNativeObjectReferenceCount

u32 GetNativeObjectReferenceCount() const override

staticCreateScriptObjectAndWrapper

static MonoObject *CreateScriptObjectAndWrapper(const SPtr<NativeType> &nativeObject)

Creates a new script object and a script object wrapper of , and associates them with the provided native object.

Should not be called if already has an associated script object.

staticGetOrCreateScriptObject

static MonoObject *GetOrCreateScriptObject(const SPtr<NativeType> &nativeObject)

Attempts to retrieve an existing associated script object from the provided native object.

If one doesn't exist, a new script object and the associated script wrapper will be created.

~TScriptObjectWrapper<SelfType, BaseType>

virtual ~TScriptObjectWrapper<SelfType, BaseType>() = default

RecreateScriptObjectAfterScriptReload

void RecreateScriptObjectAfterScriptReload() override

staticGetScriptObjectWrapper

static SelfType *GetScriptObjectWrapper(MonoObject *scriptObject)

Returns the script object wrapper associated with the provided script object.

staticGetMetaData

static const ScriptTypeMetaData *GetMetaData()

Returns the meta-data storing information about the script type.

staticInitializeMetaDataAtLoadTime

static void InitializeMetaDataAtLoadTime()

Takes care of initializing the meta-data when the application first load.

The meta-data will be registered with a global manager that will ensure it is kept up-to-date after operations such as assembly (re)load.

Protected

Methods

BindToScriptObject

void BindToScriptObject(MonoObject *scriptObject) override

Stores a pointer to itself in the script object.

This ensures that calls to GetScriptObjectWrapper() can return the script object wrapper associated with the script object.