Files
UnrealEngineUWP/Engine/Source/Developer/TraceServices/Private/ModuleServicePrivate.h
ionut matasaru ac6e0a1609 [Insights]
- TraceServices: Added IModuleService::GetAvailableModulesEx(..), IModuleService::GetEnabledModules(..) and IModule::ShouldBeEnabledByDefault().
  - TraceServices: Fixed analysis to use only the enabled modules (to correctly use the state set by ShouldBeEnabledByDefault + SetModuleEnabled API).
  - SessionInfo: Added "!" in front of name for modules that are registered, but not enabled.
  - Changed FTraceServicesModule::StartupModule() to allow registration of all modules.
  - Changed the Memory, Tasks and LoadTimeProfiler modules to report that should be disabled by default in editor.
  - Fixed Insights unit tests (UE-116865). Re-enabled the LoadTimeProfiler module for unit tests even if it is disabled by default for editor.

#jira UE-116865
#rb Catalin.Dragoiu

[CL 16587640 by ionut matasaru in ue5-main branch]
2021-06-08 11:19:34 -04:00

39 lines
1.1 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "TraceServices/ModuleService.h"
#include "Containers/Map.h"
#include "Containers/Set.h"
#include "Misc/ScopeLock.h"
namespace TraceServices
{
class IAnalysisSession;
class FModuleService
: public IModuleService
{
public:
FModuleService();
virtual void GetAvailableModules(TArray<FModuleInfo>& OutModules) override;
virtual void GetAvailableModulesEx(TArray<FModuleInfoEx>& OutModules) override;
virtual void GetEnabledModules(TArray<FModuleInfo>& OutModules) override;
virtual void SetModuleEnabled(const FName& ModuleName, bool bEnabled) override;
virtual void GenerateReports(const IAnalysisSession& Session, const TCHAR* CmdLine, const TCHAR* OutputDirectory) override;
void OnAnalysisBegin(IAnalysisSession& Session);
TArray<const TCHAR*> GetModuleLoggers(const FName& ModuleName);
TSet<FName> GetEnabledModulesFromCommandLine(const TCHAR* CommandLine);
private:
void Initialize();
mutable FCriticalSection CriticalSection;
bool bIsInitialized = false;
TSet<IModule*> EnabledModules;
TMap<FName, IModule*> ModulesMap;
};
} // namespace TraceServices