CommonLibSSE (powerof3)
RE::BSScript::Internal::VirtualMachine Class Reference

#include <VirtualMachine.h>

Inheritance diagram for RE::BSScript::Internal::VirtualMachine:
RE::BSScript::IVirtualMachine RE::BSScript::IVMObjectBindInterface RE::BSScript::IVMSaveLoadInterface RE::BSScript::IVMDebugInterface RE::BSTEventSource< StatsEvent > RE::BSIntrusiveRefCounted

Classes

struct  QueuedUnbindRefs
 

Public Member Functions

 ~VirtualMachine () override
 
void SetLinkedCallback (ITypeLinkedCallback *a_callback) override
 
void TraceStack (const char *a_str, VMStackID a_stackID, Severity a_severity=Severity::kInfo) override
 
void Unk_03 (void) override
 
void Update (float a_budget) override
 
void UpdateTasklets (float a_budget) override
 
void SetOverstressed (bool a_set) override
 
bool IsCompletelyFrozen () const override
 
bool RegisterObjectType (VMTypeID a_typeID, const char *a_className) override
 
bool GetScriptObjectType1 (const BSFixedString &a_className, BSTSmartPointer< ObjectTypeInfo > &a_outTypeInfoPtr) override
 
bool GetScriptObjectType2 (VMTypeID a_typeID, BSTSmartPointer< ObjectTypeInfo > &a_outTypeInfoPtr) override
 
bool GetScriptObjectTypeNoLoad1 (const BSFixedString &a_className, BSTSmartPointer< ObjectTypeInfo > &a_typeInfoPtr) const override
 
bool GetScriptObjectTypeNoLoad2 (VMTypeID a_typeID, BSTSmartPointer< ObjectTypeInfo > &a_outTypeInfoPtr) const override
 
bool GetTypeIDForScriptObject (const BSFixedString &a_className, VMTypeID &a_typeID) const override
 
void GetScriptObjectsWithATypeID (BSScrapArray< BSFixedString > &a_results) const override
 
bool GetParentNativeType (const BSFixedString &a_className, BSTSmartPointer< ObjectTypeInfo > &a_typeInfoPtr) override
 
bool TypeIsValid (const BSFixedString &a_className) override
 
bool ReloadType (const char *a_className) override
 
void TasksToJobs (BSJobs::JobList &a_jobList) override
 
void CalculateFullReloadList (void) const override
 
bool CreateObject1 (const BSFixedString &a_className, void *a_property, BSTSmartPointer< Object > &a_objPtr) override
 
bool CreateObject2 (const BSFixedString &a_className, BSTSmartPointer< Object > &a_result) override
 
bool CreateArray1 (const TypeInfo &a_typeInfo, std::uint32_t a_size, BSTSmartPointer< Array > &a_arrayPtr) override
 
bool CreateArray2 (TypeInfo::RawType a_typeID, const BSFixedString &a_className, std::uint32_t a_size, BSTSmartPointer< Array > &a_arrayPtr) override
 
bool BindNativeMethod (IFunction *a_fn) override
 
void SetCallableFromTasklets1 (const char *a_className, const char *a_stateName, const char *a_fnName, bool a_callable) override
 
void SetCallableFromTasklets2 (const char *a_className, const char *a_fnName, bool a_callable) override
 
void ForEachBoundObject (VMHandle a_handle, IForEachScriptObjectFunctor *a_functor) override
 
bool FindBoundObject (VMHandle a_handle, const char *a_className, BSTSmartPointer< Object > &a_result) const override
 
void MoveBoundObjects (VMHandle a_from, VMHandle a_to) override
 
void ResetAllBoundObjects (VMHandle a_handle) override
 
bool CastObject (const BSTSmartPointer< Object > &a_fromObjPtr, const BSTSmartPointer< ObjectTypeInfo > &a_toTypeInfoPtr, BSTSmartPointer< Object > &a_toObjPtr) override
 
bool SetPropertyValue (BSTSmartPointer< Object > &a_obj, const char *a_propertyName, Variable &a_setVal) override
 
bool GetPropertyValue (BSTSmartPointer< Object > &a_obj, const char *a_propertyName, Variable &a_getVal) override
 
bool GetVariableValue1 (const BSTSmartPointer< Object > &a_objPtr, std::uint32_t a_index, Variable &a_out) const override
 
bool GetVariableValue2 (VMHandle a_handle, const BSFixedString &a_className, std::int32_t a_variableIndex, Variable &a_out) const override
 
void SendEvent (VMHandle a_handle, const BSFixedString &a_eventName, IFunctionArguments *a_args) override
 
void SendEventAll (const BSFixedString &a_eventName, IFunctionArguments *a_args) override
 
bool DispatchStaticCall (const BSFixedString &a_className, const BSFixedString &a_fnName, IFunctionArguments *a_args, BSTSmartPointer< IStackCallbackFunctor > &a_result) override
 
bool DispatchMethodCall1 (BSTSmartPointer< Object > &a_obj, const BSFixedString &a_fnName, IFunctionArguments *a_args, BSTSmartPointer< IStackCallbackFunctor > &a_result) override
 
bool DispatchMethodCall2 (VMHandle a_handle, const BSFixedString &a_className, const BSFixedString &a_fnName, IFunctionArguments *a_args, BSTSmartPointer< IStackCallbackFunctor > &a_result) override
 
bool DispatchUnboundMethodCall (void) override
 
bool IsWaitingOnLatent (VMStackID a_stackID) const override
 
void ReturnFromLatent (VMStackID a_stackID, const Variable &a_val) override
 
ErrorLoggerGetErrorLogger () override
 
IObjectHandlePolicyGetObjectHandlePolicy1 () override
 
const IObjectHandlePolicyGetObjectHandlePolicy2 () const override
 
ObjectBindPolicyGetObjectBindPolicy1 () override
 
const ObjectBindPolicyGetObjectBindPolicy2 () const override
 
ISavePatcherInterfaceGetSavePatcherInterface () override
 
void RegisterForLogEvent (BSTEventSink< LogEvent > *a_sink) override
 
void UnregisterForLogEvent (BSTEventSink< LogEvent > *a_sink) override
 
void RegisterForStatsEvent (BSTEventSink< StatsEvent > *a_sink) override
 
void UnregisterForStatsEvent (BSTEventSink< StatsEvent > *a_sink) override
 
VMHandle GetBoundHandle (const BSTSmartPointer< Object > &a_objPtr) const override
 
bool TypeCanBeBound (const BSFixedString &a_className, VMHandle a_handle) override
 
void BindObject (BSTSmartPointer< Object > &a_objPtr, VMHandle a_handle, bool a_conditional) override
 
void HandleLoadedBinding (BSTSmartPointer< Object > &a_objPtr, VMHandle a_handle, bool a_conditional) override
 
void RemoveAllBoundObjects (VMHandle a_handle) override
 
void RemoveAllDiskLoadedBoundObjects (VMHandle a_handle) override
 
void HandleCObjectDeletion (VMHandle a_handle) override
 
void UnbindObject (const BSTSmartPointer< Object > &a_objPtr) override
 
bool CreateObjectWithProperties (const BSFixedString &a_className, std::uint32_t a_numProperties, BSTSmartPointer< Object > &a_objPtr) override
 
bool InitObjectProperties (BSTSmartPointer< Object > &a_objPtr, void *a_property, bool a_arg3) override
 
- Public Member Functions inherited from RE::BSScript::IVirtualMachine
virtual ~IVirtualMachine ()
 
bool CreateArray (const TypeInfo &a_typeInfo, std::uint32_t a_size, BSTSmartPointer< Array > &a_arrayPtr)
 
bool CreateArray (TypeInfo::RawType a_typeID, const BSFixedString &a_className, std::uint32_t a_size, BSTSmartPointer< Array > &a_arrayPtr)
 
bool CreateObject (const BSFixedString &a_className, void *a_property, BSTSmartPointer< Object > &a_objPtr)
 
bool CreateObject (const BSFixedString &a_className, BSTSmartPointer< Object > &a_result)
 
bool DispatchMethodCall (BSTSmartPointer< Object > &a_obj, const BSFixedString &a_fnName, IFunctionArguments *a_args, BSTSmartPointer< IStackCallbackFunctor > &a_result)
 
bool DispatchMethodCall (VMHandle a_handle, const BSFixedString &a_className, const BSFixedString &a_fnName, IFunctionArguments *a_args, BSTSmartPointer< IStackCallbackFunctor > &a_result)
 
ObjectBindPolicyGetObjectBindPolicy ()
 
const ObjectBindPolicyGetObjectBindPolicy () const
 
IObjectHandlePolicyGetObjectHandlePolicy ()
 
const IObjectHandlePolicyGetObjectHandlePolicy () const
 
bool GetScriptObjectType (const BSFixedString &a_className, BSTSmartPointer< ObjectTypeInfo > &a_outTypeInfoPtr)
 
bool GetScriptObjectType (VMTypeID a_typeID, BSTSmartPointer< ObjectTypeInfo > &a_outTypeInfoPtr)
 
bool GetScriptObjectTypeNoLoad (const BSFixedString &a_className, BSTSmartPointer< ObjectTypeInfo > &a_typeInfoPtr) const
 
bool GetScriptObjectTypeNoLoad (VMTypeID a_typeID, BSTSmartPointer< ObjectTypeInfo > &a_outTypeInfoPtr) const
 
bool GetVariableValue (const BSTSmartPointer< Object > &a_objPtr, std::uint32_t a_index, Variable &a_out) const
 
bool GetVariableValue (VMHandle a_handle, const BSFixedString &a_className, std::int32_t a_variableIndex, Variable &a_out) const
 
template<class F >
void RegisterFunction (std::string_view a_fnName, std::string_view a_className, F a_callback, bool a_callableFromTasklets=false)
 
void SetCallableFromTasklets (const char *a_className, const char *a_stateName, const char *a_fnName, bool a_callable)
 
void SetCallableFromTasklets (const char *a_className, const char *a_fnName, bool a_callable)
 
void TraceForm (TESForm *a_form, const char *a_str, VMStackID a_stackID, Severity a_severity)
 
void VTraceStack (const char *a_fmt, VMStackID a_stackID, Severity a_severity=Severity::kInfo,...)
 
- Public Member Functions inherited from RE::BSIntrusiveRefCounted
std::uint32_t IncRef () const
 
std::uint32_t DecRef () const
 
 TES_HEAP_REDEFINE_NEW ()
 
- Public Member Functions inherited from RE::BSScript::IVMObjectBindInterface
virtual ~IVMObjectBindInterface ()
 
- Public Member Functions inherited from RE::BSScript::IVMSaveLoadInterface
virtual ~IVMSaveLoadInterface ()
 
virtual void Unk_01 (void)=0
 
virtual void Unk_02 (void)=0
 
virtual void Unk_04 (void)=0
 
virtual void Unk_05 (void)=0
 
virtual void Unk_06 (void)=0
 
virtual void Unk_07 (void)=0
 
virtual void Unk_08 (void)=0
 
virtual void Unk_09 (void)=0
 
virtual void Unk_0A (void)=0
 
virtual void Unk_0B (void)=0
 
virtual void Unk_0C (void)=0
 
virtual void Unk_0D (void)=0
 
virtual void Unk_0E (void)=0
 
virtual void Unk_0F (void)=0
 
virtual void Unk_10 (void)=0
 
virtual void Unk_11 (void)=0
 
virtual void Unk_12 (void)=0
 
virtual void Unk_13 (void)=0
 
virtual void Unk_14 (void)=0
 
virtual void Unk_15 (void)=0
 
virtual void Unk_16 (void)=0
 
- Public Member Functions inherited from RE::BSScript::IVMDebugInterface
virtual ~IVMDebugInterface ()
 
virtual void Unk_01 (void)=0
 
- Public Member Functions inherited from RE::BSTEventSource< StatsEvent >
 BSTEventSource ()
 
void AddEventSink (Sink *a_eventSink)
 
void RemoveEventSink (Sink *a_eventSink)
 
void SendEvent (const StatsEvent *a_event)
 
void operator() (const StatsEvent *a_event)
 

Static Public Member Functions

static VirtualMachineGetSingleton ()
 

Public Attributes

ErrorLoggererrorLogger
 
IMemoryPagePolicymemoryPagePolicy
 
IObjectHandlePolicyhandlePolicy
 
ObjectBindPolicyobjectBindPolicy
 
IFreezeQueryfreezeQuery
 
IStackCallbackSaveInterfacestackCallbackSaveInterface
 
IProfilePolicyprofilePolicy
 
ISavePatcherInterfacesavePatcherInterface
 
BSSpinLock typeInfoLock
 
LinkerProcessor linker
 
BSTHashMap< BSFixedString, BSTSmartPointer< ObjectTypeInfo > > objectTypeMap
 
BSTHashMap< VMTypeID, BSFixedStringtypeIDToObjectType
 
BSTHashMap< BSFixedString, VMTypeIDobjectTypeToTypeID
 
BSTArray< BSTSmartPointer< ObjectTypeInfo > > typesToUnload
 
BSSpinLock funcQueueLock
 
BSTStaticFreeList< FunctionMessage, 1024 > funcMsgPool
 
BSTCommonLLMessageQueue< FunctionMessagefuncMsgQueue
 
BSTArray< FunctionMessageoverflowFuncMsgs
 
BSTArray< CodeTasklet * > vmTasks
 
std::uint32_t uiWaitingFunctionMessages
 
bool overstressed
 
bool initialized
 
std::uint16_t pad827E
 
BSTCommonStaticMessageQueue< SuspendedStack, 128 > suspendQueue1
 
BSTCommonStaticMessageQueue< SuspendedStack, 128 > suspendQueue2
 
BSTArray< SuspendedStackoverflowSuspendArray1
 
BSTArray< SuspendedStackoverflowSuspendArray2
 
BSSpinLock suspendQueueLock
 
BSTCommonStaticMessageQueue< SuspendedStack, 128 > * stacksToResume
 
BSTArray< SuspendedStack > * stacksToResumeOverflow
 
BSTCommonStaticMessageQueue< SuspendedStack, 128 > * stacksToSuspend
 
BSTArray< SuspendedStack > * stacksToSuspendOverflow
 
BSSpinLock runningStacksLock
 
BSTHashMap< VMStackID, BSTSmartPointer< Stack > > allRunningStacks
 
BSTHashMap< VMStackID, BSTSmartPointer< Stack > > waitingLatentReturns
 
VMStackID nextStackID
 
BSSpinLock frozenStacksLock
 
std::uint32_t unk938C
 
std::uint64_t unk9390
 
std::uint64_t unk9398
 
BSSpinLock attachedScriptsLock
 
BSTHashMap< VMHandle, BSTSmallSharedArray< AttachedScript > > attachedScripts
 
std::uint64_t unk93D8
 
BSTArray< void * > unk93E0
 
BSSpinLock arraysLock
 
std::uint32_t nextArrayToClean
 
std::uint32_t pad9404
 
BSTArray< BSTSmartPointer< Array > > arrays
 
BSSpinLock objectResetLock
 
BSTArray< BSTSmartPointer< Object > > objectsAwaitingReset
 
std::uint64_t unk9440
 
BSTHashMap< UnkKey, UnkValueunk9448
 
BSTHashMap< UnkKey, UnkValueunk9478
 
BSSpinLock queuedUnbindLock
 
BSTArray< QueuedUnbindRefsqueuedUnbinds
 
std::uint64_t unk94C8
 
std::uint64_t unk94D0
 
std::uint64_t unk94D8
 
std::uint64_t unk94E0
 
std::uint64_t unk94E8
 
std::uint64_t unk94F0
 
std::uint64_t unk94F8
 
std::uint64_t unk9500
 
std::uint64_t unk9508
 
std::uint64_t unk9518
 
- Public Attributes inherited from RE::BSScript::IVirtualMachine
std::uint32_t pad0C
 
- Public Attributes inherited from RE::BSTEventSource< StatsEvent >
BSTArray< Sink * > sinks
 
BSTArray< Sink * > pendingRegisters
 
BSTArray< Sink * > pendingUnregisters
 
BSSpinLock lock
 
bool notifying
 
std::uint8_t pad51
 
std::uint16_t pad52
 
std::uint32_t pad54
 

Static Public Attributes

static constexpr auto RTTI = RTTI_BSScript__Internal__VirtualMachine
 
- Static Public Attributes inherited from RE::BSScript::IVirtualMachine
static constexpr auto RTTI = RTTI_BSScript__IVirtualMachine
 
- Static Public Attributes inherited from RE::BSScript::IVMObjectBindInterface
static constexpr auto RTTI = RTTI_BSScript__IVMObjectBindInterface
 
- Static Public Attributes inherited from RE::BSScript::IVMSaveLoadInterface
static constexpr auto RTTI = RTTI_BSScript__IVMSaveLoadInterface
 
- Static Public Attributes inherited from RE::BSScript::IVMDebugInterface
static constexpr auto RTTI = RTTI_BSScript__IVMDebugInterface
 

Additional Inherited Members

- Public Types inherited from RE::BSScript::IVirtualMachine
using Severity = BSScript::ErrorLogger::Severity
 
- Public Types inherited from RE::BSTEventSource< StatsEvent >
using Sink = BSTEventSink< StatsEvent >
 
- Protected Attributes inherited from RE::BSIntrusiveRefCounted
volatile std::uint32_t _refCount { 0 }
 

Constructor & Destructor Documentation

◆ ~VirtualMachine()

RE::BSScript::Internal::VirtualMachine::~VirtualMachine ( )
override

Member Function Documentation

◆ BindNativeMethod()

bool RE::BSScript::Internal::VirtualMachine::BindNativeMethod ( IFunction a_fn)
overridevirtual

◆ BindObject()

void RE::BSScript::Internal::VirtualMachine::BindObject ( BSTSmartPointer< Object > &  a_objPtr,
VMHandle  a_handle,
bool  a_conditional 
)
overridevirtual

◆ CalculateFullReloadList()

void RE::BSScript::Internal::VirtualMachine::CalculateFullReloadList ( void  ) const
overridevirtual

◆ CastObject()

bool RE::BSScript::Internal::VirtualMachine::CastObject ( const BSTSmartPointer< Object > &  a_fromObjPtr,
const BSTSmartPointer< ObjectTypeInfo > &  a_toTypeInfoPtr,
BSTSmartPointer< Object > &  a_toObjPtr 
)
overridevirtual

◆ CreateArray1()

bool RE::BSScript::Internal::VirtualMachine::CreateArray1 ( const TypeInfo a_typeInfo,
std::uint32_t  a_size,
BSTSmartPointer< Array > &  a_arrayPtr 
)
overridevirtual

◆ CreateArray2()

bool RE::BSScript::Internal::VirtualMachine::CreateArray2 ( TypeInfo::RawType  a_typeID,
const BSFixedString a_className,
std::uint32_t  a_size,
BSTSmartPointer< Array > &  a_arrayPtr 
)
overridevirtual

◆ CreateObject1()

bool RE::BSScript::Internal::VirtualMachine::CreateObject1 ( const BSFixedString a_className,
void *  a_property,
BSTSmartPointer< Object > &  a_objPtr 
)
overridevirtual

◆ CreateObject2()

bool RE::BSScript::Internal::VirtualMachine::CreateObject2 ( const BSFixedString a_className,
BSTSmartPointer< Object > &  a_result 
)
overridevirtual

◆ CreateObjectWithProperties()

bool RE::BSScript::Internal::VirtualMachine::CreateObjectWithProperties ( const BSFixedString a_className,
std::uint32_t  a_numProperties,
BSTSmartPointer< Object > &  a_objPtr 
)
overridevirtual

◆ DispatchMethodCall1()

bool RE::BSScript::Internal::VirtualMachine::DispatchMethodCall1 ( BSTSmartPointer< Object > &  a_obj,
const BSFixedString a_fnName,
IFunctionArguments a_args,
BSTSmartPointer< IStackCallbackFunctor > &  a_result 
)
overridevirtual

◆ DispatchMethodCall2()

bool RE::BSScript::Internal::VirtualMachine::DispatchMethodCall2 ( VMHandle  a_handle,
const BSFixedString a_className,
const BSFixedString a_fnName,
IFunctionArguments a_args,
BSTSmartPointer< IStackCallbackFunctor > &  a_result 
)
overridevirtual

◆ DispatchStaticCall()

bool RE::BSScript::Internal::VirtualMachine::DispatchStaticCall ( const BSFixedString a_className,
const BSFixedString a_fnName,
IFunctionArguments a_args,
BSTSmartPointer< IStackCallbackFunctor > &  a_result 
)
overridevirtual

◆ DispatchUnboundMethodCall()

bool RE::BSScript::Internal::VirtualMachine::DispatchUnboundMethodCall ( void  )
overridevirtual

◆ FindBoundObject()

bool RE::BSScript::Internal::VirtualMachine::FindBoundObject ( VMHandle  a_handle,
const char *  a_className,
BSTSmartPointer< Object > &  a_result 
) const
overridevirtual

◆ ForEachBoundObject()

void RE::BSScript::Internal::VirtualMachine::ForEachBoundObject ( VMHandle  a_handle,
IForEachScriptObjectFunctor *  a_functor 
)
overridevirtual

◆ GetBoundHandle()

VMHandle RE::BSScript::Internal::VirtualMachine::GetBoundHandle ( const BSTSmartPointer< Object > &  a_objPtr) const
overridevirtual

◆ GetErrorLogger()

ErrorLogger* RE::BSScript::Internal::VirtualMachine::GetErrorLogger ( )
overridevirtual

◆ GetObjectBindPolicy1()

ObjectBindPolicy* RE::BSScript::Internal::VirtualMachine::GetObjectBindPolicy1 ( )
overridevirtual

◆ GetObjectBindPolicy2()

const ObjectBindPolicy* RE::BSScript::Internal::VirtualMachine::GetObjectBindPolicy2 ( ) const
overridevirtual

◆ GetObjectHandlePolicy1()

IObjectHandlePolicy* RE::BSScript::Internal::VirtualMachine::GetObjectHandlePolicy1 ( )
overridevirtual

◆ GetObjectHandlePolicy2()

const IObjectHandlePolicy* RE::BSScript::Internal::VirtualMachine::GetObjectHandlePolicy2 ( ) const
overridevirtual

◆ GetParentNativeType()

bool RE::BSScript::Internal::VirtualMachine::GetParentNativeType ( const BSFixedString a_className,
BSTSmartPointer< ObjectTypeInfo > &  a_typeInfoPtr 
)
overridevirtual

◆ GetPropertyValue()

bool RE::BSScript::Internal::VirtualMachine::GetPropertyValue ( BSTSmartPointer< Object > &  a_obj,
const char *  a_propertyName,
Variable a_getVal 
)
overridevirtual

◆ GetSavePatcherInterface()

ISavePatcherInterface* RE::BSScript::Internal::VirtualMachine::GetSavePatcherInterface ( )
overridevirtual

◆ GetScriptObjectsWithATypeID()

void RE::BSScript::Internal::VirtualMachine::GetScriptObjectsWithATypeID ( BSScrapArray< BSFixedString > &  a_results) const
overridevirtual

◆ GetScriptObjectType1()

bool RE::BSScript::Internal::VirtualMachine::GetScriptObjectType1 ( const BSFixedString a_className,
BSTSmartPointer< ObjectTypeInfo > &  a_outTypeInfoPtr 
)
overridevirtual

◆ GetScriptObjectType2()

bool RE::BSScript::Internal::VirtualMachine::GetScriptObjectType2 ( VMTypeID  a_typeID,
BSTSmartPointer< ObjectTypeInfo > &  a_outTypeInfoPtr 
)
overridevirtual

◆ GetScriptObjectTypeNoLoad1()

bool RE::BSScript::Internal::VirtualMachine::GetScriptObjectTypeNoLoad1 ( const BSFixedString a_className,
BSTSmartPointer< ObjectTypeInfo > &  a_typeInfoPtr 
) const
overridevirtual

◆ GetScriptObjectTypeNoLoad2()

bool RE::BSScript::Internal::VirtualMachine::GetScriptObjectTypeNoLoad2 ( VMTypeID  a_typeID,
BSTSmartPointer< ObjectTypeInfo > &  a_outTypeInfoPtr 
) const
overridevirtual

◆ GetSingleton()

static VirtualMachine* RE::BSScript::Internal::VirtualMachine::GetSingleton ( )
static

◆ GetTypeIDForScriptObject()

bool RE::BSScript::Internal::VirtualMachine::GetTypeIDForScriptObject ( const BSFixedString a_className,
VMTypeID a_typeID 
) const
overridevirtual

◆ GetVariableValue1()

bool RE::BSScript::Internal::VirtualMachine::GetVariableValue1 ( const BSTSmartPointer< Object > &  a_objPtr,
std::uint32_t  a_index,
Variable a_out 
) const
overridevirtual

◆ GetVariableValue2()

bool RE::BSScript::Internal::VirtualMachine::GetVariableValue2 ( VMHandle  a_handle,
const BSFixedString a_className,
std::int32_t  a_variableIndex,
Variable a_out 
) const
overridevirtual

◆ HandleCObjectDeletion()

void RE::BSScript::Internal::VirtualMachine::HandleCObjectDeletion ( VMHandle  a_handle)
overridevirtual

◆ HandleLoadedBinding()

void RE::BSScript::Internal::VirtualMachine::HandleLoadedBinding ( BSTSmartPointer< Object > &  a_objPtr,
VMHandle  a_handle,
bool  a_conditional 
)
overridevirtual

◆ InitObjectProperties()

bool RE::BSScript::Internal::VirtualMachine::InitObjectProperties ( BSTSmartPointer< Object > &  a_objPtr,
void *  a_property,
bool  a_arg3 
)
overridevirtual

◆ IsCompletelyFrozen()

bool RE::BSScript::Internal::VirtualMachine::IsCompletelyFrozen ( ) const
overridevirtual

◆ IsWaitingOnLatent()

bool RE::BSScript::Internal::VirtualMachine::IsWaitingOnLatent ( VMStackID  a_stackID) const
overridevirtual

◆ MoveBoundObjects()

void RE::BSScript::Internal::VirtualMachine::MoveBoundObjects ( VMHandle  a_from,
VMHandle  a_to 
)
overridevirtual

◆ RegisterForLogEvent()

void RE::BSScript::Internal::VirtualMachine::RegisterForLogEvent ( BSTEventSink< LogEvent > *  a_sink)
overridevirtual

◆ RegisterForStatsEvent()

void RE::BSScript::Internal::VirtualMachine::RegisterForStatsEvent ( BSTEventSink< StatsEvent > *  a_sink)
overridevirtual

◆ RegisterObjectType()

bool RE::BSScript::Internal::VirtualMachine::RegisterObjectType ( VMTypeID  a_typeID,
const char *  a_className 
)
overridevirtual

◆ ReloadType()

bool RE::BSScript::Internal::VirtualMachine::ReloadType ( const char *  a_className)
overridevirtual

◆ RemoveAllBoundObjects()

void RE::BSScript::Internal::VirtualMachine::RemoveAllBoundObjects ( VMHandle  a_handle)
overridevirtual

◆ RemoveAllDiskLoadedBoundObjects()

void RE::BSScript::Internal::VirtualMachine::RemoveAllDiskLoadedBoundObjects ( VMHandle  a_handle)
overridevirtual

◆ ResetAllBoundObjects()

void RE::BSScript::Internal::VirtualMachine::ResetAllBoundObjects ( VMHandle  a_handle)
overridevirtual

◆ ReturnFromLatent()

void RE::BSScript::Internal::VirtualMachine::ReturnFromLatent ( VMStackID  a_stackID,
const Variable a_val 
)
overridevirtual

◆ SendEvent()

void RE::BSScript::Internal::VirtualMachine::SendEvent ( VMHandle  a_handle,
const BSFixedString a_eventName,
IFunctionArguments a_args 
)
overridevirtual

◆ SendEventAll()

void RE::BSScript::Internal::VirtualMachine::SendEventAll ( const BSFixedString a_eventName,
IFunctionArguments a_args 
)
overridevirtual

◆ SetCallableFromTasklets1()

void RE::BSScript::Internal::VirtualMachine::SetCallableFromTasklets1 ( const char *  a_className,
const char *  a_stateName,
const char *  a_fnName,
bool  a_callable 
)
overridevirtual

◆ SetCallableFromTasklets2()

void RE::BSScript::Internal::VirtualMachine::SetCallableFromTasklets2 ( const char *  a_className,
const char *  a_fnName,
bool  a_callable 
)
overridevirtual

◆ SetLinkedCallback()

void RE::BSScript::Internal::VirtualMachine::SetLinkedCallback ( ITypeLinkedCallback *  a_callback)
overridevirtual

◆ SetOverstressed()

void RE::BSScript::Internal::VirtualMachine::SetOverstressed ( bool  a_set)
overridevirtual

◆ SetPropertyValue()

bool RE::BSScript::Internal::VirtualMachine::SetPropertyValue ( BSTSmartPointer< Object > &  a_obj,
const char *  a_propertyName,
Variable a_setVal 
)
overridevirtual

◆ TasksToJobs()

void RE::BSScript::Internal::VirtualMachine::TasksToJobs ( BSJobs::JobList &  a_jobList)
overridevirtual

◆ TraceStack()

void RE::BSScript::Internal::VirtualMachine::TraceStack ( const char *  a_str,
VMStackID  a_stackID,
Severity  a_severity = Severity::kInfo 
)
overridevirtual

◆ TypeCanBeBound()

bool RE::BSScript::Internal::VirtualMachine::TypeCanBeBound ( const BSFixedString a_className,
VMHandle  a_handle 
)
overridevirtual

◆ TypeIsValid()

bool RE::BSScript::Internal::VirtualMachine::TypeIsValid ( const BSFixedString a_className)
overridevirtual

◆ UnbindObject()

void RE::BSScript::Internal::VirtualMachine::UnbindObject ( const BSTSmartPointer< Object > &  a_objPtr)
overridevirtual

◆ Unk_03()

void RE::BSScript::Internal::VirtualMachine::Unk_03 ( void  )
overridevirtual

◆ UnregisterForLogEvent()

void RE::BSScript::Internal::VirtualMachine::UnregisterForLogEvent ( BSTEventSink< LogEvent > *  a_sink)
overridevirtual

◆ UnregisterForStatsEvent()

void RE::BSScript::Internal::VirtualMachine::UnregisterForStatsEvent ( BSTEventSink< StatsEvent > *  a_sink)
overridevirtual

◆ Update()

void RE::BSScript::Internal::VirtualMachine::Update ( float  a_budget)
overridevirtual

◆ UpdateTasklets()

void RE::BSScript::Internal::VirtualMachine::UpdateTasklets ( float  a_budget)
overridevirtual

Member Data Documentation

◆ allRunningStacks

BSTHashMap<VMStackID, BSTSmartPointer<Stack> > RE::BSScript::Internal::VirtualMachine::allRunningStacks

◆ arrays

BSTArray<BSTSmartPointer<Array> > RE::BSScript::Internal::VirtualMachine::arrays

◆ arraysLock

BSSpinLock RE::BSScript::Internal::VirtualMachine::arraysLock
mutable

◆ attachedScripts

BSTHashMap<VMHandle, BSTSmallSharedArray<AttachedScript> > RE::BSScript::Internal::VirtualMachine::attachedScripts

◆ attachedScriptsLock

BSSpinLock RE::BSScript::Internal::VirtualMachine::attachedScriptsLock
mutable

◆ errorLogger

ErrorLogger* RE::BSScript::Internal::VirtualMachine::errorLogger

◆ freezeQuery

IFreezeQuery* RE::BSScript::Internal::VirtualMachine::freezeQuery

◆ frozenStacksLock

BSSpinLock RE::BSScript::Internal::VirtualMachine::frozenStacksLock
mutable

◆ funcMsgPool

BSTStaticFreeList<FunctionMessage, 1024> RE::BSScript::Internal::VirtualMachine::funcMsgPool

◆ funcMsgQueue

BSTCommonLLMessageQueue<FunctionMessage> RE::BSScript::Internal::VirtualMachine::funcMsgQueue

◆ funcQueueLock

BSSpinLock RE::BSScript::Internal::VirtualMachine::funcQueueLock
mutable

◆ handlePolicy

IObjectHandlePolicy* RE::BSScript::Internal::VirtualMachine::handlePolicy

◆ initialized

bool RE::BSScript::Internal::VirtualMachine::initialized

◆ linker

LinkerProcessor RE::BSScript::Internal::VirtualMachine::linker

◆ memoryPagePolicy

IMemoryPagePolicy* RE::BSScript::Internal::VirtualMachine::memoryPagePolicy

◆ nextArrayToClean

std::uint32_t RE::BSScript::Internal::VirtualMachine::nextArrayToClean

◆ nextStackID

VMStackID RE::BSScript::Internal::VirtualMachine::nextStackID

◆ objectBindPolicy

ObjectBindPolicy* RE::BSScript::Internal::VirtualMachine::objectBindPolicy

◆ objectResetLock

BSSpinLock RE::BSScript::Internal::VirtualMachine::objectResetLock
mutable

◆ objectsAwaitingReset

BSTArray<BSTSmartPointer<Object> > RE::BSScript::Internal::VirtualMachine::objectsAwaitingReset

◆ objectTypeMap

BSTHashMap<BSFixedString, BSTSmartPointer<ObjectTypeInfo> > RE::BSScript::Internal::VirtualMachine::objectTypeMap

◆ objectTypeToTypeID

BSTHashMap<BSFixedString, VMTypeID> RE::BSScript::Internal::VirtualMachine::objectTypeToTypeID

◆ overflowFuncMsgs

BSTArray<FunctionMessage> RE::BSScript::Internal::VirtualMachine::overflowFuncMsgs

◆ overflowSuspendArray1

BSTArray<SuspendedStack> RE::BSScript::Internal::VirtualMachine::overflowSuspendArray1

◆ overflowSuspendArray2

BSTArray<SuspendedStack> RE::BSScript::Internal::VirtualMachine::overflowSuspendArray2

◆ overstressed

bool RE::BSScript::Internal::VirtualMachine::overstressed

◆ pad827E

std::uint16_t RE::BSScript::Internal::VirtualMachine::pad827E

◆ pad9404

std::uint32_t RE::BSScript::Internal::VirtualMachine::pad9404

◆ profilePolicy

IProfilePolicy* RE::BSScript::Internal::VirtualMachine::profilePolicy

◆ queuedUnbindLock

BSSpinLock RE::BSScript::Internal::VirtualMachine::queuedUnbindLock
mutable

◆ queuedUnbinds

BSTArray<QueuedUnbindRefs> RE::BSScript::Internal::VirtualMachine::queuedUnbinds

◆ RTTI

constexpr auto RE::BSScript::Internal::VirtualMachine::RTTI = RTTI_BSScript__Internal__VirtualMachine
inlinestaticconstexpr

◆ runningStacksLock

BSSpinLock RE::BSScript::Internal::VirtualMachine::runningStacksLock
mutable

◆ savePatcherInterface

ISavePatcherInterface* RE::BSScript::Internal::VirtualMachine::savePatcherInterface

◆ stackCallbackSaveInterface

IStackCallbackSaveInterface* RE::BSScript::Internal::VirtualMachine::stackCallbackSaveInterface

◆ stacksToResume

BSTCommonStaticMessageQueue<SuspendedStack, 128>* RE::BSScript::Internal::VirtualMachine::stacksToResume

◆ stacksToResumeOverflow

BSTArray<SuspendedStack>* RE::BSScript::Internal::VirtualMachine::stacksToResumeOverflow

◆ stacksToSuspend

BSTCommonStaticMessageQueue<SuspendedStack, 128>* RE::BSScript::Internal::VirtualMachine::stacksToSuspend

◆ stacksToSuspendOverflow

BSTArray<SuspendedStack>* RE::BSScript::Internal::VirtualMachine::stacksToSuspendOverflow

◆ suspendQueue1

BSTCommonStaticMessageQueue<SuspendedStack, 128> RE::BSScript::Internal::VirtualMachine::suspendQueue1

◆ suspendQueue2

BSTCommonStaticMessageQueue<SuspendedStack, 128> RE::BSScript::Internal::VirtualMachine::suspendQueue2

◆ suspendQueueLock

BSSpinLock RE::BSScript::Internal::VirtualMachine::suspendQueueLock
mutable

◆ typeIDToObjectType

BSTHashMap<VMTypeID, BSFixedString> RE::BSScript::Internal::VirtualMachine::typeIDToObjectType

◆ typeInfoLock

BSSpinLock RE::BSScript::Internal::VirtualMachine::typeInfoLock
mutable

◆ typesToUnload

BSTArray<BSTSmartPointer<ObjectTypeInfo> > RE::BSScript::Internal::VirtualMachine::typesToUnload

◆ uiWaitingFunctionMessages

std::uint32_t RE::BSScript::Internal::VirtualMachine::uiWaitingFunctionMessages

◆ unk938C

std::uint32_t RE::BSScript::Internal::VirtualMachine::unk938C

◆ unk9390

std::uint64_t RE::BSScript::Internal::VirtualMachine::unk9390

◆ unk9398

std::uint64_t RE::BSScript::Internal::VirtualMachine::unk9398

◆ unk93D8

std::uint64_t RE::BSScript::Internal::VirtualMachine::unk93D8

◆ unk93E0

BSTArray<void*> RE::BSScript::Internal::VirtualMachine::unk93E0

◆ unk9440

std::uint64_t RE::BSScript::Internal::VirtualMachine::unk9440

◆ unk9448

BSTHashMap<UnkKey, UnkValue> RE::BSScript::Internal::VirtualMachine::unk9448

◆ unk9478

BSTHashMap<UnkKey, UnkValue> RE::BSScript::Internal::VirtualMachine::unk9478

◆ unk94C8

std::uint64_t RE::BSScript::Internal::VirtualMachine::unk94C8

◆ unk94D0

std::uint64_t RE::BSScript::Internal::VirtualMachine::unk94D0

◆ unk94D8

std::uint64_t RE::BSScript::Internal::VirtualMachine::unk94D8

◆ unk94E0

std::uint64_t RE::BSScript::Internal::VirtualMachine::unk94E0

◆ unk94E8

std::uint64_t RE::BSScript::Internal::VirtualMachine::unk94E8

◆ unk94F0

std::uint64_t RE::BSScript::Internal::VirtualMachine::unk94F0

◆ unk94F8

std::uint64_t RE::BSScript::Internal::VirtualMachine::unk94F8

◆ unk9500

std::uint64_t RE::BSScript::Internal::VirtualMachine::unk9500

◆ unk9508

std::uint64_t RE::BSScript::Internal::VirtualMachine::unk9508

◆ unk9518

std::uint64_t RE::BSScript::Internal::VirtualMachine::unk9518

◆ vmTasks

BSTArray<CodeTasklet*> RE::BSScript::Internal::VirtualMachine::vmTasks

◆ waitingLatentReturns

BSTHashMap<VMStackID, BSTSmartPointer<Stack> > RE::BSScript::Internal::VirtualMachine::waitingLatentReturns

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