Table of Contents

Class CommandDeclaration

Namespace
Typhon.Engine
Assembly
Typhon.Engine.dll

What a CommandBuilder<T> declared.

public sealed class CommandDeclaration
Inheritance
CommandDeclaration
Inherited Members

Properties

AllowedRoles

The roles allowed to send it. Empty means every role.

public IReadOnlyList<SessionRole> AllowedRoles { get; }

Property Value

IReadOnlyList<SessionRole>

Coalesce

How arrivals are delivered into a tick.

public CommandCoalesce Coalesce { get; }

Property Value

CommandCoalesce

CommandType

The command's CLR type.

public Type CommandType { get; }

Property Value

Type

Fields

Every field that travels: the ones the declaration gave a codec, in declaration order, then the rest of the struct's public instance fields under the codec their CLR type defaults to, ordinally by name.

public IReadOnlyList<ProjectedField> Fields { get; }

Property Value

IReadOnlyList<ProjectedField>

Remarks

Order here is declaration order, not wire order. Wire order is the layout key of 03-wire-protocol § 12 W11 and is assigned once, by Canonicalize(Catalog), for archetypes, events and commands alike — so this list is free to stay readable and nothing sorts twice.

Exceptions

InvalidOperationException

A field's CLR type has no default codec — a long, a ulong, a double or a type the wire cannot imply — and the declaration neither gave it one nor ignored it.

HasPrecheck

Whether a syntactic pre-check was attached.

public bool HasPrecheck { get; }

Property Value

bool

IgnoredFields

The struct fields the declaration deliberately kept off the wire, in no particular order.

public IReadOnlyCollection<string> IgnoredFields { get; }

Property Value

IReadOnlyCollection<string>

Index

The order this command was declared in. Not the wire index, which is assigned when the catalog is built.

public int Index { get; }

Property Value

int

Name

The name it travels under.

public string Name { get; }

Property Value

string

RateBurst

The per-session burst depth; 0 when the declaration left it to the engine.

public int RateBurst { get; }

Property Value

int

RatePerSecond

The sustained per-session rate; 0 when the declaration left it to the engine.

public int RatePerSecond { get; }

Property Value

int

Methods

ToString()

public override string ToString()

Returns

string