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

Process-wide singleton catalog mapping opType strings to their MNALIB::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 MNALIB::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

MNALIB::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 MNALIB::MnaOpSchema (used by MnaGraph::validate and by GUI editors to render attribute forms), and one from op type to an OpFunc lambda (used by MNALIB::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 MNALIB::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.