Trait LauncherClientSender

Source
pub trait LauncherClientSender {
    type Transport: Transport;

    // Required methods
    fn launch<___R>(
        &self,
        request: &mut ___R,
    ) -> Result<ResponseFuture<'_, Self::Transport, Launch>, EncodeError>
       where ___R: Encode<<Self::Transport as Transport>::SendBuffer, Encoded = WireLauncherLaunchRequest>;
    fn create_without_starting<___R>(
        &self,
        request: &mut ___R,
    ) -> Result<ResponseFuture<'_, Self::Transport, CreateWithoutStarting>, EncodeError>
       where ___R: Encode<<Self::Transport as Transport>::SendBuffer, Encoded = WireLauncherCreateWithoutStartingRequest>;
    fn add_args<___R>(
        &self,
        request: &mut ___R,
    ) -> Result<SendFuture<'_, Self::Transport>, EncodeError>
       where ___R: Encode<<Self::Transport as Transport>::SendBuffer, Encoded = WireLauncherAddArgsRequest>;
    fn add_environs<___R>(
        &self,
        request: &mut ___R,
    ) -> Result<SendFuture<'_, Self::Transport>, EncodeError>
       where ___R: Encode<<Self::Transport as Transport>::SendBuffer, Encoded = WireLauncherAddEnvironsRequest>;
    fn add_names<___R>(
        &self,
        request: &mut ___R,
    ) -> Result<SendFuture<'_, Self::Transport>, EncodeError>
       where ___R: Encode<<Self::Transport as Transport>::SendBuffer, Encoded = WireLauncherAddNamesRequest>;
    fn add_handles<___R>(
        &self,
        request: &mut ___R,
    ) -> Result<SendFuture<'_, Self::Transport>, EncodeError>
       where ___R: Encode<<Self::Transport as Transport>::SendBuffer, Encoded = WireLauncherAddHandlesRequest>;
    fn set_options<___R>(
        &self,
        request: &mut ___R,
    ) -> Result<SendFuture<'_, Self::Transport>, EncodeError>
       where ___R: Encode<<Self::Transport as Transport>::SendBuffer, Encoded = WireLauncherSetOptionsRequest>;
}
Expand description

A helper trait for the Launcher client sender.

Required Associated Types§

Source

type Transport: Transport

Required Methods§

Source

fn launch<___R>( &self, request: &mut ___R, ) -> Result<ResponseFuture<'_, Self::Transport, Launch>, EncodeError>
where ___R: Encode<<Self::Transport as Transport>::SendBuffer, Encoded = WireLauncherLaunchRequest>,

Creates and starts the process described by info.

After processing this message, the Launcher is reset to its initial state and is ready to launch another process.

process is present if, and only if, status is ZX_OK.

Source

fn create_without_starting<___R>( &self, request: &mut ___R, ) -> Result<ResponseFuture<'_, Self::Transport, CreateWithoutStarting>, EncodeError>
where ___R: Encode<<Self::Transport as Transport>::SendBuffer, Encoded = WireLauncherCreateWithoutStartingRequest>,

Creates the process described by info but does not start it.

After processing this message, the Launcher is reset to its initial state and is ready to launch another process.

The caller is responsible for calling zx_process_start using the data in ProcessStartData to actually start the process.

data is present if, and only if, status is ZX_OK.

Source

fn add_args<___R>( &self, request: &mut ___R, ) -> Result<SendFuture<'_, Self::Transport>, EncodeError>
where ___R: Encode<<Self::Transport as Transport>::SendBuffer, Encoded = WireLauncherAddArgsRequest>,

Adds the given arguments to the command-line for the process.

Calling this method multiple times concatenates the arguments.

Source

fn add_environs<___R>( &self, request: &mut ___R, ) -> Result<SendFuture<'_, Self::Transport>, EncodeError>
where ___R: Encode<<Self::Transport as Transport>::SendBuffer, Encoded = WireLauncherAddEnvironsRequest>,

Adds the given variables to the environment variables for the process.

Calling this method multiple times concatenates the variables.

Source

fn add_names<___R>( &self, request: &mut ___R, ) -> Result<SendFuture<'_, Self::Transport>, EncodeError>
where ___R: Encode<<Self::Transport as Transport>::SendBuffer, Encoded = WireLauncherAddNamesRequest>,

Adds the given names to the namespace for the process.

The paths in the namespace must be non-overlapping. See https://fuchsia.dev/fuchsia-src/concepts/process/namespaces for details.

Calling this method multiple times concatenates the names.

Source

fn add_handles<___R>( &self, request: &mut ___R, ) -> Result<SendFuture<'_, Self::Transport>, EncodeError>
where ___R: Encode<<Self::Transport as Transport>::SendBuffer, Encoded = WireLauncherAddHandlesRequest>,

Adds the given handles to the startup handles for the process.

Calling this method multiple times concatenates the handles.

Source

fn set_options<___R>( &self, request: &mut ___R, ) -> Result<SendFuture<'_, Self::Transport>, EncodeError>
where ___R: Encode<<Self::Transport as Transport>::SendBuffer, Encoded = WireLauncherSetOptionsRequest>,

Sets the options with which the process is created.

Calling this method multiple times will overwrite the current options.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<___T> LauncherClientSender for ClientSender<___T, Launcher>
where ___T: Transport,

Source§

fn launch<___R>( &self, request: &mut ___R, ) -> Result<ResponseFuture<'_, Self::Transport, Launch>, EncodeError>
where ___R: Encode<<Self::Transport as Transport>::SendBuffer, Encoded = WireLauncherLaunchRequest>,

Creates and starts the process described by info.

After processing this message, the Launcher is reset to its initial state and is ready to launch another process.

process is present if, and only if, status is ZX_OK.

Source§

fn create_without_starting<___R>( &self, request: &mut ___R, ) -> Result<ResponseFuture<'_, Self::Transport, CreateWithoutStarting>, EncodeError>
where ___R: Encode<<Self::Transport as Transport>::SendBuffer, Encoded = WireLauncherCreateWithoutStartingRequest>,

Creates the process described by info but does not start it.

After processing this message, the Launcher is reset to its initial state and is ready to launch another process.

The caller is responsible for calling zx_process_start using the data in ProcessStartData to actually start the process.

data is present if, and only if, status is ZX_OK.

Source§

fn add_args<___R>( &self, request: &mut ___R, ) -> Result<SendFuture<'_, Self::Transport>, EncodeError>
where ___R: Encode<<Self::Transport as Transport>::SendBuffer, Encoded = WireLauncherAddArgsRequest>,

Adds the given arguments to the command-line for the process.

Calling this method multiple times concatenates the arguments.

Source§

fn add_environs<___R>( &self, request: &mut ___R, ) -> Result<SendFuture<'_, Self::Transport>, EncodeError>
where ___R: Encode<<Self::Transport as Transport>::SendBuffer, Encoded = WireLauncherAddEnvironsRequest>,

Adds the given variables to the environment variables for the process.

Calling this method multiple times concatenates the variables.

Source§

fn add_names<___R>( &self, request: &mut ___R, ) -> Result<SendFuture<'_, Self::Transport>, EncodeError>
where ___R: Encode<<Self::Transport as Transport>::SendBuffer, Encoded = WireLauncherAddNamesRequest>,

Adds the given names to the namespace for the process.

The paths in the namespace must be non-overlapping. See https://fuchsia.dev/fuchsia-src/concepts/process/namespaces for details.

Calling this method multiple times concatenates the names.

Source§

fn add_handles<___R>( &self, request: &mut ___R, ) -> Result<SendFuture<'_, Self::Transport>, EncodeError>
where ___R: Encode<<Self::Transport as Transport>::SendBuffer, Encoded = WireLauncherAddHandlesRequest>,

Adds the given handles to the startup handles for the process.

Calling this method multiple times concatenates the handles.

Source§

fn set_options<___R>( &self, request: &mut ___R, ) -> Result<SendFuture<'_, Self::Transport>, EncodeError>
where ___R: Encode<<Self::Transport as Transport>::SendBuffer, Encoded = WireLauncherSetOptionsRequest>,

Sets the options with which the process is created.

Calling this method multiple times will overwrite the current options.

Source§

type Transport = ___T

Implementors§