pub struct VmProtoAgent { /* private fields */ }Expand description
The guest agent of one running VM, reached over its vsock device.
Implementations§
Trait Implementations§
Source§impl GuestAgent for VmProtoAgent
impl GuestAgent for VmProtoAgent
Source§fn run<'life0, 'async_trait>(
&'life0 self,
start: StartCommand,
) -> Pin<Box<dyn Future<Output = Result<Receiver<Result<OutputChunk>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn run<'life0, 'async_trait>(
&'life0 self,
start: StartCommand,
) -> Pin<Box<dyn Future<Output = Result<Receiver<Result<OutputChunk>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Run a command and stream its output. The final
OutputChunk is
always OutputChunk::Exit.Source§fn exec<'life0, 'async_trait>(
&'life0 self,
start: StartCommand,
) -> Pin<Box<dyn Future<Output = Result<(ExecInput, Receiver<Result<OutputChunk>>)>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn exec<'life0, 'async_trait>(
&'life0 self,
start: StartCommand,
) -> Pin<Box<dyn Future<Output = Result<(ExecInput, Receiver<Result<OutputChunk>>)>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Start an interactive session: input sink, output stream.
Source§fn sync_clock<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<ClockSync>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn sync_clock<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<ClockSync>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Set the guest wall clock to the host’s now. Read more
Source§fn reconfigure_network<'life0, 'life1, 'async_trait>(
&'life0 self,
cmd: &'life1 NetReconfigCommand,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn reconfigure_network<'life0, 'life1, 'async_trait>(
&'life0 self,
cmd: &'life1 NetReconfigCommand,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Re-address the guest after a restore onto a fresh network.
Source§fn wait_for_port<'life0, 'async_trait>(
&'life0 self,
port: u16,
timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<PortWait>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn wait_for_port<'life0, 'async_trait>(
&'life0 self,
port: u16,
timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<PortWait>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Wait until the guest’s own listen table has a listener on
port —
never a connect probe, which would perturb the workload.Source§fn files(&self) -> &dyn GuestFiles
fn files(&self) -> &dyn GuestFiles
The file channel into this Computer.
Source§impl GuestFiles for VmProtoAgent
impl GuestFiles for VmProtoAgent
Source§fn read<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn read<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Read a whole file.
Source§fn write<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 str,
mode: u32,
data: &'life2 [u8],
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn write<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 str,
mode: u32,
data: &'life2 [u8],
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Write a whole file, creating it with
mode.Source§fn stat<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<FileStatDto>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn stat<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<FileStatDto>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Stat one path; symlinks are reported, not followed.
Source§fn list<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<FileStatDto>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn list<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<FileStatDto>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
List a directory, non-recursively, with full per-entry metadata.
Source§fn make_dir<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 str,
mode: u32,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn make_dir<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 str,
mode: u32,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Create a directory and any missing parents; succeeds if it exists.
Source§fn remove<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 str,
recursive: bool,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn remove<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 str,
recursive: bool,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Remove a file, symlink or directory; a non-empty directory needs
recursive.Source§fn rename<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
from: &'life1 str,
to: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn rename<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
from: &'life1 str,
to: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Rename an entry within the Computer.
Source§fn watch<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 str,
recursive: bool,
) -> Pin<Box<dyn Future<Output = Result<DirWatch>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn watch<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 str,
recursive: bool,
) -> Pin<Box<dyn Future<Output = Result<DirWatch>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Open a directory watch. The stream ends cleanly when the Computer
stops; dropping it cancels the watch.
Auto Trait Implementations§
impl !RefUnwindSafe for VmProtoAgent
impl !UnwindSafe for VmProtoAgent
impl Freeze for VmProtoAgent
impl Send for VmProtoAgent
impl Sync for VmProtoAgent
impl Unpin for VmProtoAgent
impl UnsafeUnpin for VmProtoAgent
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more