Struct disk::asynchronous::AsyncDiskFileWrapper
source · pub struct AsyncDiskFileWrapper<T: DiskFile + Send> {
blocking_pool: BlockingPool,
inner: Arc<T>,
}
Expand description
Async wrapper around a non-async DiskFile
using a BlockingPool
.
This is meant to be a transitional type, not a long-term solution for async disk support. Disk formats should be migrated to support async instead (b/219595052).
Fields§
§blocking_pool: BlockingPool
§inner: Arc<T>
Implementations§
Trait Implementations§
source§impl<T: DiskFile + Send> AsRawDescriptors for AsyncDiskFileWrapper<T>
impl<T: DiskFile + Send> AsRawDescriptors for AsyncDiskFileWrapper<T>
source§fn as_raw_descriptors(&self) -> Vec<RawDescriptor>
fn as_raw_descriptors(&self) -> Vec<RawDescriptor>
Returns the underlying raw descriptors. Read more
source§impl<T: 'static + DiskFile + DiskFlush + Send + Sync + FileAllocate + FileSetLen + FileSync + PunchHole + WriteZeroesAt> AsyncDisk for AsyncDiskFileWrapper<T>
impl<T: 'static + DiskFile + DiskFlush + Send + Sync + FileAllocate + FileSetLen + FileSync + PunchHole + WriteZeroesAt> AsyncDisk for AsyncDiskFileWrapper<T>
source§fn flush<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = Result<()>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn flush<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = Result<()>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Flush intermediary buffers and/or dirty state to file. fsync not required.
source§fn fsync<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = Result<()>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn fsync<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = Result<()>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Asynchronously fsyncs any completed operations to the disk.
source§fn fdatasync<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = Result<()>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn fdatasync<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = Result<()>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Asynchronously fdatasyncs any completed operations to the disk.
Note that an implementation may simply call fsync for fdatasync.
source§fn read_to_mem<'a, 'async_trait>(
&'a self,
file_offset: u64,
mem: Arc<dyn BackingMemory + Send + Sync>,
mem_offsets: MemRegionIter<'a>
) -> Pin<Box<dyn Future<Output = Result<usize>> + 'async_trait>>where
Self: 'async_trait,
'a: 'async_trait,
fn read_to_mem<'a, 'async_trait>(
&'a self,
file_offset: u64,
mem: Arc<dyn BackingMemory + Send + Sync>,
mem_offsets: MemRegionIter<'a>
) -> Pin<Box<dyn Future<Output = Result<usize>> + 'async_trait>>where
Self: 'async_trait,
'a: 'async_trait,
Reads from the file at ‘file_offset’ into memory
mem
at mem_offsets
.
mem_offsets
is similar to an iovec except relative to the start of mem
.source§fn write_from_mem<'a, 'async_trait>(
&'a self,
file_offset: u64,
mem: Arc<dyn BackingMemory + Send + Sync>,
mem_offsets: MemRegionIter<'a>
) -> Pin<Box<dyn Future<Output = Result<usize>> + 'async_trait>>where
Self: 'async_trait,
'a: 'async_trait,
fn write_from_mem<'a, 'async_trait>(
&'a self,
file_offset: u64,
mem: Arc<dyn BackingMemory + Send + Sync>,
mem_offsets: MemRegionIter<'a>
) -> Pin<Box<dyn Future<Output = Result<usize>> + 'async_trait>>where
Self: 'async_trait,
'a: 'async_trait,
Writes to the file at ‘file_offset’ from memory
mem
at mem_offsets
.source§fn punch_hole<'life0, 'async_trait>(
&'life0 self,
file_offset: u64,
length: u64
) -> Pin<Box<dyn Future<Output = Result<()>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn punch_hole<'life0, 'async_trait>(
&'life0 self,
file_offset: u64,
length: u64
) -> Pin<Box<dyn Future<Output = Result<()>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Replaces a range of bytes with a hole.
source§fn write_zeroes_at<'life0, 'async_trait>(
&'life0 self,
file_offset: u64,
length: u64
) -> Pin<Box<dyn Future<Output = Result<()>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn write_zeroes_at<'life0, 'async_trait>(
&'life0 self,
file_offset: u64,
length: u64
) -> Pin<Box<dyn Future<Output = Result<()>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Writes up to
length
bytes of zeroes to the stream, returning how many bytes were written.source§fn read_double_buffered<'life0, 'life1, 'async_trait>(
&'life0 self,
file_offset: u64,
buf: &'life1 mut [u8]
) -> Pin<Box<dyn Future<Output = Result<usize>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn read_double_buffered<'life0, 'life1, 'async_trait>(
&'life0 self,
file_offset: u64,
buf: &'life1 mut [u8]
) -> Pin<Box<dyn Future<Output = Result<usize>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Reads from the file at ‘file_offset’ into
buf
. Read moresource§fn write_double_buffered<'life0, 'life1, 'async_trait>(
&'life0 self,
file_offset: u64,
buf: &'life1 [u8]
) -> Pin<Box<dyn Future<Output = Result<usize>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn write_double_buffered<'life0, 'life1, 'async_trait>(
&'life0 self,
file_offset: u64,
buf: &'life1 [u8]
) -> Pin<Box<dyn Future<Output = Result<usize>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Writes to the file at ‘file_offset’ from
buf
. Read moresource§impl<T: DiskFile + Send> DiskGetLen for AsyncDiskFileWrapper<T>
impl<T: DiskFile + Send> DiskGetLen for AsyncDiskFileWrapper<T>
source§impl<T: DiskFile + Send + FileAllocate> FileAllocate for AsyncDiskFileWrapper<T>
impl<T: DiskFile + Send + FileAllocate> FileAllocate for AsyncDiskFileWrapper<T>
Auto Trait Implementations§
impl<T> RefUnwindSafe for AsyncDiskFileWrapper<T>where
T: RefUnwindSafe,
impl<T> Send for AsyncDiskFileWrapper<T>where
T: Sync,
impl<T> Sync for AsyncDiskFileWrapper<T>where
T: Sync,
impl<T> Unpin for AsyncDiskFileWrapper<T>
impl<T> UnwindSafe for AsyncDiskFileWrapper<T>where
T: RefUnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more