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

Top-level MNA container binding subjects, processing pipeline, schema version and project metadata. More...

#include "mna_global.h"
#include "mna_subject.h"
#include "mna_node.h"
#include <QString>
#include <QList>
#include <QDateTime>
#include <QSharedPointer>
#include <QJsonObject>
#include <QCborMap>
Include dependency graph for mna_project.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  MNALIB::MnaProject

Namespaces

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

Detailed Description

Top-level MNA container binding subjects, processing pipeline, schema version and project metadata.

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

MnaProject is the in-memory representation of one .mna (JSON) or .mnx (CBOR) file and the entry point for every other MNALIB type: it owns the MnaSubject list (subject → session → recording → file) plus the MnaNode pipeline that describes how derivatives are produced from raw inputs. Reading or writing a project is a single MnaIO call away — read and write are thin façades that dispatch on extension.

The container is intentionally declarative: it records what should be computed (operations, parameters, file references and hashes) rather than embedding executable code, so collaborators on different platforms can reproduce the analysis using their own MNE-CPP build. mnaVersion / CURRENT_SCHEMA_VERSION are bumped on breaking schema changes, while extras preserves forward-compatible additions so projects written by a newer version round-trip losslessly through an older one.

Definition in file mna_project.h.