|
Aria 2.0.0
C++23 MVVM framework (C++20 minimum) — reactive, coroutine-first, ABI-layered
|
A single dependency edge: (upstream source) -> (downstream observer). More...
#include <node.hpp>
Public Attributes | |
| Node * | source = nullptr |
| The upstream node being observed. | |
| Node * | observer = nullptr |
| The downstream node that depends on it. | |
| Edge * | next_observer = nullptr |
| Thread in the source's "observers" list (from the source's point of view: "these are the nodes watching me"). | |
| Edge * | prev_observer = nullptr |
| Edge * | next_source = nullptr |
| Thread in the observer's "sources" list (from the observer's point of view: "these are the nodes I depend on"). | |
| Edge * | prev_source = nullptr |
| std::uint64_t | observed_version = 0 |
| Upstream version observed at the moment this edge was established or last confirmed. | |
A single dependency edge: (upstream source) -> (downstream observer).
Threaded into two intrusive linked lists so subscribe/unsubscribe are O(1) without heap allocation. Edges are owned by the observer (embedded inline in the Derivation's source-array or allocated from a dedicated pool).
| Node* aria::reactive::Edge::source = nullptr |
The upstream node being observed.
| Node* aria::reactive::Edge::observer = nullptr |
The downstream node that depends on it.
| Edge* aria::reactive::Edge::next_observer = nullptr |
Thread in the source's "observers" list (from the source's point of view: "these are the nodes watching me").
| Edge* aria::reactive::Edge::prev_observer = nullptr |
| Edge* aria::reactive::Edge::next_source = nullptr |
Thread in the observer's "sources" list (from the observer's point of view: "these are the nodes I depend on").
| Edge* aria::reactive::Edge::prev_source = nullptr |
| std::uint64_t aria::reactive::Edge::observed_version = 0 |
Upstream version observed at the moment this edge was established or last confirmed.
On pull, a mismatch with source->version() means the upstream has moved and the observer must recompute.