docs
Systems
Messaging
SignalSystem
Public API Reference

This reference covers the public types defined in SignalSystem. Other types used by these members, such as SignalBus, are documented in the BusSystem.

SaffronLibrarySignals

Namespace: SaffronLibrary.Prime.Systems.Signals

Canonical signal keys shared across SaffronLibrary.

public static class SaffronLibrarySignals

Fields

// Raised when the active scene has finished bootstrapping and is ready
// for dependent systems. Late subscribers are invoked immediately.
public static readonly SignalKey SceneReady;
 
// Raised when every system registered with the initialization manager has initialised.
public static readonly SignalKey SystemsReady;
 
// Raised when the Data system has loaded its definitions and is ready to answer queries.
public static readonly SignalKey DataSystemReady;

The code does not state which system raises each of these signals.

SignalKeyNames

Namespace: SaffronLibrary.Prime.Systems.Signals

Holds the string names used to create the keys in SaffronLibrarySignals.

public static class SignalKeyNames

Constants

// Value: "core.signal.scene.ready"
public const string SceneReady;
 
// Value: "core.signal.systems.ready"
public const string SystemsReady;
 
// Value: "core.signal.data.ready"
public const string DataSystemReady;

Signal

Namespace: SaffronLibrary.Prime.Systems.Signals

The message delivered by the signal bus when a signal is raised. It has no Domain.

public sealed class Signal

Properties

// The signal that was raised. The signal bus routes by this key.
public SignalKey Key { get; }

Constructors

// Creates a signal for the given key.
public Signal(SignalKey key)

ISignalKey

Namespace: SaffronLibrary.Prime.Systems.Signals.Interfaces

Contract for signal identifiers.

public interface ISignalKey

Properties

// The signal's unique string Id.
string Id { get; }

SignalKey

Namespace: SaffronLibrary.Prime.Systems.Signals

Identifies a signal by its unique name. Two keys with the same name refer to the same signal.

public readonly struct SignalKey : ISignalKey, IEquatable<SignalKey>

Properties

// The signal's unique string Id.
public string Id { get; }

Constructors

// Creates a key for the signal with the given name.
public SignalKey(string id)

Methods

// Returns whether the other key names the same signal.
public bool Equals(SignalKey other)
 
// Returns whether the object is a SignalKey naming the same signal.
public override bool Equals(object obj)
 
// Returns a hash code based on the signal's name.
public override int GetHashCode()
 
// Returns the signal's name.
public override string ToString()

The constructor does not check its argument. A default SignalKey has a null Id. In that case, GetHashCode throws a NullReferenceException, and ToString returns null.