WritePlanner
A write with steps of its own becomes a branch the runtime feeds batch by batch.
Tags
Methods
- __construct() : mixed
- attach() : SplObjectStorage<Node, array<int, Loader|BranchPipeline|TransactionGroup>>
- Every write root attached at the spine node its chain meets, as the steps that node's pipeline gains.
- branch() : BranchPipeline
- The branch fed from $host: the steps of $nodes, then $tail, cut at every breaker, numbered from next() on.
- chain() : array<int, Node>
- $write first, then every node below it, stopping BEFORE the first node on the spine - so a bare Write sitting directly on a spine node is exactly [$write], and the node it attaches to is never part of its chain.
- next() : int
- The id the next pipeline built here takes; the spine's pipelines continue from it.
- write() : Loader|BranchPipeline
- writes() : array<int, Loader|BranchPipeline|TransactionGroup>
- A node several writes share feeds them ONCE - it is the point their rows fan out - and a transaction attaches where its children part, so a node they all share runs before it opens.
Methods
__construct()
public
__construct(PlannedNodes $planned) : mixed
Parameters
- $planned : PlannedNodes
attach()
Every write root attached at the spine node its chain meets, as the steps that node's pipeline gains.
public
attach(Writes $writes, SplObjectStorage<Node, Node> $onSpine) : SplObjectStorage<Node, array<int, Loader|BranchPipeline|TransactionGroup>>
Branch pipelines take the ids first; next() is where the spine's own cuts continue.
Parameters
Tags
Return values
SplObjectStorage<Node, array<int, Loader|BranchPipeline|TransactionGroup>>branch()
The branch fed from $host: the steps of $nodes, then $tail, cut at every breaker, numbered from next() on.
public
branch(array<int, Node> $nodes, array<int, Loader|BranchPipeline|TransactionGroup> $tail, Node $host) : BranchPipeline
Parameters
- $nodes : array<int, Node>
-
what runs before $tail, bottom-up
- $tail : array<int, Loader|BranchPipeline|TransactionGroup>
- $host : Node
Return values
BranchPipelinechain()
$write first, then every node below it, stopping BEFORE the first node on the spine - so a bare Write sitting directly on a spine node is exactly [$write], and the node it attaches to is never part of its chain.
public
chain(Write $write, SplObjectStorage<Node, Node> $onSpine) : array<int, Node>
Parameters
Tags
Return values
array<int, Node>next()
The id the next pipeline built here takes; the spine's pipelines continue from it.
public
next() : int
Return values
intwrite()
public
write(array<int, Leaf> $group, Node $host) : Loader|BranchPipeline
Parameters
- $group : array<int, Leaf>
-
writes whose nodes above $host start with the same node
- $host : Node
Return values
Loader|BranchPipelinewrites()
A node several writes share feeds them ONCE - it is the point their rows fan out - and a transaction attaches where its children part, so a node they all share runs before it opens.
public
writes(array<int, Leaf> $leaves, Node $host) : array<int, Loader|BranchPipeline|TransactionGroup>
Parameters
- $leaves : array<int, Leaf>
-
the writes hanging off $host, each with the nodes between $host and its Write
- $host : Node