// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "AssetRegistry/AssetData.h" #include "UObject/ObjectMacros.h" #include "MVVMDebugItemId.h" #define UE_API MODELVIEWVIEWMODELDEBUGGER_API struct FMVVMViewDebugEntry; struct FMVVMViewClassDebugEntry; struct FMVVMViewModelDebugEntry; class UMVVMViewClass; namespace UE::MVVM { class FDebugSnapshot { private: TArray> Views; TArray> ViewClasses; TArray> ViewModels; public: TArrayView> GetViews() { return Views; } TArrayView> GetViewModels() { return ViewModels; } UE_API TSharedPtr FindView(FGuid Id) const; UE_API TSharedPtr FindViewModel(FGuid Id) const; static UE_API TSharedPtr CreateSnapshot(); private: UE_API TSharedRef FindOrAddViewClassEntry(const UMVVMViewClass* ViewClass); }; }; #undef UE_API