File: Data\ThreadStressLog.cs
Web Access
Project: src\src\runtime\src\native\managed\cdac\Microsoft.Diagnostics.DataContractReader.Contracts\Microsoft.Diagnostics.DataContractReader.Contracts.csproj (Microsoft.Diagnostics.DataContractReader.Contracts)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

namespace Microsoft.Diagnostics.DataContractReader.Data;

internal sealed class ThreadStressLog : IData<ThreadStressLog>
{
    static ThreadStressLog IData<ThreadStressLog>.Create(Target target, TargetPointer address)
        => new ThreadStressLog(target, address);

    public ThreadStressLog(Target target, TargetPointer address)
    {
        Target.TypeInfo type = target.GetTypeInfo(DataType.ThreadStressLog);

        Next = target.ReadPointerField(address, type, nameof(Next));
        ThreadId = target.ReadField<ulong>(address, type, nameof(ThreadId));
        WriteHasWrapped = target.ReadField<byte>(address, type, nameof(WriteHasWrapped)) != 0;
        CurrentPtr = target.ReadPointerField(address, type, nameof(CurrentPtr));
        ChunkListHead = target.ReadPointerField(address, type, nameof(ChunkListHead));
        ChunkListTail = target.ReadPointerField(address, type, nameof(ChunkListTail));
        CurrentWriteChunk = target.ReadPointerField(address, type, nameof(CurrentWriteChunk));
    }

    public TargetPointer Next { get; init; }
    public ulong ThreadId { get; init; }
    public bool WriteHasWrapped { get; init; }
    public TargetPointer CurrentPtr { get; init; }
    public TargetPointer ChunkListHead { get; init; }
    public TargetPointer ChunkListTail { get; init; }
    public TargetPointer CurrentWriteChunk { get; init; }
}