Struct RecvMultiBundle

Source
pub struct RecvMultiBundle { /* private fields */ }
Expand description

Receive multiple messages from a socket as a bundle.

Parameter: buf_group: The id of the provided buffer pool to use for each received message.

MSG_WAITALL should not be set in flags.

The multishot version allows the application to issue a single receive request, which repeatedly posts a CQE when data is available. Each CQE will take a bundle of buffers out of a provided buffer pool for receiving. The application should check the flags of each CQE, regardless of its result. If a posted CQE does not have the IORING_CQE_F_MORE flag set then the multishot receive will be done and the application should issue a new request.

Note that as of kernel 6.10 first CQE always gets a single buffer, while second obtains the bundle of remaining buffers. This behavior may change in the future.

Multishot bundle variant is available since kernel 6.10.

Implementations§

Source§

impl RecvMultiBundle

Source

pub const CODE: u8 = 27u8

The opcode of the operation. This can be passed to Probe::is_supported to check if this operation is supported with the current kernel.

Source

pub fn new(fd: impl UseFixed, buf_group: u16) -> Self

Source

pub const fn flags(self, flags: i32) -> Self

Source

pub fn build(self) -> Entry

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.