RemoteSessionServer
Serves the sessions of this node to one peer, with one RemoteDriverHost per session (trove-parts §TPN-11).
| Inherits | QObject |
| Group | libllm |
Declared in src/libs/libllm/llm/comms/RemoteSessionServer.hpp.
Detailed description
The server answers the peer's capability query with its advertisement. For each `open`, it asks its DriverMaker for a driver that resumes the provider session of the open, binds a new RemoteDriverHost to the session, and starts the driver. A second `open` for a session that is open changes nothing. When the server cannot make or start a driver, the peer receives a failed turn with the reason, because the protocol has no frame for a refused open and a silent refusal leaves the peer waiting.
The courier does not keep the order of its messages. An operation for a session that is not open yet, a prompt for example, waits for the open of that session for at most kEarlyHoldMs, and then runs on the new session in the order that it arrived.
A turn finisher (setTurnFinisher()) runs after each completed turn of a session, and the peer learns that the turn ended when it is done. The door host pushes the lane's branch there (trove-parts §TPL-5).
See also RemoteDriverHost, RemoteNodeDriver, LLMCourier.