|
A11 (C++ runtime)
Native C++ implementation of the A11 streaming action runtime
|
Who reads and who writes each ref a body owns. More...
#include <cpp/a11/flow/graph.h>
Public Attributes | |
| BodyId | body = kNone |
| std::vector< RefId > | refs |
| Every ref this body owns. | |
| absl::flat_hash_map< RefId, int > | readers |
| How many readers each of them has. | |
| absl::flat_hash_set< RefId > | materialise |
| Refs read inside a nested body. | |
| absl::flat_hash_map< RefId, int > | writers |
| How many writers each written ref has. | |
| std::vector< RefId > | destinations |
| Every ref this body writes, whether or not anything reads it back. | |
| absl::flat_hash_map< StepId, std::vector< RefId > > | held |
| Which destinations each step holds open until it finishes. | |
| std::vector< RefId > | nodes |
| The nodes of its own this body names, wherever it names them. | |
Who reads and who writes each ref a body owns.
A stream gets the reader count specified by the plan. A node closes when its last writer finishes; a running loop or branch counts as one writer. An incorrect count can leave the flow waiting indefinitely.
| std::vector<RefId> a11::flow::graph::Analysis::destinations |
Every ref this body writes, whether or not anything reads it back.
Which destinations each step holds open until it finishes.
| absl::flat_hash_set<RefId> a11::flow::graph::Analysis::materialise |
Refs read inside a nested body.
They are buffered once and replayed so each loop pass sees the same outer value.
| std::vector<RefId> a11::flow::graph::Analysis::nodes |
The nodes of its own this body names, wherever it names them.
| absl::flat_hash_map<RefId, int> a11::flow::graph::Analysis::readers |
How many readers each of them has.
| std::vector<RefId> a11::flow::graph::Analysis::refs |
Every ref this body owns.
| absl::flat_hash_map<RefId, int> a11::flow::graph::Analysis::writers |
How many writers each written ref has.