TCP client for the mne_rt_server command port (4217): negotiates session state via line- or JSON-encoded messages.
More...
#include "../com_global.h"#include "../rt_command/command_manager.h"#include "../rt_command/command.h"#include <QDataStream>#include <QMutex>#include <QSharedPointer>#include <QString>#include <QTcpSocket>

Go to the source code of this file.
Classes | |
| class | COMLIB::RtCmdClient |
QTcpSocket subclass driving the mne_rt_server control channel (default port 4217). More... | |
Namespaces | |
| namespace | COMLIB |
Real-time client/server communication primitives for talking to mne_rt_server. | |
TCP client for the mne_rt_server command port (4217): negotiates session state via line- or JSON-encoded messages.
SPDX-License-Identifier: BSD-3-Clause Copyright (c) 2026 MNE-CPP Authors
COMLIB::RtCmdClient is a QTcpSocket subclass that drives the server’s control channel. Two equivalent wire encodings are supported: plain CLI strings (newline-terminated tokens) for interactive shell use, and JSON command objects for programmatic clients. Both are produced from the same COMLIB::Command vocabulary so the help text, parameter list and reply parsing stay in lock-step regardless of which transport a caller picks.
The client maintains an internal COMLIB::CommandManager that is populated on demand by requestCommands(); after that round-trip the [] operator and hasCommand() expose the server’s self-described vocabulary so callers can ask, for example, client["start-measurement"] without hard-coding the parameter list locally. requestBufsize() and requestConnectors() are convenience wrappers around the corresponding server commands used during the RtClient handshake.
All socket reads are funnelled through waitForDataAvailable() and accumulated into m_sAvailableData, which readAvailableData() drains atomically under m_qMutex. The response(QString) signal fires whenever a complete reply has been collected so callers running in the GUI thread can react without polling the socket directly.
Definition in file rt_cmd_client.h.