L4Re Operating System Framework
Interface and Usage Documentation
Loading...
Searching...
No Matches
L4Re::Util::Event_buffer_consumer_t< PAYLOAD > Class Template Reference

An event buffer consumer. More...

#include <event_buffer>

+ Inheritance diagram for L4Re::Util::Event_buffer_consumer_t< PAYLOAD >:
+ Collaboration diagram for L4Re::Util::Event_buffer_consumer_t< PAYLOAD >:

Public Member Functions

template<typename CB , typename D >
void foreach_available_event (CB const &cb, D data=D())
 Call function on every available event.
 
template<typename CB , typename D >
void process (L4::Cap< L4::Irq > irq, L4::Cap< L4::Thread > thread, CB const &cb, D data=D())
 Continuously wait for events and process them.
 
- Public Member Functions inherited from L4Re::Util::Event_buffer_t< PAYLOAD >
void * buf () const noexcept
 Return the buffer.
 
long attach (L4::Cap< L4Re::Dataspace > ds, L4::Cap< L4Re::Rm > rm) noexcept
 Attach event buffer from address space.
 
long detach (L4::Cap< L4Re::Rm > rm) noexcept
 Detach event buffer from address space.
 
- Public Member Functions inherited from L4Re::Event_buffer_t< PAYLOAD >
 Event_buffer_t (void *buffer, l4_addr_t size)
 Initialize event buffer.
 
Eventnext () noexcept
 Next event in buffer.
 
bool put (Event const &ev) noexcept
 Put event into buffer at current position.
 

Detailed Description

template<typename PAYLOAD>
class L4Re::Util::Event_buffer_consumer_t< PAYLOAD >

An event buffer consumer.

Definition at line 94 of file event_buffer.

Member Function Documentation

◆ foreach_available_event()

template<typename PAYLOAD >
template<typename CB , typename D >
void L4Re::Util::Event_buffer_consumer_t< PAYLOAD >::foreach_available_event ( CB const &  cb,
data = D() 
)
inline

Call function on every available event.

Parameters
cbFunction callback.
dataData to pass as an argument to the callback.

Definition at line 105 of file event_buffer.

References L4Re::Event_buffer_t< PAYLOAD >::Event::free().

Referenced by L4Re::Util::Event_buffer_consumer_t< PAYLOAD >::process().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ process()

template<typename PAYLOAD >
template<typename CB , typename D >
void L4Re::Util::Event_buffer_consumer_t< PAYLOAD >::process ( L4::Cap< L4::Irq irq,
L4::Cap< L4::Thread thread,
CB const &  cb,
data = D() 
)
inline

Continuously wait for events and process them.

Parameters
irqEvent signal to wait for.
threadThread capability of the thread calling this function.
cbCallback function that is called for each received event.
dataData to pass as an argument to the processing callback.
Note
This function never returns.

Definition at line 126 of file event_buffer.

References L4::Cap_base::cap(), L4Re::Util::Event_buffer_consumer_t< PAYLOAD >::foreach_available_event(), l4_error(), l4_ipc_error(), L4_IPC_NEVER, l4_irq_receive(), and l4_utcb().

+ Here is the call graph for this function:

The documentation for this class was generated from the following file: