Trait zellij_server::os_input_output::ServerOsApi [−][src]
pub trait ServerOsApi: Send + Sync {
Show 17 methods
fn set_terminal_size_using_fd(&self, fd: RawFd, cols: u16, rows: u16);
fn spawn_terminal(
&self,
terminal_action: TerminalAction
) -> (RawFd, ChildId);
fn read_from_tty_stdout(
&self,
fd: RawFd,
buf: &mut [u8]
) -> Result<usize, Error>;
fn async_file_reader(&self, fd: RawFd) -> Box<dyn AsyncReader>;
fn write_to_tty_stdin(&self, fd: RawFd, buf: &[u8]) -> Result<usize, Error>;
fn tcdrain(&self, fd: RawFd) -> Result<(), Error>;
fn kill(&self, pid: Pid) -> Result<(), Error>;
fn force_kill(&self, pid: Pid) -> Result<(), Error>;
fn box_clone(&self) -> Box<dyn ServerOsApi>;
fn recv_from_client(&self) -> (ClientToServerMsg, ErrorContext);
fn send_to_client(&self, msg: ServerToClientMsg);
fn add_client_sender(&self);
fn send_to_temp_client(&self, msg: ServerToClientMsg);
fn remove_client_sender(&self);
fn update_receiver(&mut self, stream: LocalSocketStream);
fn load_palette(&self) -> Palette;
fn get_cwd(&self, pid: Pid) -> Option<PathBuf>;
}
Expand description
The ServerOsApi
trait represents an abstract interface to the features of an operating system that
Zellij server requires.
Required methods
fn set_terminal_size_using_fd(&self, fd: RawFd, cols: u16, rows: u16)
fn set_terminal_size_using_fd(&self, fd: RawFd, cols: u16, rows: u16)
Sets the size of the terminal associated to file descriptor fd
.
fn spawn_terminal(&self, terminal_action: TerminalAction) -> (RawFd, ChildId)
fn spawn_terminal(&self, terminal_action: TerminalAction) -> (RawFd, ChildId)
Spawn a new terminal, with a terminal action. The returned tuple contains the master file descriptor of the forked psuedo terminal and a ChildId struct containing process id’s for the forked child process.
Read bytes from the standard output of the virtual terminal referred to by fd
.
fn async_file_reader(&self, fd: RawFd) -> Box<dyn AsyncReader>
fn async_file_reader(&self, fd: RawFd) -> Box<dyn AsyncReader>
Creates an AsyncReader
that can be used to read from fd
in an async context
Write bytes to the standard input of the virtual terminal referred to by fd
.
Wait until all output written to the object referred to by fd
has been transmitted.
Terminate the process with process ID pid
. (SIGTERM)
fn force_kill(&self, pid: Pid) -> Result<(), Error>
fn force_kill(&self, pid: Pid) -> Result<(), Error>
Terminate the process with process ID pid
. (SIGKILL)
fn box_clone(&self) -> Box<dyn ServerOsApi>
fn box_clone(&self) -> Box<dyn ServerOsApi>
Returns a Box
pointer to this ServerOsApi
struct.
fn recv_from_client(&self) -> (ClientToServerMsg, ErrorContext)
fn recv_from_client(&self) -> (ClientToServerMsg, ErrorContext)
Receives a message on server-side IPC channel
fn send_to_client(&self, msg: ServerToClientMsg)
fn send_to_client(&self, msg: ServerToClientMsg)
Sends a message to client
fn add_client_sender(&self)
fn add_client_sender(&self)
Adds a sender to client
fn send_to_temp_client(&self, msg: ServerToClientMsg)
fn send_to_temp_client(&self, msg: ServerToClientMsg)
Send to the temporary client
fn remove_client_sender(&self)
fn remove_client_sender(&self)
Removes the sender to client
fn update_receiver(&mut self, stream: LocalSocketStream)
fn update_receiver(&mut self, stream: LocalSocketStream)
Update the receiver socket for the client