Files
UnrealEngine/Engine/Source/Runtime/Analytics/TelemetryUtils/Public/TelemetryUtils.h
2025-05-18 13:04:45 +08:00

45 lines
1.2 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
// Module containing utility functions for providing telemetry on the engine and games.
// Does not integrate with any specific telemetry endpoint.
// Provides functions for routing data from runtime/editor systems to telemetry sinks in a structured manner.
#include "Modules/ModuleInterface.h"
#include "Modules/ModuleManager.h"
class FTelemetryRouter;
class FTelemetryUtils : public IModuleInterface
{
public:
FTelemetryUtils();
virtual ~FTelemetryUtils();
static inline FTelemetryUtils& Get()
{
return FModuleManager::LoadModuleChecked<FTelemetryUtils>("TelemetryUtils");
}
static inline bool IsAvailable()
{
return FModuleManager::Get().IsModuleLoaded("TelemetryUtils");
}
/**
* Returns an object used for routing structured telemetry data between producers and consumers.
*/
static FTelemetryRouter& GetRouter()
{
return *FTelemetryUtils::Get().Router.Get();
}
private:
virtual void StartupModule() override;
virtual void ShutdownModule() override;
private:
TUniquePtr<FTelemetryRouter> Router;
};