// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" //////////////////////////////////////////////////////////////////////////////////////////////////// namespace Trace { struct FLogMessage; class IAnalysisSession; } // namespace Trace //////////////////////////////////////////////////////////////////////////////////////////////////// class FLogMessageRecord { public: FLogMessageRecord(); FLogMessageRecord(const Trace::FLogMessage& Message); FText GetIndexAsText() const; FText GetTimeAsText() const; FText GetVerbosityAsText() const; FText GetCategoryAsText() const; FText GetMessageAsText() const; FText GetFileAsText() const; FText GetLineAsText() const; FText ToDisplayString() const; public: int32 Index; double Time; ELogVerbosity::Type Verbosity; FText Category; FText Message; FText File; uint32 Line; }; //////////////////////////////////////////////////////////////////////////////////////////////////// class FLogMessageCache { public: FLogMessageCache(); void SetSession(TSharedPtr InSession); void Reset(); FLogMessageRecord& Get(uint64 Index); TSharedPtr GetUncached(uint64 Index) const; private: FCriticalSection CriticalSection; TSharedPtr Session; TMap Map; FLogMessageRecord InvalidEntry; }; //////////////////////////////////////////////////////////////////////////////////////////////////// class FLogMessageCategory { public: FName Name; bool bIsVisible; }; //////////////////////////////////////////////////////////////////////////////////////////////////// class FLogMessage { public: FLogMessage(const int32 InIndex): Index(InIndex) {} int32 GetIndex() const { return Index; } private: int32 Index; }; ////////////////////////////////////////////////////////////////////////////////////////////////////