GraphRun.h File
Runtime handle for a compiled hybrid graph. More...
Included Headers
#include "graph/Graph.h"
#include "pipeline/Run.h"
#include <cstdint>
#include <chrono>
#include <functional>
#include <memory>
#include <mutex>
#include <optional>
#include <string>
#include <unordered_map>
#include <unordered_set>
#include <vector>
Namespaces Index
| namespace | simaai |
| namespace | neat |
| namespace | graph |
Classes Index
| struct | GraphRunOptions |
| struct | GraphRunStats |
| struct | StreamStat |
| struct | NodeStat |
| struct | Snapshot |
| struct | GraphRunPullOptions |
| class | GraphRun |
| class | Input |
| class | Output |
| class | StallGuard |
| class | PullSession |
Description
Runtime handle for a compiled hybrid graph.
File Listing
The file content with the documentation metadata removed is:
8#include "graph/Graph.h"
9#include "pipeline/Run.h"
22namespace simaai::neat::graph {
24struct GraphRunOptions {
26 std::size_t edge_queue = 256;
28 int push_timeout_ms = 5000;
30 int pull_timeout_ms = 50;
34struct GraphRunStats {
35 struct StreamStat {
39 bool initialized = false;
46 bool initialized = false;
63 stream_counts(const std::vector<NodeId>& nodes = {}) const;
64 bool has_missing_streams(const std::unordered_set<std::string>& expected,
66 std::string missing_streams_list(const std::unordered_set<std::string>& expected,
74struct GraphRunPullOptions {
75 int per_stream_target = 0;
77 int timeout_ms = 50;
78 int max_runtime_ms = -1;
79 std::vector<std::string> stream_ids;
91 : run_(run), node_(node), port_(port), has_port_(has_port) {}
93 GraphRun* run_ = nullptr;
94 NodeId node_ = kInvalidNode;
95 PortId port_ = kInvalidPort;
101 std::optional<Sample> pull(int timeout_ms = -1, GraphRunStats* stats = nullptr) const;
102 Sample pull_or_throw(int timeout_ms = -1, GraphRunStats* stats = nullptr) const;
111 GraphRun* run_ = nullptr;
112 NodeId node_ = kInvalidNode;
115 class StallGuard {
117 bool update(const GraphRunStats& stats);
124 int64_t target_progress() const {
130 StallGuard(std::vector<NodeId> nodes, std::vector<std::string> streams, int per_stream_target,
144 class PullSession {
146 PullSession& per_stream_target(int n);
147 PullSession& stall_after_ms(int ms);
148 PullSession& timeout_ms(int ms);
149 PullSession& max_runtime_ms(int ms);
150 PullSession& expect_streams(std::vector<std::string> ids);
151 PullSession& on_sample(std::function<void(const Sample&, NodeId)> cb);
152 GraphRunStats& stats();
157 PullSession(GraphRun* run, const std::vector<Output>* outputs, std::vector<NodeId> output_nodes,
158 GraphRunStats* stats);
160 GraphRun* run_ = nullptr;
163 GraphRunStats* stats_ = nullptr;
164 GraphRunPullOptions opt_;
179 explicit operator bool() const noexcept;
192 const GraphRunStats* stats() const;
193 PullSession collect(const std::vector<Output>& outputs, GraphRunStats* stats = nullptr);
196 GraphRunStats* stats = nullptr, NodeId* out_node = nullptr);
198 void pull_until(const std::vector<Output>& outputs, GraphRunStats& stats,
199 const GraphRunPullOptions& opt,
201 StallGuard stall_guard(const std::vector<Output>& outputs, int per_stream_target, int stall_ms,
203 void emit_rate_summary(const GraphRunStats& stats) const;
204 void emit_rate_summary() const;
205 void emit_stream_summary(const GraphRunStats& stats) const;
206 void emit_stream_summary() const;
207 void emit_summary(const GraphRunStats& stats) const;
208 void emit_summary() const;
213 std::string last_error() const;
214 void last_error_or_throw() const;
220 explicit GraphRun(std::shared_ptr<State> state);
221 friend class GraphSession;
Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.9.1.