CommonLibVR
RE::BSScript::NF_util::NativeFunctionBase Class Referenceabstract

#include <NativeFunctionBase.h>

Inheritance diagram for RE::BSScript::NF_util::NativeFunctionBase:
RE::BSScript::IFunction RE::BSIntrusiveRefCounted RE::BSScript::NativeFunction< IS_LONG, F, std::underlying_type_t< callbackR >, Base, Args... > RE::BSScript::NativeFunction< true, R(BSScript::IVirtualMachine *, Int, Cls, Args...), R, Cls, Args... > RE::BSScript::NativeFunction< false, R(Cls, Args...), R, Cls, Args... > RE::BSScript::NativeFunction< true, R(BSScript::Internal::VirtualMachine *, Int, Cls, Args...), R, Cls, Args... > RE::BSScript::NativeFunction< IS_LONG, F, R, Base, Args > RE::BSScript::NativeLatentFunction< IS_LONG, F, callbackR, latentR, Base, Args > RE::NativeFunction< R(BSScript::IVirtualMachine *, Int, Cls, Args...), std::enable_if_t< BSScript::is_valid_long_sig_v< Int, R, Cls, Args... > > > RE::NativeFunction< R(Cls, Args...), std::enable_if_t< BSScript::is_valid_short_sig_v< R, Cls, Args... > > > RE::NativeFunction< R(BSScript::Internal::VirtualMachine *, Int, Cls, Args...), std::enable_if_t< BSScript::is_valid_long_sig_v< Int, R, Cls, Args... > > > RE::BSScript::NativeLatentFunction< true, F(BSScript::Internal::VirtualMachine *, Int, Cls, Args...), F, R, Cls, Args... > RE::NativeLatentFunction< R, F(BSScript::Internal::VirtualMachine *, Int, Cls, Args...), std::enable_if_t< BSScript::is_valid_latent_long_sig_v< R, Int, F, Cls, Args... > > >

Public Member Functions

 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 HasStub () const =0
 
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 ()
 

Static Public Attributes

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

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 }
 

Additional Inherited Members

- 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 Attributes inherited from RE::BSScript::IFunction
std::uint32_t pad0C
 

Constructor & Destructor Documentation

◆ NativeFunctionBase() [1/2]

RE::BSScript::NF_util::NativeFunctionBase::NativeFunctionBase ( )
delete

◆ NativeFunctionBase() [2/2]

RE::BSScript::NF_util::NativeFunctionBase::NativeFunctionBase ( std::string_view  a_fnName,
std::string_view  a_className,
bool  a_isStatic,
std::uint16_t  a_numParams 
)
explicit

◆ ~NativeFunctionBase()

RE::BSScript::NF_util::NativeFunctionBase::~NativeFunctionBase ( )
overridedefault

Member Function Documentation

◆ Call()

CallResult RE::BSScript::NF_util::NativeFunctionBase::Call ( const BSTSmartPointer< Stack > &  a_stack,
ErrorLogger a_logger,
Internal::VirtualMachine a_vm,
bool  a_arg4 
)
overridevirtual

◆ CanBeCalledFromTasklets()

bool RE::BSScript::NF_util::NativeFunctionBase::CanBeCalledFromTasklets ( ) const
overridevirtual

◆ GetDocString()

const BSFixedString& RE::BSScript::NF_util::NativeFunctionBase::GetDocString ( ) const
overridevirtual

◆ GetFunctionType()

FunctionType RE::BSScript::NF_util::NativeFunctionBase::GetFunctionType ( ) const
overridevirtual

◆ GetIsEmpty()

bool RE::BSScript::NF_util::NativeFunctionBase::GetIsEmpty ( ) const
overridevirtual

◆ GetIsLatent()

const bool RE::BSScript::NF_util::NativeFunctionBase::GetIsLatent ( ) const

◆ GetIsNative()

bool RE::BSScript::NF_util::NativeFunctionBase::GetIsNative ( ) const
overridevirtual

◆ GetIsStatic()

bool RE::BSScript::NF_util::NativeFunctionBase::GetIsStatic ( ) const
overridevirtual

◆ GetName()

const BSFixedString& RE::BSScript::NF_util::NativeFunctionBase::GetName ( ) const
overridevirtual

◆ GetObjectTypeName()

const BSFixedString& RE::BSScript::NF_util::NativeFunctionBase::GetObjectTypeName ( ) const
overridevirtual

◆ GetParam()

void RE::BSScript::NF_util::NativeFunctionBase::GetParam ( std::uint32_t  a_idx,
BSFixedString a_nameOut,
TypeInfo a_typeOut 
) const
overridevirtual

◆ GetParamCount()

std::uint32_t RE::BSScript::NF_util::NativeFunctionBase::GetParamCount ( ) const
overridevirtual

◆ GetReturnType()

TypeInfo RE::BSScript::NF_util::NativeFunctionBase::GetReturnType ( ) const
overridevirtual

◆ GetSourceFilename()

const BSFixedString& RE::BSScript::NF_util::NativeFunctionBase::GetSourceFilename ( ) const
overridevirtual

◆ GetStackFrameSize()

std::uint32_t RE::BSScript::NF_util::NativeFunctionBase::GetStackFrameSize ( ) const
overridevirtual

◆ GetStateName()

const BSFixedString& RE::BSScript::NF_util::NativeFunctionBase::GetStateName ( ) const
overridevirtual

◆ GetUserFlags()

std::uint32_t RE::BSScript::NF_util::NativeFunctionBase::GetUserFlags ( ) const
overridevirtual

◆ GetVarNameForStackIndex()

bool RE::BSScript::NF_util::NativeFunctionBase::GetVarNameForStackIndex ( std::uint32_t  a_idx,
BSFixedString a_nameOut 
) const
overridevirtual

◆ HasStub()

◆ InsertLocals()

void RE::BSScript::NF_util::NativeFunctionBase::InsertLocals ( StackFrame a_frame)
overridevirtual

◆ MarshallAndDispatch()

virtual bool RE::BSScript::NF_util::NativeFunctionBase::MarshallAndDispatch ( Variable a_baseValue,
Internal::VirtualMachine a_vm,
VMStackID  a_stackID,
Variable a_resultValue,
const StackFrame a_frame 
) const
pure virtual

◆ SetCallableFromTasklets()

void RE::BSScript::NF_util::NativeFunctionBase::SetCallableFromTasklets ( bool  a_callable)
overridevirtual

◆ TranslateIPToLineNumber()

bool RE::BSScript::NF_util::NativeFunctionBase::TranslateIPToLineNumber ( std::uint32_t  a_taskletExecutionOffset,
std::uint32_t &  a_lineNumberOut 
) const
overridevirtual

Member Data Documentation

◆ _descTable

Internal::VDescTable RE::BSScript::NF_util::NativeFunctionBase::_descTable
protected

◆ _docString

BSFixedString RE::BSScript::NF_util::NativeFunctionBase::_docString
protected

◆ _isCallableFromTasklet

bool RE::BSScript::NF_util::NativeFunctionBase::_isCallableFromTasklet { false }
protected

◆ _isLatent

bool RE::BSScript::NF_util::NativeFunctionBase::_isLatent { false }
protected

◆ _isStatic

bool RE::BSScript::NF_util::NativeFunctionBase::_isStatic
protected

◆ _name

BSFixedString RE::BSScript::NF_util::NativeFunctionBase::_name
protected

◆ _objName

BSFixedString RE::BSScript::NF_util::NativeFunctionBase::_objName
protected

◆ _pad43

std::uint8_t RE::BSScript::NF_util::NativeFunctionBase::_pad43 { 0 }
protected

◆ _retType

TypeInfo RE::BSScript::NF_util::NativeFunctionBase::_retType
protected

◆ _stateName

BSFixedString RE::BSScript::NF_util::NativeFunctionBase::_stateName { "" }
protected

◆ _userFlags

std::uint32_t RE::BSScript::NF_util::NativeFunctionBase::_userFlags { 0 }
protected

◆ RTTI

constexpr auto RE::BSScript::NF_util::NativeFunctionBase::RTTI = RTTI_BSScript__NF_util__NativeFunctionBase
inlinestaticconstexpr

◆ VTABLE

constexpr auto RE::BSScript::NF_util::NativeFunctionBase::VTABLE = VTABLE_BSScript__NF_util__NativeFunctionBase
inlinestaticconstexpr

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