pub struct BytesStorage { /* private fields */ }Expand description
The bytes storage maps IDs to reference-counted, initialized allocations. Removing an ID prevents new lookups; outstanding resources/guards keep the allocation alive until their last owner is dropped.
Implementations§
Source§impl BytesStorage
impl BytesStorage
Sourcepub fn with_relocation_barrier(
self,
barrier: impl Fn() + Send + Sync + 'static,
) -> Self
pub fn with_relocation_barrier( self, barrier: impl Fn() + Send + Sync + 'static, ) -> Self
Wait for the backend’s execution queue before resolving relocation copies.
Sourcepub fn try_get(
&self,
handle: &StorageHandle,
) -> Result<BytesResource, BytesAccessError>
pub fn try_get( &self, handle: &StorageHandle, ) -> Result<BytesResource, BytesAccessError>
Validate an ID and its byte range before exposing a resource.
Trait Implementations§
Source§impl ComputeStorage for BytesStorage
impl ComputeStorage for BytesStorage
Source§type Resource = BytesResource
type Resource = BytesResource
The resource associated type determines the way data is implemented and how
it can be accessed by kernels.
Source§fn get(&mut self, handle: &StorageHandle) -> Self::Resource
fn get(&mut self, handle: &StorageHandle) -> Self::Resource
Returns the underlying resource for a specified storage handle
Source§fn get_pinned(
&mut self,
handle: &StorageHandle,
binding: ManagedMemoryBinding,
) -> Self::Resource
fn get_pinned( &mut self, handle: &StorageHandle, binding: ManagedMemoryBinding, ) -> Self::Resource
Resolve a resource while retaining its address lease in adaptive mode.
Source§fn supports_relocation(&self) -> bool
fn supports_relocation(&self) -> bool
Whether this storage implements real relocation copies and completion waits.
Source§fn relocation_barrier(&mut self) -> Result<(), IoError>
fn relocation_barrier(&mut self) -> Result<(), IoError>
Wait for all users of storage addresses, including work on other streams.
Source§fn relocation_copy(
&mut self,
source: &StorageHandle,
target: &StorageHandle,
) -> Result<(), IoError>
fn relocation_copy( &mut self, source: &StorageHandle, target: &StorageHandle, ) -> Result<(), IoError>
Enqueue a device-local copy between disjoint, equally sized reservations.
Source§fn relocation_complete(&mut self) -> Result<(), IoError>
fn relocation_complete(&mut self) -> Result<(), IoError>
Wait for copies even when an earlier enqueue failed. Failure is not completion.
Source§fn alloc(&mut self, size: u64) -> Result<StorageHandle, IoError>
fn alloc(&mut self, size: u64) -> Result<StorageHandle, IoError>
Allocates
size units of memory and returns a handle to itSource§fn dealloc(&mut self, id: StorageId)
fn dealloc(&mut self, id: StorageId)
Deallocates the memory pointed by the given storage id. Read more
Source§fn relocation_copy_batch<'a>(
&mut self,
copies: impl IntoIterator<Item = (&'a StorageHandle, &'a StorageHandle)>,
) -> Result<(), IoError>where
Self: Sized,
fn relocation_copy_batch<'a>(
&mut self,
copies: impl IntoIterator<Item = (&'a StorageHandle, &'a StorageHandle)>,
) -> Result<(), IoError>where
Self: Sized,
Enqueue a group of relocation copies, with completion checked separately.
Source§impl Debug for BytesStorage
impl Debug for BytesStorage
Auto Trait Implementations§
impl !RefUnwindSafe for BytesStorage
impl !UnwindSafe for BytesStorage
impl Freeze for BytesStorage
impl Send for BytesStorage
impl Sync for BytesStorage
impl Unpin for BytesStorage
impl UnsafeUnpin for BytesStorage
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