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§
Sourcefn 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 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.
Sourcefn 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 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.
Sourcefn 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 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.
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,
Sourcefn 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 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.
Sourcefn flush<'life0, 'async_trait>(
&'life0 self,
) -> 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,
Sends a flush request to the underlying block device.
Sourcefn close<'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,
Closes the fifo.
Sourcefn block_size(&self) -> u32
fn block_size(&self) -> u32
Returns the block size of the device.
Sourcefn block_count(&self) -> u64
fn block_count(&self) -> u64
Returns the size, in blocks, of the device.
Sourcefn block_flags(&self) -> BlockFlags
fn block_flags(&self) -> BlockFlags
Returns the block flags reported by the device.
Sourcefn is_connected(&self) -> bool
fn is_connected(&self) -> bool
Returns true if the remote fifo is still connected.
Provided Methods§
Sourcefn 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,
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.