CommonLibVR
RE::BSScript::NativeLatentFunction< IS_LONG, F, callbackR, latentR, Base, Args > Class Template Reference

#include <NativeLatentFunction.h>

Inheritance diagram for RE::BSScript::NativeLatentFunction< IS_LONG, F, callbackR, latentR, Base, Args >:
RE::BSScript::NativeFunction< IS_LONG, F, std::underlying_type_t< callbackR >, Base, Args... > RE::BSScript::NF_util::NativeFunctionBase RE::BSScript::IFunction RE::BSIntrusiveRefCounted

Public Types

using result_type = callbackR
 
using base_type = Base
 
using function_type = F
 
- Public Types inherited from RE::BSScript::NativeFunction< IS_LONG, F, std::underlying_type_t< callbackR >, Base, Args... >
using result_type = std::underlying_type_t< callbackR >
 
using base_type = Base
 
using function_type = F
 
- Public Types inherited from RE::BSScript::IFunction
enum class  FunctionType { kNormal = 0 , kGetter = 1 , kSetter = 2 }
 
enum class  CallResult {
  kCompleted = 0 , kSetupForVM = 1 , kInProgress = 2 , kFailedRetry = 3 ,
  kFailedAbort = 4
}
 

Public Member Functions

 NativeLatentFunction ()=delete
 
 NativeLatentFunction (const NativeLatentFunction &)=delete
 
 NativeLatentFunction (NativeLatentFunction &&)=delete
 
 NativeLatentFunction (std::string_view a_fnName, std::string_view a_className, function_type a_callback)
 
 ~NativeLatentFunction () override=default
 
- Public Member Functions inherited from RE::BSScript::NativeFunction< IS_LONG, F, std::underlying_type_t< callbackR >, Base, Args... >
 NativeFunction ()=delete
 
 NativeFunction (const NativeFunction &)=delete
 
 NativeFunction (NativeFunction &&)=delete
 
 NativeFunction (std::string_view a_fnName, std::string_view a_className, function_type a_callback)
 
 ~NativeFunction () override=default
 
bool HasStub () const override
 
bool MarshallAndDispatch (Variable &a_baseValue,[[maybe_unused]] Internal::VirtualMachine &a_vm,[[maybe_unused]] VMStackID a_stackID, Variable &a_resultValue, const StackFrame &a_frame) const override
 
- Public Member Functions inherited from RE::BSScript::NF_util::NativeFunctionBase
 NativeFunctionBase ()=delete
 
 NativeFunctionBase (std::string_view a_fnName, std::string_view a_className, bool a_isStatic, std::uint16_t a_numParams)
 
 ~NativeFunctionBase () override=default
 
const BSFixedStringGetName () const override
 
const BSFixedStringGetObjectTypeName () const override
 
const BSFixedStringGetStateName () const override
 
TypeInfo GetReturnType () const override
 
std::uint32_t GetParamCount () const override
 
void GetParam (std::uint32_t a_idx, BSFixedString &a_nameOut, TypeInfo &a_typeOut) const override
 
std::uint32_t GetStackFrameSize () const override
 
bool GetIsNative () const override
 
bool GetIsStatic () const override
 
bool GetIsEmpty () const override
 
FunctionType GetFunctionType () const override
 
std::uint32_t GetUserFlags () const override
 
const BSFixedStringGetDocString () const override
 
void InsertLocals (StackFrame *a_frame) override
 
CallResult Call (const BSTSmartPointer< Stack > &a_stack, ErrorLogger *a_logger, Internal::VirtualMachine *a_vm, bool a_arg4) override
 
const BSFixedStringGetSourceFilename () const override
 
bool TranslateIPToLineNumber (std::uint32_t a_taskletExecutionOffset, std::uint32_t &a_lineNumberOut) const override
 
bool GetVarNameForStackIndex (std::uint32_t a_idx, BSFixedString &a_nameOut) const override
 
bool CanBeCalledFromTasklets () const override
 
void SetCallableFromTasklets (bool a_callable) override
 
virtual bool MarshallAndDispatch (Variable &a_baseValue, Internal::VirtualMachine &a_vm, VMStackID a_stackID, Variable &a_resultValue, const StackFrame &a_frame) const =0
 
const bool GetIsLatent () const
 
- Public Member Functions inherited from RE::BSScript::IFunction
 IFunction ()
 
virtual ~IFunction ()=default
 
- Public Member Functions inherited from RE::BSIntrusiveRefCounted
std::uint32_t IncRef () const
 
std::uint32_t DecRef () const
 
 TES_HEAP_REDEFINE_NEW ()
 

Additional Inherited Members

- Public Attributes inherited from RE::BSScript::IFunction
std::uint32_t pad0C
 
- Static Public Attributes inherited from RE::BSScript::NF_util::NativeFunctionBase
static constexpr auto RTTI = RTTI_BSScript__NF_util__NativeFunctionBase
 
static constexpr auto VTABLE = VTABLE_BSScript__NF_util__NativeFunctionBase
 
- Static Public Attributes inherited from RE::BSScript::IFunction
static constexpr auto RTTI = RTTI_BSScript__IFunction
 
static constexpr auto VTABLE = VTABLE_BSScript__IFunction
 
- Protected Attributes inherited from RE::BSScript::NativeFunction< IS_LONG, F, std::underlying_type_t< callbackR >, Base, Args... >
std::function< function_type_stub
 
- Protected Attributes inherited from RE::BSScript::NF_util::NativeFunctionBase
BSFixedString _name
 
BSFixedString _objName
 
BSFixedString _stateName { "" }
 
TypeInfo _retType
 
Internal::VDescTable _descTable
 
bool _isStatic
 
bool _isCallableFromTasklet { false }
 
bool _isLatent { false }
 
std::uint8_t _pad43 { 0 }
 
std::uint32_t _userFlags { 0 }
 
BSFixedString _docString
 
- Protected Attributes inherited from RE::BSIntrusiveRefCounted
volatile std::uint32_t _refCount { 0 }
 

Member Typedef Documentation

◆ base_type

template<bool IS_LONG, class F , class callbackR , class latentR , class Base , class... Args>
using RE::BSScript::NativeLatentFunction< IS_LONG, F, callbackR, latentR, Base, Args >::base_type = Base

◆ function_type

template<bool IS_LONG, class F , class callbackR , class latentR , class Base , class... Args>
using RE::BSScript::NativeLatentFunction< IS_LONG, F, callbackR, latentR, Base, Args >::function_type = F

◆ result_type

template<bool IS_LONG, class F , class callbackR , class latentR , class Base , class... Args>
using RE::BSScript::NativeLatentFunction< IS_LONG, F, callbackR, latentR, Base, Args >::result_type = callbackR

Constructor & Destructor Documentation

◆ NativeLatentFunction() [1/4]

template<bool IS_LONG, class F , class callbackR , class latentR , class Base , class... Args>
RE::BSScript::NativeLatentFunction< IS_LONG, F, callbackR, latentR, Base, Args >::NativeLatentFunction ( )
delete

◆ NativeLatentFunction() [2/4]

template<bool IS_LONG, class F , class callbackR , class latentR , class Base , class... Args>
RE::BSScript::NativeLatentFunction< IS_LONG, F, callbackR, latentR, Base, Args >::NativeLatentFunction ( const NativeLatentFunction< IS_LONG, F, callbackR, latentR, Base, Args > &  )
delete

◆ NativeLatentFunction() [3/4]

template<bool IS_LONG, class F , class callbackR , class latentR , class Base , class... Args>
RE::BSScript::NativeLatentFunction< IS_LONG, F, callbackR, latentR, Base, Args >::NativeLatentFunction ( NativeLatentFunction< IS_LONG, F, callbackR, latentR, Base, Args > &&  )
delete

◆ NativeLatentFunction() [4/4]

template<bool IS_LONG, class F , class callbackR , class latentR , class Base , class... Args>
RE::BSScript::NativeLatentFunction< IS_LONG, F, callbackR, latentR, Base, Args >::NativeLatentFunction ( std::string_view  a_fnName,
std::string_view  a_className,
function_type  a_callback 
)
inline

◆ ~NativeLatentFunction()

template<bool IS_LONG, class F , class callbackR , class latentR , class Base , class... Args>
RE::BSScript::NativeLatentFunction< IS_LONG, F, callbackR, latentR, Base, Args >::~NativeLatentFunction ( )
overridedefault

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