Class Catalog
Everything a client needs to decode a Typhon stream without any generated code or knowledge of the server's C# types: which archetypes are replicated, which fields each carries, in what codec and group, plus events, commands, grids and metrics.
public sealed class Catalog
- Inheritance
-
Catalog
- Inherited Members
Remarks
It is called the catalog, not the schema: "schema" is Typhon's storage schema, which rules SCHEMA-01…07 constrain and which this deliberately does
not describe. The catalog travels in WELCOME as canonical JSON and is hashed so a returning client can offer the hash back and skip it.
Nothing in here describes server memory. No CLR type name and no offset appears anywhere — not the field's offset within its component, nor the component's column offset within the cluster. A client decodes bytes; handing out the layout would couple the wire to storage and make renaming a C# type a wire break.
Constructors
Catalog()
public Catalog()
Properties
App
The application the catalog describes.
public CatalogApp App { get; init; }
Property Value
Archetypes
The replicated archetypes, ordered so that each one's position is its Idx.
public CatalogArchetype[] Archetypes { get; init; }
Property Value
Commands
The commands a client may send, in index order.
public CatalogCommand[] Commands { get; init; }
Property Value
Enums
Enum value names by enum name. A value's index in the array is the integer that travels.
public Dictionary<string, string[]> Enums { get; init; }
Property Value
- Dictionary<string, string[]>
Events
The declared events, in index order.
public CatalogEvent[] Events { get; init; }
Property Value
Grids
The spatial grids.
public CatalogGrid[] Grids { get; init; }
Property Value
Limits
Server-wide ceilings a client acts on.
public CatalogLimits Limits { get; init; }
Property Value
Metrics
The metrics the server publishes, in index order.
public CatalogMetric[] Metrics { get; init; }
Property Value
Protocol
The wire protocol version this catalog is written for.
public CatalogProtocolVersion Protocol { get; init; }
Property Value
SessionKinds
The session kinds the application declares (W21). Informational: the engine never interprets a kind.
public string[] SessionKinds { get; init; }
Property Value
- string[]
Tick
Tick timing.
public CatalogTick Tick { get; init; }