unity/EditorPlugin/Profiler/Adapters/ReflectionBasedAdapters/SnapshotNavigation/CPUProfilerModuleAdapter.cs (36 lines of code) (raw):
#nullable enable
using JetBrains.Diagnostics;
using JetBrains.Rider.Unity.Editor.Profiler.Adapters.Interfaces;
namespace JetBrains.Rider.Unity.Editor.Profiler.Adapters.ReflectionBasedAdapters.SnapshotNavigation
{
internal class CPUProfilerModuleAdapter : ICPUProfilerModuleAdapter
{
private static readonly ILog ourLogger = Log.GetLog(nameof(CPUProfilerModuleAdapter));
private readonly AbstractAdaptersFactory myAdaptersFactory;
private readonly object myModule;
private readonly CPUProfilerModuleReflectionData myReflectionData;
internal CPUProfilerModuleAdapter(object module, CPUProfilerModuleReflectionData reflectionData,
AbstractAdaptersFactory adaptersFactory)
{
myModule = module;
myReflectionData = reflectionData;
myAdaptersFactory = adaptersFactory;
}
public IProfilerFrameDataHierarchyViewAdapter? GetFrameDataHierarchyView()
{
var treeView = myReflectionData.FrameDataHierarchyView?.GetValue(myModule);
return myAdaptersFactory.CreateProfilerFrameDataHierarchyViewAdapter(treeView);
}
private object? GetTimeLineGUIObject()
{
if (myReflectionData.TimeLineGUIFieldInfo == null)
{
ourLogger.Verbose(
$"Can't get {nameof(GetTimeLineGUIObject)}: {nameof(myReflectionData.TimeLineGUIFieldInfo)} is null.");
return null;
}
var timeLineGUIObject = myReflectionData.TimeLineGUIFieldInfo.GetValue(myModule);
return timeLineGUIObject;
}
}
}