|
A11 (C++ runtime)
Native C++ implementation of the A11 streaming action runtime
|
wait subject – hold until a call, or a node this flow writes, is finished.
More...
#include <cpp/a11/flow/syntax.h>
Public Attributes | |
| NodePtr | subject |
| std::vector< NodePtr > | subjects |
| bool | race = false |
| Whether the first to finish is enough. | |
| std::optional< absl::Duration > | timeout |
| std::vector< Word > | after |
| std::vector< NodePtr > | targets |
wait first of a, b -> n: where the winner's number goes. | |
Public Attributes inherited from a11::flow::syntax::Node | |
| NodeKind | kind = NodeKind::kError |
| Location | location |
Additional Inherited Members | |
Public Member Functions inherited from a11::flow::syntax::NodeOf< NodeKind::kWait > | |
| NodeOf () | |
Public Member Functions inherited from a11::flow::syntax::Node | |
| virtual | ~Node ()=default |
Static Public Attributes inherited from a11::flow::syntax::NodeOf< NodeKind::kWait > | |
| static constexpr NodeKind | kNodeKind |
wait subject – hold until a call, or a node this flow writes, is finished.
wait first of a, b holds until the first of several is finished and lets the others carry on; wait all of a, b is the plural of the singular form and holds for every one of them. subject is what a single wait names, and subjects what the of forms do, so a reader of the tree does not have to treat the common case as a list of one.
| std::vector<Word> a11::flow::syntax::Wait::after |
| bool a11::flow::syntax::Wait::race = false |
Whether the first to finish is enough.
False for wait all of, and for the single-subject form where there is nothing to race.
| NodePtr a11::flow::syntax::Wait::subject |
| std::vector<NodePtr> a11::flow::syntax::Wait::subjects |
| std::vector<NodePtr> a11::flow::syntax::Wait::targets |
wait first of a, b -> n: where the winner's number goes.
A race is a value – which of them won, counted from zero – so it is written where a value is written: piped to a destination here, named by a let, or bound with =. The same node stands in all three places, and a statement with no targets is the barrier on its own.
| std::optional<absl::Duration> a11::flow::syntax::Wait::timeout |