Files
UnrealEngine/Engine/Source/Developer/TraceInsightsFrontend/Private/InsightsFrontend/Common/InsightsAutomationController.h
2025-05-18 13:04:45 +08:00

52 lines
1.1 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "InsightsFrontend/ITraceInsightsFrontendModule.h"
#include "CoreMinimal.h"
#include "Logging/LogMacros.h"
#include "Containers/Ticker.h"
DECLARE_LOG_CATEGORY_EXTERN(InsightsAutomationController, Log, All);
namespace UE::Insights
{
class TRACEINSIGHTSFRONTEND_API FInsightsAutomationController : public TSharedFromThis<FInsightsAutomationController>
{
enum class ETestsState
{
NotStarted,
Running,
Finished,
};
public:
virtual ~FInsightsAutomationController();
virtual void Initialize();
bool Tick(float DeltaTime);
void SetAutoQuit(bool InAutoQuit) { bAutoQuit = InAutoQuit; }
bool GetAutoQuit() const { return bAutoQuit; }
void RunTests(const FString& InCmd);
private:
/** The delegate to be invoked when this manager ticks. */
FTickerDelegate OnTick;
/** Handle to the registered OnTick. */
FTSTicker::FDelegateHandle OnTickHandle;
FString CommandToExecute;
bool bAutoQuit = false;
ETestsState RunningTestsState = ETestsState::NotStarted;
static const TCHAR* AutoQuitMsgOnComplete;
};
} // namespace UE::Insights