|
A11 (C++ runtime)
Native C++ implementation of the A11 streaming action runtime
|
The executable graph of one flow. More...
#include <cpp/a11/flow/graph.h>
Public Member Functions | |
| std::vector< RefId > | Upstreams (RefId ref) const |
| The refs this one reads as streams to produce itself. | |
| std::vector< RefId > | ValueRefs (RefId ref) const |
| The refs this one reads for their first value to produce itself. | |
| std::vector< RefId > | Sources (StepId step) const |
| The refs a step reads as streams, one entry per independent read. | |
| std::vector< RefId > | ValueSources (StepId step) const |
| The refs a step reads for one value each. | |
| std::vector< RefId > | Destinations (StepId step) const |
| The refs a step writes, one entry per independent writer. | |
| std::vector< RefId > | StageDestinations (StepId step) const |
The refs the stages a step reads write to: a try ... into failures. | |
| std::vector< RefId > | Observed (StepId step) const |
| Written refs a step only watches, without writing them itself. | |
| std::vector< BodyId > | NestedBodies (BodyId body) const |
| Every body inside this one, at any depth. | |
Public Attributes | |
| std::string | name |
| std::vector< Ref > | refs |
| std::vector< Step > | steps |
| std::vector< Body > | bodies |
| std::vector< Expr > | exprs |
| BodyId | root = kNone |
| The flow's top level. | |
The executable graph of one flow.
Borrows the syntax tree. Every expression here points into the [ParseResult] the flow was resolved from, because an expression is evaluated by walking it and copying the tree per flow would be paying for a second one. So a graph is only valid while that parse result lives, and whatever owns a registered flow owns both.
The refs a step writes, one entry per independent writer.
Every body inside this one, at any depth.
Written refs a step only watches, without writing them itself.
The refs a step reads as streams, one entry per independent read.
The refs the stages a step reads write to: a try ... into failures.
A stage is part of a stream rather than of a statement, so its destination is reached through the refs the step reads rather than off the step itself. Counted as a writer beside [Destinations] and released with the step, which is what closes a failure stream exactly once however many values went to it.
The refs this one reads as streams to produce itself.
The refs this one reads for their first value to produce itself.
The refs a step reads for one value each.
| std::vector<Body> a11::flow::graph::FlowGraph::bodies |
| std::vector<Expr> a11::flow::graph::FlowGraph::exprs |
| std::string a11::flow::graph::FlowGraph::name |
| std::vector<Ref> a11::flow::graph::FlowGraph::refs |
| std::vector<Step> a11::flow::graph::FlowGraph::steps |