VRTowerDef/Plugins/MetaXR/Source/OculusXREditor/Private/OculusXRBuildAnalytics.h

63 lines
1.5 KiB
C++

// @lint-ignore-every LICENSELINT
// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "ILauncherServicesModule.h"
#include "ILauncher.h"
#include "Modules/ModuleManager.h"
#include "UObject/Class.h"
#include "AndroidRuntimeSettings.h"
#include "OculusXRPluginWrapper.h"
enum EBuildStage
{
UNDEFINED_STAGE,
COOK_IN_EDITOR_STAGE,
COOK_STAGE,
LAUNCH_UAT_STAGE,
COMPILE_STAGE,
PACKAGE_STAGE,
DEPLOY_STAGE,
RUN_STAGE,
};
class FOculusBuildAnalytics
{
public:
static FOculusBuildAnalytics* GetInstance();
static void Shutdown();
static bool IsOculusXRHMDAvailable();
void RegisterLauncherCallback();
void OnTelemetryToggled(bool Enabled);
void OnLauncherCreated(ILauncherRef Launcher);
void OnLauncherWorkerStarted(ILauncherWorkerPtr LauncherWorker, ILauncherProfileRef Profile);
void OnStageCompleted(const FString& StageName, double Time);
void OnStageStarted(const FString& StageName);
void OnBuildOutputReceived(const FString& Message);
void OnCompleted(bool Succeeded, double TotalTime, int32 ErrorCode);
void SendBuildCompleteEvent(float TotalTime);
private:
FOculusBuildAnalytics();
static FOculusBuildAnalytics* instance;
FDelegateHandle LauncherCallbackHandle;
float TotalBuildTime;
float AndroidPackageTime;
bool BuildCompleted;
bool UATLaunched;
int UserAssetCount;
int BuildStepCount;
int32 SourceFileCount;
int64 SourceFileDirectorySize;
EBuildStage CurrentBuildStage;
FString CurrentBuildPlatform;
FString OutputDirectory;
};