CommonLibSSE (Parapets fork)
RE::BSScript::IFunction Class Referenceabstract

#include <IFunction.h>

Inheritance diagram for RE::BSScript::IFunction:
RE::BSIntrusiveRefCounted RE::BSScript::Internal::ScriptFunction RE::BSScript::NF_util::NativeFunctionBase RE::BSScript::NativeFunction< true, F, bool, 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< F, R, 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< R(BSScript::IVirtualMachine *, Int, Cls, Args...), R, Cls, Args... > RE::NativeFunction< R(BSScript::IVirtualMachine *, Int, Cls, Args...), std::enable_if_t< BSScript::is_valid_latent_sig_v< Int, R, Cls, Args... > > >

Public Types

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

 IFunction ()
 
virtual ~IFunction ()=default
 
virtual const BSFixedStringGetName () const =0
 
virtual const BSFixedStringGetObjectTypeName () const =0
 
virtual const BSFixedStringGetStateName () const =0
 
virtual TypeInfo GetReturnType () const =0
 
virtual std::uint32_t GetParamCount () const =0
 
virtual void GetParam (std::uint32_t a_idx, BSFixedString &a_nameOut, TypeInfo &a_typeOut) const =0
 
virtual std::uint32_t GetStackFrameSize () const =0
 
virtual bool GetIsNative () const =0
 
virtual bool GetIsStatic () const =0
 
virtual bool GetIsEmpty () const =0
 
virtual FunctionType GetFunctionType () const =0
 
virtual std::uint32_t GetUserFlags () const =0
 
virtual const BSFixedStringGetDocString () const =0
 
virtual void InsertLocals (StackFrame *a_frame)=0
 
virtual CallResult Call (const BSTSmartPointer< Stack > &a_stack, ErrorLogger *a_logger, Internal::VirtualMachine *a_vm, bool a_arg4)=0
 
virtual const BSFixedStringGetSourceFilename () const =0
 
virtual bool TranslateIPToLineNumber (std::uint32_t a_indexPtr, std::uint32_t &a_lineNumberOut) const =0
 
virtual bool GetVarNameForStackIndex (std::uint32_t a_idx, BSFixedString &a_nameOut) const =0
 
virtual bool CanBeCalledFromTasklets () const =0
 
virtual void SetCallableFromTasklets (bool a_callable)=0
 
- Public Member Functions inherited from RE::BSIntrusiveRefCounted
std::uint32_t IncRef () const
 
std::uint32_t DecRef () const
 
 TES_HEAP_REDEFINE_NEW ()
 

Public Attributes

std::uint32_t pad0C
 

Static Public Attributes

static constexpr auto RTTI = RTTI_BSScript__IFunction
 

Additional Inherited Members

- Protected Attributes inherited from RE::BSIntrusiveRefCounted
volatile std::uint32_t _refCount { 0 }
 

Member Enumeration Documentation

◆ CallResult

Enumerator
kCompleted 
kSetupForVM 
kInProgress 
kFailedRetry 
kFailedAbort 

◆ FunctionType

Enumerator
kNormal 
kGetter 
kSetter 

Constructor & Destructor Documentation

◆ IFunction()

RE::BSScript::IFunction::IFunction ( )

◆ ~IFunction()

virtual RE::BSScript::IFunction::~IFunction ( )
virtualdefault

Member Function Documentation

◆ Call()

virtual CallResult RE::BSScript::IFunction::Call ( const BSTSmartPointer< Stack > &  a_stack,
ErrorLogger a_logger,
Internal::VirtualMachine a_vm,
bool  a_arg4 
)
pure virtual

◆ CanBeCalledFromTasklets()

virtual bool RE::BSScript::IFunction::CanBeCalledFromTasklets ( ) const
pure virtual

◆ GetDocString()

virtual const BSFixedString& RE::BSScript::IFunction::GetDocString ( ) const
pure virtual

◆ GetFunctionType()

virtual FunctionType RE::BSScript::IFunction::GetFunctionType ( ) const
pure virtual

◆ GetIsEmpty()

virtual bool RE::BSScript::IFunction::GetIsEmpty ( ) const
pure virtual

◆ GetIsNative()

virtual bool RE::BSScript::IFunction::GetIsNative ( ) const
pure virtual

◆ GetIsStatic()

virtual bool RE::BSScript::IFunction::GetIsStatic ( ) const
pure virtual

◆ GetName()

virtual const BSFixedString& RE::BSScript::IFunction::GetName ( ) const
pure virtual

◆ GetObjectTypeName()

virtual const BSFixedString& RE::BSScript::IFunction::GetObjectTypeName ( ) const
pure virtual

◆ GetParam()

virtual void RE::BSScript::IFunction::GetParam ( std::uint32_t  a_idx,
BSFixedString a_nameOut,
TypeInfo a_typeOut 
) const
pure virtual

◆ GetParamCount()

virtual std::uint32_t RE::BSScript::IFunction::GetParamCount ( ) const
pure virtual

◆ GetReturnType()

virtual TypeInfo RE::BSScript::IFunction::GetReturnType ( ) const
pure virtual

◆ GetSourceFilename()

virtual const BSFixedString& RE::BSScript::IFunction::GetSourceFilename ( ) const
pure virtual

◆ GetStackFrameSize()

virtual std::uint32_t RE::BSScript::IFunction::GetStackFrameSize ( ) const
pure virtual

◆ GetStateName()

virtual const BSFixedString& RE::BSScript::IFunction::GetStateName ( ) const
pure virtual

◆ GetUserFlags()

virtual std::uint32_t RE::BSScript::IFunction::GetUserFlags ( ) const
pure virtual

◆ GetVarNameForStackIndex()

virtual bool RE::BSScript::IFunction::GetVarNameForStackIndex ( std::uint32_t  a_idx,
BSFixedString a_nameOut 
) const
pure virtual

◆ InsertLocals()

virtual void RE::BSScript::IFunction::InsertLocals ( StackFrame a_frame)
pure virtual

◆ SetCallableFromTasklets()

virtual void RE::BSScript::IFunction::SetCallableFromTasklets ( bool  a_callable)
pure virtual

◆ TranslateIPToLineNumber()

virtual bool RE::BSScript::IFunction::TranslateIPToLineNumber ( std::uint32_t  a_indexPtr,
std::uint32_t &  a_lineNumberOut 
) const
pure virtual

Member Data Documentation

◆ pad0C

std::uint32_t RE::BSScript::IFunction::pad0C

◆ RTTI

constexpr auto RE::BSScript::IFunction::RTTI = RTTI_BSScript__IFunction
inlinestaticconstexpr

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