v2.0.0
Loading...
Searching...
No Matches
mna_port.h
Go to the documentation of this file.
1//=============================================================================================================
29
30#ifndef MNA_PORT_H
31#define MNA_PORT_H
32
33//=============================================================================================================
34// INCLUDES
35//=============================================================================================================
36
37#include "mna_global.h"
38#include "mna_types.h"
39
40//=============================================================================================================
41// QT INCLUDES
42//=============================================================================================================
43
44#include <QString>
45#include <QJsonObject>
46#include <QCborMap>
47#include <QSet>
48
49//=============================================================================================================
50// DEFINE NAMESPACE MNALIB
51//=============================================================================================================
52
53namespace MNALIB
54{
55
56//=============================================================================================================
63{
64 QString name;
67
68 // Connection (for input ports — identifies the upstream source)
69 QString sourceNodeId;
71
72 // Real-time stream binding (used when dataKind == RealTimeStream)
73 //
74 // Supported stream protocols:
75 // "fiff-rt" — FIFF real-time protocol (MNE Scan native, TCP-based)
76 // "lsl" — Lab Streaming Layer (multicast, cross-platform)
77 // "ftbuffer" — FieldTrip buffer protocol (TCP, language-agnostic)
78 // "shm" — Shared memory transport (single-machine, zero-copy)
79 // "" — Internal Qt signal/slot wiring (in-process, default)
80 //
84
85 // Cached result reference (for output ports)
88 QJsonObject extras;
89
90 QJsonObject toJson() const;
91 static MnaPort fromJson(const QJsonObject& json);
92 QCborMap toCbor() const;
93 static MnaPort fromCbor(const QCborMap& cbor);
94};
95
96} // namespace MNALIB
97
98#endif // MNA_PORT_H
Export/import macros, build-info accessors, and MNALIB namespace anchor for the MNE Analysis Containe...
#define MNASHARED_EXPORT
Definition mna_global.h:47
Enums and string-conversion helpers for the MNA container vocabulary (file roles, data kinds,...
MNE Analysis Container Format (mna/mnx).
MnaDataKind
Definition mna_types.h:89
@ Custom
User-defined data kind.
Definition mna_types.h:104
Named, typed port on an MNA graph node with upstream link and optional real-time stream binding.
Definition mna_port.h:63
QString cachedResultHash
SHA-256 for invalidation.
Definition mna_port.h:87
QString name
Port name (unique within a node).
Definition mna_port.h:64
QJsonObject toJson() const
Definition mna_port.cpp:105
QString sourcePortName
Which output port on that node?
Definition mna_port.h:70
MnaDataKind dataKind
Data kind flowing through this port.
Definition mna_port.h:65
MnaPortDir direction
Input or Output.
Definition mna_port.h:66
QCborMap toCbor() const
Definition mna_port.cpp:164
QString cachedResultPath
Relative path to cached result.
Definition mna_port.h:86
int streamBufferMs
Ring-buffer length in ms (0 = unbounded).
Definition mna_port.h:83
QString streamEndpoint
Protocol-specific address (e.g. "localhost:4218" for fiff-rt).
Definition mna_port.h:82
QJsonObject extras
Unknown keys preserved for lossless round-trip.
Definition mna_port.h:88
static MnaPort fromJson(const QJsonObject &json)
Definition mna_port.cpp:133
QString sourceNodeId
Which node produces this input? (empty → graph-level input).
Definition mna_port.h:69
static MnaPort fromCbor(const QCborMap &cbor)
Definition mna_port.cpp:190
QString streamProtocol
"fiff-rt", "lsl", "ftbuffer", "shm", "" = internal signal/slot
Definition mna_port.h:81