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