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

Process-wide singleton catalog mapping opType strings to their MnaOpSchema and (for built-in ops) executable implementation. More...

#include "mna_global.h"
#include "mna_op_schema.h"
#include <QString>
#include <QStringList>
#include <QMap>
#include <QVariantMap>
#include <functional>
Include dependency graph for mna_op_registry.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  MNALIB::MnaOpRegistry
 Process-wide lookup from opType to MnaOpSchema and implementation function. More...

Namespaces

namespace  MNALIB
 MNE Analysis Container Format (mna/mnx).

Detailed Description

Process-wide singleton catalog mapping opType strings to their MnaOpSchema and (for built-in ops) executable implementation.

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

MnaOpRegistry is the lookup table that the rest of the library hits whenever an opType string needs to be resolved into something runnable. It stores two parallel maps: one from op type to MnaOpSchema (used by MnaGraph::validate and by GUI editors to render attribute forms), and one from op type to an OpFunc lambda (used by MnaGraphExecutor to run the node). External / CLI / Script ops typically only register a schema; in-process ops register both.

loadRegistryFiles searches upward from the application directory for resources/mna/ and asks MnaRegistryLoader to ingest mna-registry.json plus every drop-in under mna-registry.d/, so new operations can be added without rebuilding the library. missingOps reports the op types referenced by a loaded project that the current process cannot resolve — the simplest way to detect a stale or partial install.

Definition in file mna_op_registry.h.