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

85 lines
1.7 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "Containers/Array.h"
#include "Containers/UnrealString.h"
#include "AutomationWorkerMessages.h"
class FAutomationTelemetry
: FNoncopyable
{
public:
/** Called to initialize the singleton. */
static void Initialize();
/** Helper to check if the Analytics provider is Initialized */
static bool IsInitialized();
public:
/** Handle adding telemetry data to output */
static void HandleAddTelemetry(const FAutomationWorkerTelemetryData& Data);
private:
static bool bIsInitialized;
static FString TelemetryDirectory;
static bool bResetTelemetryStorageOnNewSession;
enum Columns : uint8
{
Configuration,
Platform,
DateTime,
TestName,
Context,
DataPoint,
Measurement,
Count // number of columns
};
static FString ToColumnName(uint8 Index)
{
switch (Index)
{
case Columns::Configuration:
return TEXT("Configuration");
case Columns::Platform:
return TEXT("Platform");
case Columns::DateTime:
return TEXT("DateTime");
case Columns::TestName:
return TEXT("TestName");
case Columns::Context:
return TEXT("Context");
case Columns::DataPoint:
return TEXT("DataPoint");
case Columns::Measurement:
return TEXT("Measurement");
default:
return TEXT("Unknown");
}
}
static FString ToColumnValue(uint8 Index, const FAutomationWorkerTelemetryData& Data, const FAutomationWorkerTelemetryItem& Item);
/** Initiate telemetry storage csv file */
static bool InitiateStorage(const FString& StorageName);
/** Get telemetry storage file path using automation settings */
static FString GetStorageFilePath(const FString& StorageName);
};