block_client

Trait BlockClient

Source
pub trait BlockClient: Send + Sync {
    // Required methods
    fn attach_vmo<'life0, 'life1, 'async_trait>(
        &'life0 self,
        vmo: &'life1 Vmo,
    ) -> Pin<Box<dyn Future<Output = Result<VmoId, Status>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn detach_vmo<'life0, 'async_trait>(
        &'life0 self,
        vmo_id: VmoId,
    ) -> Pin<Box<dyn Future<Output = Result<(), Status>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn read_at<'life0, 'life1, 'async_trait>(
        &'life0 self,
        buffer_slice: MutableBufferSlice<'life1>,
        device_offset: u64,
    ) -> Pin<Box<dyn Future<Output = Result<(), Status>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn write_at_with_opts<'life0, 'life1, 'async_trait>(
        &'life0 self,
        buffer_slice: BufferSlice<'life1>,
        device_offset: u64,
        opts: WriteOptions,
    ) -> Pin<Box<dyn Future<Output = Result<(), Status>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn trim<'life0, 'async_trait>(
        &'life0 self,
        device_range: Range<u64>,
    ) -> Pin<Box<dyn Future<Output = Result<(), Status>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn flush<'life0, 'async_trait>(
        &'life0 self,
    ) -> Pin<Box<dyn Future<Output = Result<(), Status>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn close<'life0, 'async_trait>(
        &'life0 self,
    ) -> Pin<Box<dyn Future<Output = Result<(), Status>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn block_size(&self) -> u32;
    fn block_count(&self) -> u64;
    fn block_flags(&self) -> BlockFlags;
    fn is_connected(&self) -> bool;

    // Provided method
    fn write_at<'life0, 'life1, 'async_trait>(
        &'life0 self,
        buffer_slice: BufferSlice<'life1>,
        device_offset: u64,
    ) -> Pin<Box<dyn Future<Output = Result<(), Status>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait { ... }
}
Expand description

Represents a client connection to a block device. This is a simplified version of the block.fidl interface. Most users will use the RemoteBlockClient instantiation of this trait.

Required Methods§

Source

fn attach_vmo<'life0, 'life1, 'async_trait>( &'life0 self, vmo: &'life1 Vmo, ) -> Pin<Box<dyn Future<Output = Result<VmoId, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Wraps AttachVmo from fuchsia.hardware.block::Block.

Source

fn detach_vmo<'life0, 'async_trait>( &'life0 self, vmo_id: VmoId, ) -> Pin<Box<dyn Future<Output = Result<(), Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Detaches the given vmo-id from the device.

Source

fn read_at<'life0, 'life1, 'async_trait>( &'life0 self, buffer_slice: MutableBufferSlice<'life1>, device_offset: u64, ) -> Pin<Box<dyn Future<Output = Result<(), Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Reads from the device at |device_offset| into the given buffer slice.

Source

fn write_at_with_opts<'life0, 'life1, 'async_trait>( &'life0 self, buffer_slice: BufferSlice<'life1>, device_offset: u64, opts: WriteOptions, ) -> Pin<Box<dyn Future<Output = Result<(), Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn trim<'life0, 'async_trait>( &'life0 self, device_range: Range<u64>, ) -> Pin<Box<dyn Future<Output = Result<(), Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Trims the given range on the block device.

Source

fn flush<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<(), Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Sends a flush request to the underlying block device.

Source

fn close<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<(), Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Closes the fifo.

Source

fn block_size(&self) -> u32

Returns the block size of the device.

Source

fn block_count(&self) -> u64

Returns the size, in blocks, of the device.

Source

fn block_flags(&self) -> BlockFlags

Returns the block flags reported by the device.

Source

fn is_connected(&self) -> bool

Returns true if the remote fifo is still connected.

Provided Methods§

Source

fn write_at<'life0, 'life1, 'async_trait>( &'life0 self, buffer_slice: BufferSlice<'life1>, device_offset: u64, ) -> Pin<Box<dyn Future<Output = Result<(), Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Writes the data in |buffer_slice| to the device.

Implementors§