|
Aria 2.0.0
C++23 MVVM framework (C++20 minimum) — reactive, coroutine-first, ABI-layered
|
Lightweight diagnostics entry point. More...
#include <inspector.hpp>
Classes | |
| struct | FlushEvent |
| A single event emitted by the Graph during flush. More... | |
| class | ScopedTracer |
| RAII guard — install a tracer for the lifetime of a scope, then restore the previous tracer (or no tracer) on destruction. More... | |
Public Types | |
| using | FlushTracer = std::function<void(const FlushEvent&)> |
Static Public Member Functions | |
| static std::vector< const Node * > | reachable_from (const std::vector< const Node * > &seeds) |
| Collect every node reachable from seeds through either direction of the dependency graph (upstream sources AND downstream observers). | |
| static std::string | to_dot (const std::vector< const Node * > &seeds, std::string_view graph_name="reactive") |
| Emit the reachable subgraph as a Graphviz DOT document. | |
| static std::string | to_json (const std::vector< const Node * > &seeds) |
| Emit the reachable subgraph as a minimal JSON document. | |
| static void | install_flush_tracer (FlushTracer tracer) |
| Install a tracer. | |
| static void | clear_flush_tracer () noexcept |
| static bool | has_flush_tracer () noexcept |
| static std::string | to_text (const std::vector< const Node * > &seeds) |
| Human-readable one-line-per-node summary, useful inside gdb or during ad-hoc printf debugging. | |
Lightweight diagnostics entry point.
All methods are static; the class is just a namespace with the benefit of being friend-able.
| using aria::reactive::GraphInspector::FlushTracer = std::function<void(const FlushEvent&)> |
|
inlinestatic |
|
inlinestatic |
Emit the reachable subgraph as a Graphviz DOT document.
Usage: std::ofstream("g.dot") << GraphInspector::to_dot({&prop, &comp}); dot -Tsvg g.dot -o g.svg
|
inlinestatic |
Emit the reachable subgraph as a minimal JSON document.
Schema: { "nodes": [{"id","kind","state","depth","version","name"}...], "edges": [{"from","to","observed_version"}...] }
|
inlinestatic |
Install a tracer.
Replaces any previously installed one. Pass an empty function (or call clear_flush_tracer()) to disable.
Cost when NOT installed: a single pointer load + null check in Graph::flush / Graph::pull. Cost when installed: one virtual call (std::function invocation) per event plus a steady_clock::now() pair around every Pull.
|
inlinestaticnoexcept |
|
inlinestaticnodiscardnoexcept |
|
inlinestatic |
Human-readable one-line-per-node summary, useful inside gdb or during ad-hoc printf debugging.