Table of Contents

Class ComponentDefinitionRecord

Namespace
Typhon.Profiler
Assembly
Typhon.Profiler.dll

Rich component-type definition stored in the v7+ ComponentDefinitions table of a .typhon-trace file. Carries the full schema (fields with name + type + offset + size + index flags), storage mode, and per-component aggregates so the Workbench schema panels can render trace sessions with the same fidelity as live engine sessions.

public sealed class ComponentDefinitionRecord
Inheritance
ComponentDefinitionRecord
Inherited Members

Remarks

The thin ComponentTypeRecord (id → name) stays in v7+ for back-compat and for fast id resolution by event decoders; this rich record sits in a separate table after the phases section. Both reference the same engine ComponentTypeId so consumers can join.

Constructors

ComponentDefinitionRecord()

public ComponentDefinitionRecord()

Properties

AllowMultiple

True when multiple instances of this component can attach to the same entity.

public bool AllowMultiple { get; init; }

Property Value

bool

ComponentStorageOverhead

Per-instance overhead (entity-PK + multiple-index element-id slots). 0 for Versioned components.

public int ComponentStorageOverhead { get; init; }

Property Value

int

ComponentStorageSize

Bytes per instance excluding overhead (the user-visible component layout size).

public int ComponentStorageSize { get; init; }

Property Value

int

ComponentStorageTotalSize

Total per-instance footprint (ComponentStorageSize + ComponentStorageOverhead).

public int ComponentStorageTotalSize { get; init; }

Property Value

int

ComponentTypeId

Component type ID — matches ComponentTypeId.

public int ComponentTypeId { get; init; }

Property Value

int

Fields

Per-field metadata in registration order.

public FieldDefinitionRecord[] Fields { get; init; }

Property Value

FieldDefinitionRecord[]

IndicesCount

Number of indexed fields on this component.

public ushort IndicesCount { get; init; }

Property Value

ushort

MultipleIndicesCount

Number of indexed fields that are multi-valued (require an element-id slot per instance).

public ushort MultipleIndicesCount { get; init; }

Property Value

ushort

Name

Display name (CLR full name).

public string Name { get; init; }

Property Value

string

Revision

Schema revision from [Component(Revision)].

public int Revision { get; init; }

Property Value

int

SpatialField

Field name with [SpatialIndex], or empty when none.

public string SpatialField { get; init; }

Property Value

string

StorageMode

Storage mode byte (0=Versioned, 1=SingleVersion, 2=Transient — mirrors the engine's StorageMode enum order).

public byte StorageMode { get; init; }

Property Value

byte