pub struct Server<F: FileSystem + Sync> { /* private fields */ }
Expand description

Fuse Server to handle requests from the Fuse client and vhost user master.

Implementations§

source§

impl<F: AsyncFileSystem + Sync> Server<F>

source

pub async unsafe fn async_handle_message<S: BitmapSlice>( &self, r: Reader<'_, S>, w: Writer<'_, S>, vu_req: Option<&mut dyn FsCacheReqHandler>, hook: Option<&dyn MetricsHook> ) -> Result<usize>

Main entrance to handle requests from the transport layer.

It receives Fuse requests from transport layers, parses the request according to Fuse ABI, invokes filesystem drivers to server the requests, and eventually send back the result to the transport layer.

Safety

The async io framework borrows underlying buffers from Reader and Writer, so the caller must ensure all data buffers managed by the Reader and Writer are valid until the Future object returned has completed. Other subsystems, such as the transport layer, rely on the invariant.

source§

impl<F: FileSystem + Sync> Server<F>

source

pub fn handle_message<S: BitmapSlice>( &self, r: Reader<'_, S>, w: Writer<'_, S>, vu_req: Option<&mut dyn FsCacheReqHandler>, hook: Option<&dyn MetricsHook> ) -> Result<usize>

Main entrance to handle requests from the transport layer.

It receives Fuse requests from transport layers, parses the request according to Fuse ABI, invokes filesystem drivers to server the requests, and eventually send back the result to the transport layer.

source§

impl<F: FileSystem + Sync> Server<F>

source

pub fn new(fs: F) -> Server<F>

Create a Server instance from a filesystem driver object.

Auto Trait Implementations§

§

impl<F> RefUnwindSafe for Server<F>where F: RefUnwindSafe,

§

impl<F> Send for Server<F>where F: Send,

§

impl<F> Sync for Server<F>

§

impl<F> Unpin for Server<F>where F: Unpin,

§

impl<F> UnwindSafe for Server<F>where F: UnwindSafe,

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
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.