Stage executor that joins samples from multiple input ports into a single bundled output. More...
Declaration
class simaai::neat::graph::nodes::JoinBundle { ... }
Base class
| class | StageExecutor |
|
Actor-style executor base class — implement to add a new runtime-graph stage. More...
|
|
Public Constructors Index
Public Member Functions Index
| void | set_ports (const StagePorts &ports) override |
|
Bind the executor to its runtime ports. More...
|
|
| void | on_input (StageMsg &&msg, std::vector< StageOutMsg > &out) override |
|
Buffer the incoming sample under its join key, emit a bundle if ready. More...
|
|
| void | on_tick (std::int64_t now_ns, std::vector< StageOutMsg > &out) override |
|
Periodic tick used to evict timed-out pending keys. More...
|
|
Private Member Functions Index
Private Member Attributes Index
Description
Stage executor that joins samples from multiple input ports into a single bundled output.
Buffers samples per join key (selected by JoinKeyPolicy) and emits a bundle once the required inputs are present (or once emit_partial allows). Unmatched keys are evicted by capacity (max_pending_keys) or by timeout (timeout_ms).
- See Also
JoinBundleNode
- See Also
JoinKeyPolicy
- See Also
StageExecutor
Definition at line 67 of file JoinBundle.h.
Public Constructors
JoinBundle()
Public Member Functions
on_input()
| void simaai::neat::graph::nodes::JoinBundle::on_input (StageMsg && msg, std::vector< StageOutMsg > & out) |
|
virtual
|
Buffer the incoming sample under its join key, emit a bundle if ready.
Definition at line 75 of file JoinBundle.h.
on_tick()
| void simaai::neat::graph::nodes::JoinBundle::on_tick (std::int64_t now_ns, std::vector< StageOutMsg > & out) |
|
virtual
|
Periodic tick used to evict timed-out pending keys.
Definition at line 77 of file JoinBundle.h.
set_ports()
| void simaai::neat::graph::nodes::JoinBundle::set_ports (const StagePorts & ports) |
|
virtual
|
Bind the executor to its runtime ports.
Definition at line 73 of file JoinBundle.h.
Private Member Functions
erase_key_()
| void simaai::neat::graph::nodes::JoinBundle::erase_key_ (const std::string & key) |
|
evict_expired_()
| void simaai::neat::graph::nodes::JoinBundle::evict_expired_ (std::int64_t now_ns) |
|
evict_oldest_()
| void simaai::neat::graph::nodes::JoinBundle::evict_oldest_ () |
|
make_key_()
| std::string simaai::neat::graph::nodes::JoinBundle::make_key_ (const Sample & sample) |
|
ready_()
| bool simaai::neat::graph::nodes::JoinBundle::ready_ (const Pending & pending) |
|
touch_key_()
| void simaai::neat::graph::nodes::JoinBundle::touch_key_ (const std::string & key) |
|
Private Member Attributes
input_names_
| std::vector<std::string> simaai::neat::graph::nodes::JoinBundle::input_names_ |
|
Definition at line 95 of file JoinBundle.h.
95 std::vector<std::string> input_names_;
name_to_port_
| std::unordered_map<std::string, PortId> simaai::neat::graph::nodes::JoinBundle::name_to_port_ |
|
Definition at line 97 of file JoinBundle.h.
97 std::unordered_map<std::string, PortId> name_to_port_;
opt_
| JoinBundleOptions simaai::neat::graph::nodes::JoinBundle::opt_ |
|
order_
| std::deque<std::string> simaai::neat::graph::nodes::JoinBundle::order_ |
|
Definition at line 100 of file JoinBundle.h.
100 std::deque<std::string> order_;
out_port_
| PortId simaai::neat::graph::nodes::JoinBundle::out_port_ = kInvalidPort |
|
pending_
| std::unordered_map<std::string, Pending> simaai::neat::graph::nodes::JoinBundle::pending_ |
|
Definition at line 99 of file JoinBundle.h.
99 std::unordered_map<std::string, Pending> pending_;
port_names_
| std::unordered_map<PortId, std::string> simaai::neat::graph::nodes::JoinBundle::port_names_ |
|
Definition at line 96 of file JoinBundle.h.
96 std::unordered_map<PortId, std::string> port_names_;
required_ports_
| std::unordered_set<PortId> simaai::neat::graph::nodes::JoinBundle::required_ports_ |
|
Definition at line 98 of file JoinBundle.h.
98 std::unordered_set<PortId> required_ports_;
The documentation for this class was generated from the following file:
Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.9.8.