v2.0.0
Loading...
Searching...
No Matches
mna_graph_executor.h File Reference

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>
Include dependency graph for mna_graph_executor.h:
This graph shows which files directly or indirectly include this file:

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).

Detailed Description

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

Author
Christoph Dinh chris.nosp@m.toph.nosp@m..dinh.nosp@m.@mne.nosp@m.-cpp..nosp@m.org
Since
2.2.0
Date
April 2026

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.