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

One compiled flow: what a caller sees, and what the runtime will do. More...

#include <cpp/a11/flow/plan.h>

Public Member Functions

const PortPlan *absl_nullable Port (std::string_view port_name, syntax::PortDirection direction) const
 The port with this name and direction, or nullptr.
 
bool HasPort (std::string_view port_name, syntax::PortDirection direction) const
 Whether a port of this name is declared in that direction.
 
std::vector< std::string > PortNames (syntax::PortDirection direction) const
 Every port name in one direction, sorted, for a message that lists them.
 

Public Attributes

std::string name
 Empty for the entry flow, which is the one flow that has no name.
 
bool entry = false
 Whether this is the file's entry point, declared flow { ... }.
 
std::string description
 
std::vector< PortPlan > ports
 
std::vector< HeaderPlan > headers
 
std::vector< std::string > node_maps
 The node maps the flow declares, in declaration order.
 
std::vector< StepPlan > steps
 
syntax::Location location
 

Detailed Description

One compiled flow: what a caller sees, and what the runtime will do.

Member Function Documentation

◆ HasPort()

bool a11::flow::FlowPlan::HasPort ( std::string_view  port_name,
syntax::PortDirection  direction 
) const
inline

Whether a port of this name is declared in that direction.

◆ Port()

const PortPlan *absl_nullable a11::flow::FlowPlan::Port ( std::string_view  port_name,
syntax::PortDirection  direction 
) const

The port with this name and direction, or nullptr.

◆ PortNames()

std::vector< std::string > a11::flow::FlowPlan::PortNames ( syntax::PortDirection  direction) const

Every port name in one direction, sorted, for a message that lists them.

Member Data Documentation

◆ description

std::string a11::flow::FlowPlan::description

◆ entry

bool a11::flow::FlowPlan::entry = false

Whether this is the file's entry point, declared flow { ... }.

Its name is empty, and that is not an accident to be worked around: a flow nothing can name is a flow nothing can run or call, which is what keeps a program's entry point from being reachable as a library or from recursing into itself. Reach it with Program::Entry(), not by name.

◆ headers

std::vector<HeaderPlan> a11::flow::FlowPlan::headers

◆ location

syntax::Location a11::flow::FlowPlan::location

◆ name

std::string a11::flow::FlowPlan::name

Empty for the entry flow, which is the one flow that has no name.

◆ node_maps

std::vector<std::string> a11::flow::FlowPlan::node_maps

The node maps the flow declares, in declaration order.

◆ ports

std::vector<PortPlan> a11::flow::FlowPlan::ports

◆ steps

std::vector<StepPlan> a11::flow::FlowPlan::steps

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