ReactiveNode class

Base class for all reactive nodes in the dependency tracking system.

A ReactiveNode represents any value that can participate in the reactive dependency graph. This includes signals, computed values, and effects.

Each node maintains two sets of connections:

  • Dependencies (deps): Other nodes that this node depends on
  • Subscribers (subs): Other nodes that depend on this node

The dependency tracking system uses doubly-linked lists to efficiently manage these relationships, allowing for O(1) insertion and removal.

Example node types that extend ReactiveNode:

  • SignalNode: Holds a mutable value
  • ComputedNode: Derives its value from other nodes
  • EffectNode: Runs side effects when dependencies change
Implementers

Constructors

ReactiveNode({required ReactiveFlags flags, Link? deps, Link? depsTail, Link? subs, Link? subsTail})

Properties

deps ↔ Link?
Head of the linked list of dependencies (nodes this node depends on). Null if this node has no dependencies.
getter/setter pair
depsTail ↔ Link?
Tail of the linked list of dependencies for O(1) append operations. Points to the last dependency link.
getter/setter pair
flags ↔ ReactiveFlags
Bit flags representing the current state of this node. See ReactiveFlags for possible values.
getter/setter pair
hashCode → int
The hash code for this object.
no setterinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
subs ↔ Link?
Head of the linked list of subscribers (nodes that depend on this node). Null if no other nodes depend on this one.
getter/setter pair
subsTail ↔ Link?
Tail of the linked list of subscribers for O(1) append operations. Points to the last subscriber link.
getter/setter pair

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited