Struct libbpf_rs::RingBuffer

source ·
pub struct RingBuffer<'a> { /* private fields */ }
Expand description

The canonical interface for managing a collection of ringbuf maps.

ringbufs are a special kind of Map, used to transfer data between Programs and userspace. As of Linux 5.8, the ringbuf map is now preferred over the perf buffer.

Implementations§

source§

impl<'a> RingBuffer<'a>

source

pub fn poll(&self, timeout: Duration) -> Result<()>

Poll from all open ring buffers, calling the registered callback for each one. Polls continually until we either run out of events to consume or timeout is reached. If timeout is Duration::MAX, this will block indefinitely until an event occurs.

source

pub fn consume(&self) -> Result<()>

Greedily consume from all open ring buffers, calling the registered callback for each one. Consumes continually until we run out of events to consume or one of the callbacks returns a non-zero integer.

source

pub fn epoll_fd(&self) -> i32

Get an fd that can be used to sleep until data is available

Trait Implementations§

source§

impl<'a> Debug for RingBuffer<'a>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Drop for RingBuffer<'_>

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl Send for RingBuffer<'_>

Auto Trait Implementations§

§

impl<'a> !RefUnwindSafe for RingBuffer<'a>

§

impl<'a> !Sync for RingBuffer<'a>

§

impl<'a> Unpin for RingBuffer<'a>

§

impl<'a> !UnwindSafe for RingBuffer<'a>

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

const: unstable · source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

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

const: unstable · 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 Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
source§

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

§

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

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.