Skip to main content

DeliveryQueueProvider

Trait DeliveryQueueProvider 

Source
pub trait DeliveryQueueProvider:
    Send
    + Sync
    + 'static {
    // Required method
    fn deliver_pages(
        &self,
        key: u64,
        target_offset: u64,
        unverified_pages: UnverifiedPages<'_>,
    ) -> Result<(), Error>;

    // Provided methods
    fn register_blob(
        &self,
        key: u64,
        leaf_data: PtrByteSlice<'_>,
        read_alignment: usize,
    ) -> Result<(), Error> { ... }
    fn deliver_child_pages(&self, _data: ChildData<'_>) -> Result<(), Error> { ... }
    fn deliver_child_inline_tail(
        &self,
        _data: ChildInlineTail,
        _receiver: &Receiver<RawDeliveryCommand>,
    ) -> Result<(), Error> { ... }
}
Expand description

Trait providing data delivery and blob metadata registration for incoming delivery commands.

Required Methods§

Source

fn deliver_pages( &self, key: u64, target_offset: u64, unverified_pages: UnverifiedPages<'_>, ) -> Result<(), Error>

Delivers data directly from the delivery VMO into the target blob.

Provided Methods§

Source

fn register_blob( &self, key: u64, leaf_data: PtrByteSlice<'_>, read_alignment: usize, ) -> Result<(), Error>

Handles a RegisterBlob command using a pointer slice to shared memory.

Source

fn deliver_child_pages(&self, _data: ChildData<'_>) -> Result<(), Error>

Verifies a parent blob chunk (when data.length > 0), applies file-tail zeroing in-place in the delivery queue VMO, and supplies the resulting pages to the child VMO.

Source

fn deliver_child_inline_tail( &self, _data: ChildInlineTail, _receiver: &Receiver<RawDeliveryCommand>, ) -> Result<(), Error>

Supplies an EROFS inline tail page by reading directly from the parent blob’s VMO.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§