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

Declarative contract for an MNA operation — expected input/output ports, attributes, binding kind and validation against a concrete MNALIB::MnaNode. More...

#include "mna_global.h"
#include "mna_types.h"
#include <QString>
#include <QStringList>
#include <QVariant>
#include <QMetaType>
#include <QList>
Include dependency graph for mna_op_schema.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  MNALIB::MnaOpSchemaPort
struct  MNALIB::MnaOpSchemaAttr
class  MNALIB::MnaOpSchema
 Operation schema for graph validation. More...

Namespaces

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

Detailed Description

Declarative contract for an MNA operation — expected input/output ports, attributes, binding kind and validation against a concrete MNALIB::MnaNode.

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::MnaOpSchema is the type information an MNA operation publishes to the rest of the system. It declares the opType identifier, version, category and binding mode (internal in-process function, cli external executable driven by cliTemplate, or script delegating to an inline MNALIB::MnaScript), plus the MNALIB::MnaOpSchemaPort and MNALIB::MnaOpSchemaAttr lists that describe expected I/O and parameters with their data kinds, default values and required flags.

The MnaOpSchema::validate method is the gatekeeper used by MnaGraph::validate and the GUI editor: it checks that a concrete MNALIB::MnaNode declares every required port, that the attribute types match QMetaType expectations, and that no unknown attribute leaks through. Schemas are normally authored declaratively in mna-registry.json and loaded by MNALIB::MnaRegistryLoader rather than written in C++.

Definition in file mna_op_schema.h.