class · System.Reactive

Source

public class System.Reactive.Source : System.Any

What effects depend on: tracked when read inside one, notifying its observers when written.

Tipo
class
Espacio de nombres
System.Reactive
Ensamblado
System.Core
Acceso
public, final
Archivo fuente
Reactive.ant

Herencia

Clases base
Any Source

Propiedades

property Observers: i32
#

read-only

The number of effects it runs.

Métodos

method Track() -> void
#

Makes the running effect (if any) an observer.

static method NextId() -> i64
#

static

method Notify() -> void
#

Runs every observer again (once each, at the end of a batch).

Miembros privados e internos (9)

static field made: i64
#

private static

field observers: System.List<System.Reactive.Effect?>
#

private

Its observers in the order they began to observe; an effect that stops leaves a null slot (taken out together by Compact once they are half of them), so adding or removing one is a step, not a search.

field backs: System.List<i32>
#

private

For each slot, where this source is in its effect's list of sources.

field live: i32
#

private

field markEffect: System.Reactive.Effect?
#

private

The effect, and which of its runs, that tracked it last: reading it again in that run is found at once.

field markRun: i64
#

private

field Id: i64
#

internal

Its number (Effect keeps the numbers of its sources in a set once it has many).

method Compact() -> void
#

private

Takes out the null slots, keeping the order, and tells each effect that moves its new slot.

Miembros heredados (5)

Código fuente

Source en Larva HIR, descompilado a partir de su Larva HIR.

System.Reactive.Source.hir
// What effects depend on: tracked when read inside one, notifying its observers when written.
public class System.Reactive.Source : System.Any
{
    static field made: i64
    // Its observers in the order they began to observe; an effect that stops leaves a null slot (taken out together
    // by Compact once they are half of them), so adding or removing one is a step, not a search.
    field observers: System.List<System.Reactive.Effect?>
    // For each slot, where this source is in its effect's list of sources.
    field backs: System.List<i32>
    field live: i32
    // The effect, and which of its runs, that tracked it last: reading it again in that run is found at once.
    field markEffect: System.Reactive.Effect?
    field markRun: i64
    // Its number (Effect keeps the numbers of its sources in a set once it has many).
    field Id: i64
    // Takes out the null slots, keeping the order, and tells each effect that moves its new slot.
    method Compact() -> void
    // Makes the running effect (if any) an observer.
    method Track() -> void
    static method NextId() -> i64
    // The effect in `slot` no longer observes it.
    method Unlink(slot: i32) -> void
    // Runs every observer again (once each, at the end of a batch).
    method Notify() -> void
    // The number of effects it runs.
    property Observers: i32
}
Esc