SerialSessionManager
Owns the live serial port sessions of one node, keyed by connection id.
| Declared in | src/libs/libserialsession/serialsession/SerialSessionManager.hpp |
| Inherits | QObject |
| Group | serialsession |
Detailed description
A session opens on a stored SerialConnection. It stays open until a caller closes it or the device detaches. A session does not belong to a UI tab: tabs and OPAL tasks attach to the same session through the signals of the manager, and when the last viewer closes, the port stays open. Each session keeps a rolling 1 MiB receive buffer, which readTail() reads, and at most one drip-feed LineStreamRun. A manual write is refused while a drip-feed runs.
SerialSessionService creates the manager and keeps it for its own life, and Node::serialSessions() returns it. When the node leaves NodeActive, the service closes every session. The manager and its ports live on the UI thread. The public methods are Q_INVOKABLE, so an OPAL worker thread can call them through a blocking queued connection, as SerialOpalContext does.