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

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 MnaScript), plus the MnaOpSchemaPort and 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 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 MnaRegistryLoader rather than written in C++.

Definition in file mna_op_schema.h.