Struct Client
struct Client {
hostname: String,
window_handle: HWND,
process_handle: HANDLE,
process_id: u32,
state_sender: Sender<ClientState>,
highlight_sender: Sender<bool>,
tile_index: usize,
}Expand description
Representation of a client
Fields§
§hostname: StringHostname the client is connect to (or supposed to connect to).
window_handle: HWNDWindow handle to the clients console window.
process_handle: HANDLEProcess handle to the client process.
process_id: u32Process id of the client process.
Used by the pipe server task to correlate which client has connected to it, via a handshake over the named pipe.
state_sender: Sender<ClientState>Authoritative source for this client’s ClientState.
The daemon broadcasts new state values through the [watch::Sender];
the assigned pipe-server task subscribes upon successful PID
correlation and forwards every change to the client over the named
pipe. [watch::Sender] is itself Clone, so cloning a Client
produces another sender that drives the same channel.
highlight_sender: Sender<bool>Authoritative source for this client’s highlight flag, set while
the client is the daemon’s currently selected submenu client.
Visual only; input gating uses Client::state_sender.
tile_index: usizeIndex passed to arrange_client_window when this client’s
on-screen position was last computed. Survives
Clients::retain so the submenu navigation grid keeps
matching the visible layout until the next retile.