UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
VVMEngineEnvironment.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
9
10class FString;
11class UPackage;
12class UStruct;
13class UEnum;
15
16class FOutputDevice;
17namespace UE::Verse
18{
19struct FRuntimeType;
20}
21
22namespace uLang
23{
24class CTypeBase;
25class CScope;
26struct SBuildParams;
27} // namespace uLang
28
29namespace Verse
30{
31struct FAllocationContext;
32struct VClass;
33struct VPackage;
34struct VPropertyType;
35struct VTupleType;
36class CSymbolToResult;
37
38// This interface must be implemented if Verse needs to create UObject instances.
40{
41public:
42#if WITH_VERSE_BPVM
43 // Add persistent vars
45#endif
46
48
49#if WITH_VERSE_VM || defined(__INTELLISENSE__)
50 virtual bool FitsInPlayerMap(VValue Value) = 0;
51
52 virtual bool IsValidWeakMapKey(VValue Value) = 0;
53#endif
54
55 // Add session vars
57
58 // Initialize Predicts state
59 virtual void InitPredictsState(UObject* Object) = 0;
60
64
65#if WITH_VERSE_BPVM
66 virtual void TryBindVniType(UField* Type) = 0;
67#endif
68#if WITH_VERSE_VM || defined(__INTELLISENSE__)
69 // Create a property
70 virtual FProperty* CreateProperty(FAllocationContext Context, UPackage* Package, UStruct* Struct, FUtf8StringView PropertyName, FUtf8StringView CRCPropertyName, VValue Type, bool bIsNative, bool bIsInstanced) = 0;
71 virtual FProperty* CreateLegacyProperty(FAllocationContext Context, FVRestValueProperty* Property) = 0;
72
73 // Validate property information during code generation
74 virtual bool ValidateProperty(FAllocationContext Context, const FName& Name, VType* Type, const FProperty* ExistingProperty, bool bIsInstanced) = 0;
75
76 // Bind a native structure
77 virtual void TryBindVniType(VPackage* Scope, UStruct* Struct) = 0;
78
79 // Bind a native module
80 virtual void TryBindVniModule(VPackage* Scope, const FTopLevelAssetPath& Path) = 0;
81
82 // Create a new UPackage with the given package name
83 virtual UPackage* CreateUPackage(FAllocationContext Context, const TCHAR* PackageName) = 0;
84#endif // WITH_VERSE_VM
85};
86} // namespace Verse
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition NameTypes.h:617
Definition OutputDevice.h:133
Definition UnrealType.h:174
Definition StructuredArchiveSlots.h:52
Definition Array.h:670
Definition SharedPointer.h:153
Definition Class.h:2791
Definition Class.h:181
Definition Object.h:95
Definition Package.h:216
Definition Class.h:480
Definition VVMEngineEnvironment.h:40
virtual UE::Verse::FRuntimeType * ImportRuntimeTypeFromText(const TCHAR *&InputCursor, FOutputDevice *ErrorText)=0
virtual void ArchiveType(FStructuredArchive::FSlot Slot, UE::Verse::FRuntimeType *&Type)=0
virtual void AddSessionVars(UObject *Object, const TArray< FVerseSessionVar > &Vars)=0
virtual TSharedRef< IVersePersistence > GetPersistence()=0
virtual void InitPredictsState(UObject *Object)=0
virtual void ExportRuntimeTypeToText(FString &OutputString, UE::Verse::FRuntimeType &Type)=0
Definition SemanticScope.h:73
Base class for all types.
Definition SemanticTypes.h:138
Definition VBPVMRuntimeType.cpp:8
Definition Archive.h:36
Definition VVMEngineEnvironment.h:23
Definition TopLevelAssetPath.h:38
Definition VBPVMRuntimeType.h:40
Definition CompilerTypes.h:114