A11 (C++ runtime)
Native C++ implementation of the A11 streaming action runtime
Loading...
Searching...
No Matches
a11::flow::graph::Analysis Struct Reference

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.
 

Detailed Description

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.

Member Data Documentation

◆ body

BodyId a11::flow::graph::Analysis::body = kNone

◆ destinations

std::vector<RefId> a11::flow::graph::Analysis::destinations

Every ref this body writes, whether or not anything reads it back.

◆ held

absl::flat_hash_map<StepId, std::vector<RefId> > a11::flow::graph::Analysis::held

Which destinations each step holds open until it finishes.

◆ materialise

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.

◆ nodes

std::vector<RefId> a11::flow::graph::Analysis::nodes

The nodes of its own this body names, wherever it names them.

◆ readers

absl::flat_hash_map<RefId, int> a11::flow::graph::Analysis::readers

How many readers each of them has.

◆ refs

std::vector<RefId> a11::flow::graph::Analysis::refs

Every ref this body owns.

◆ writers

absl::flat_hash_map<RefId, int> a11::flow::graph::Analysis::writers

How many writers each written ref has.


The documentation for this struct was generated from the following file: