Stateless executor that runs an MnaGraph in topological order, in batch or stream mode, and reports progress. More...
#include "mna_global.h"#include "mna_node.h"#include <QString>#include <QMap>#include <QVariant>#include <QVariantMap>#include <QObject>#include <functional>

Go to the source code of this file.
Classes | |
| class | MNALIB::MnaGraphExecutor |
| Stateless batch and stream-mode runner for an MnaGraph. More... | |
| struct | MNALIB::MnaGraphExecutor::Context |
| struct | MNALIB::MnaGraphExecutor::StreamContext |
Namespaces | |
| namespace | MNALIB |
| MNE Analysis Container Format (mna/mnx). | |
Stateless executor that runs an MnaGraph in topological order, in batch or stream mode, and reports progress.
SPDX-License-Identifier: BSD-3-Clause Copyright (c) 2026 MNE-CPP Authors
MnaGraphExecutor is the bridge between the declarative MnaGraph and the live op functions registered with MnaOpRegistry. execute walks the topologically-sorted node list, feeds each one its inputs from the Context result map (keyed by nodeId::portName) plus the graphInputs map, invokes the registered op function and stores the outputs back into the context; executeIncremental restricts the walk to dirty nodes and their downstream dependents so a parameter tweak does not re-run the whole pipeline.
Stream mode (startStream / stopStream) targets MNE Scan: instead of calling op functions, the executor asks a host-supplied PluginFactory for a live QObject per node, applies MnaParamTree values to the plugin's attributes, and wires up port connections so the graph drives a continuously-running real-time pipeline. The mna library deliberately holds plugins as QObject* to avoid pulling in MNE Scan as a dependency.
Definition in file mna_graph_executor.h.