Files
UnrealEngine/Engine/Source/Developer/TraceServices/Private/Analyzers/TasksAnalysis.h
2025-05-18 13:04:45 +08:00

43 lines
1.0 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Trace/Analyzer.h"
namespace TraceServices
{
class IAnalysisSession;
class FTasksProvider;
// deserialises tasks traces and feeds them to FTasksProvider
class FTasksAnalyzer : public UE::Trace::IAnalyzer
{
public:
FTasksAnalyzer(IAnalysisSession& Session, FTasksProvider& TasksProvider);
virtual void OnAnalysisBegin(const FOnAnalysisContext& Context) override;
virtual bool OnEvent(uint16 RouteId, EStyle Style, const FOnEventContext& Context) override;
private:
enum : uint16
{
RouteId_Init,
RouteId_Created,
RouteId_Launched,
RouteId_Scheduled,
RouteId_SubsequentAdded,
RouteId_Started,
// `NestedAdded` was removed from `TaskTrace` but left here to avoid crashing TasksInsights when used with an old trace file
RouteId_NestedAdded,
RouteId_Finished,
RouteId_Completed,
RouteId_Destroyed,
RouteId_WaitingStarted,
RouteId_WaitingFinished,
};
IAnalysisSession& Session;
FTasksProvider& TasksProvider;
};
}