// <auto-generated/>
#nullable enable
using Microsoft.Diagnostics.DataContractReader;
using Microsoft.Diagnostics.DataContractReader.Contracts;
using Microsoft.Diagnostics.DataContractReader.Generated;
namespace Microsoft.Diagnostics.DataContractReader.Data;
/// <summary>Wraps the <c>GCAllocContext</c> type.</summary>
partial class GCAllocContext : global::Microsoft.Diagnostics.DataContractReader.Data.IReadableData
{
private static readonly string[] _typeNames = new[] { "GCAllocContext" };
[UsesDataDescriptorTypeSize]
public static uint GetSize(Target target)
=> checked((uint)LayoutSet.Resolve(target, _typeNames).InstanceSize);
[DataDescriptorDependency("Pointer", "pointer")]
public static int GetPointerOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "Pointer");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("Limit", "pointer")]
public static int GetLimitOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "Limit");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("AllocBytes", "int64")]
public static int GetAllocBytesOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "AllocBytes");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("AllocBytesLoh", "int64")]
public static int GetAllocBytesLohOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "AllocBytesLoh");
return type.Fields[name].Offset;
}
public TargetPointer Address { get; }
private readonly Target _target;
private readonly LayoutSet _layouts;
partial void OnInit(Target target, TargetPointer address);
public GCAllocContext(Target target, TargetPointer address)
{
Address = address;
_target = target;
_layouts = LayoutSet.Resolve(target, _typeNames);
OnInit(target, address);
}
static GCAllocContext IData<GCAllocContext>.Create(Target target, TargetPointer address)
=> new GCAllocContext(target, address);
private TargetPointer _Pointer__value = default!;
private bool _Pointer__read;
[DataDescriptorDependency("Pointer", "pointer")]
public partial TargetPointer Pointer
{
get
{
if (!_Pointer__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "Pointer");
_Pointer__value = _target.ReadPointerField(b, t, n);
_Pointer__read = true;
}
return _Pointer__value;
}
}
private TargetPointer _Limit__value = default!;
private bool _Limit__read;
[DataDescriptorDependency("Limit", "pointer")]
public partial TargetPointer Limit
{
get
{
if (!_Limit__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "Limit");
_Limit__value = _target.ReadPointerField(b, t, n);
_Limit__read = true;
}
return _Limit__value;
}
}
private long _AllocBytes__value = default!;
private bool _AllocBytes__read;
[DataDescriptorDependency("AllocBytes", "int64")]
public partial long AllocBytes
{
get
{
if (!_AllocBytes__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "AllocBytes");
_AllocBytes__value = _target.ReadField<long>(b, t, n);
_AllocBytes__read = true;
}
return _AllocBytes__value;
}
}
private long _AllocBytesLoh__value = default!;
private bool _AllocBytesLoh__read;
[DataDescriptorDependency("AllocBytesLoh", "int64")]
public partial long AllocBytesLoh
{
get
{
if (!_AllocBytesLoh__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "AllocBytesLoh");
_AllocBytesLoh__value = _target.ReadField<long>(b, t, n);
_AllocBytesLoh__read = true;
}
return _AllocBytesLoh__value;
}
}
[DataDescriptorDependency("Pointer", "pointer")]
[DataDescriptorDependency("Limit", "pointer")]
[DataDescriptorDependency("AllocBytes", "int64")]
[DataDescriptorDependency("AllocBytesLoh", "int64")]
void global::Microsoft.Diagnostics.DataContractReader.Data.IReadableData.EnsureAllFieldsRead()
{
_ = Pointer;
_ = Limit;
_ = AllocBytes;
_ = AllocBytesLoh;
}
}