pub struct VhostUserListener(SocketListener);
Expand description

On Unix we can listen to a socket.

Tuple Fields§

§0: SocketListener

Implementations§

source§

impl VhostUserListener

source

pub fn new_socket( path: &str, keep_rds: Option<&mut Vec<RawDescriptor>> ) -> Result<Self>

Creates a new regular vhost-user listener, listening on path.

keep_rds can be specified to retrieve the raw descriptors that must be preserved for this listener to keep working after forking.

Trait Implementations§

source§

impl VhostUserListenerTrait for VhostUserListener

source§

fn new(path: &str, keep_rds: Option<&mut Vec<RawDescriptor>>) -> Result<Self>

Create a vhost-user listener from a UNIX domain socket path.

keep_rds can be specified to retrieve the raw descriptors that must be preserved for this listener to keep working after forking.

source§

fn run_req_handler<'e>( self, handler: Box<dyn Backend>, ex: &'e Executor ) -> Pin<Box<dyn Future<Output = Result<()>> + 'e>>

Returns a Future that processes requests for handler. The future exits when the front-end side disconnects or an error occurs.
source§

fn take_parent_process_resources(&mut self) -> Option<Box<dyn Any>>

Take and return resources owned by the parent process in case of a incoming fork. Read more
source§

fn run_backend<'e>( self, backend: impl VhostUserDevice + 'static, ex: &'e Executor ) -> Pin<Box<dyn Future<Output = Result<()>> + 'e>>where Self: Sized,

Returns a Future that will process requests from backend when polled. The future exits when the front-end side disconnects or an error occurs. Read more
source§

fn run_device( self, ex: Executor, device: Box<dyn VhostUserDeviceBuilder> ) -> Result<()>where Self: Sized,

Start processing requests for a VhostUserDevice on listener. Returns when the front-end side disconnects or an error occurs.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for Twhere T: Any,

§

fn into_any(self: Box<T, Global>) -> Box<dyn Any, Global>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T, Global>) -> Rc<dyn Any, Global>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V