Files
2025-05-18 13:04:45 +08:00

49 lines
1.9 KiB
C#

// Copyright Epic Games, Inc. All Rights Reserved.
using System.Collections.Generic;
using System.IO;
namespace EpicGames.Tracing.UnrealInsights.Events
{
public class DiagnosticsSession2Event : ITraceEvent
{
public static readonly EventType EventType = new EventType(0, "Diagnostics", "Session2", EventType.FlagImportant | EventType.FlagMaybeHasAux | EventType.FlagNoSync,
new List<EventTypeField>() {
new EventTypeField(0, 0, EventTypeField.TypeAnsiString, "Platform"),
new EventTypeField(0, 0, EventTypeField.TypeAnsiString, "AppName"),
new EventTypeField(0, 0, EventTypeField.TypeWideString, "CommandLine"),
new EventTypeField(0, 0, EventTypeField.TypeWideString, "Branch"),
new EventTypeField(0, 0, EventTypeField.TypeWideString, "BuildVersion"),
new EventTypeField(0, 4, EventTypeField.TypeInt32, "Changelist"),
new EventTypeField(4, 1, EventTypeField.TypeInt8, "ConfigurationType"),
new EventTypeField(5, 1, EventTypeField.TypeInt8, "TargetType"),
});
public ushort Size => (ushort) (_genericEvent.Size + TraceImportantEventHeader.HeaderSize);
public EventType Type => EventType;
private readonly GenericEvent _genericEvent;
public DiagnosticsSession2Event(string platform, string appName, string commandLine, string branch, string buildVersion, int changeList, int configurationType, int targetType)
{
Field[] fields =
{
Field.FromString(platform),
Field.FromString(appName),
Field.FromString(commandLine),
Field.FromString(branch),
Field.FromString(buildVersion),
Field.FromInt(changeList),
Field.FromInt(configurationType),
Field.FromInt(targetType),
};
_genericEvent = new GenericEvent(0, fields, EventType);
}
public void Serialize(ushort uid, BinaryWriter writer)
{
new TraceImportantEventHeader(uid, _genericEvent.Size).Serialize(writer);
_genericEvent.Serialize(uid, writer);
}
}
}