#include <bounded_buffer.hpp>
List of all members.
Detailed Description
Implement a templated bounded buffer: Used for passing elements between threads in a producer-consumer model. The bounded buffer implemented waits and timed waits with condition variables. The pop operation blocks on the bounded_buffer to become non empty. The push operation blocks on the bounded_buffer to become non full.
Constructor & Destructor Documentation
uhd::transport::bounded_buffer::bounded_buffer |
( |
size_t |
capacity | ) |
[inline] |
Create a new bounded buffer object.
- Parameters:
-
Member Function Documentation
UHD_INLINE bool uhd::transport::bounded_buffer::pop_with_haste |
( |
elem_type & |
elem | ) |
[inline] |
Pop an element from the bounded buffer immediately. The element will not be popped when the buffer is empty.
- Parameters:
-
elem | the element reference pop to |
- Returns:
- false when the buffer is empty
UHD_INLINE bool uhd::transport::bounded_buffer::pop_with_timed_wait |
( |
elem_type & |
elem, |
|
|
double |
timeout |
|
) |
| [inline] |
Pop an element from the bounded_buffer. Wait until the bounded_buffer becomes non-empty or timeout.
- Parameters:
-
elem | the element reference pop to |
timeout | the timeout in seconds |
- Returns:
- false when the operation times out
UHD_INLINE void uhd::transport::bounded_buffer::pop_with_wait |
( |
elem_type & |
elem | ) |
[inline] |
UHD_INLINE bool uhd::transport::bounded_buffer::push_with_haste |
( |
const elem_type & |
elem | ) |
[inline] |
Push a new element into the bounded buffer immediately. The element will not be pushed when the buffer is full.
- Parameters:
-
elem | the element reference pop to |
- Returns:
- false when the buffer is full
UHD_INLINE bool uhd::transport::bounded_buffer::push_with_pop_on_full |
( |
const elem_type & |
elem | ) |
[inline] |
Push a new element into the bounded buffer. If the buffer is full prior to the push, make room by poping the oldest element.
- Parameters:
-
elem | the new element to push |
- Returns:
- true if the element fit without popping for space
UHD_INLINE bool uhd::transport::bounded_buffer::push_with_timed_wait |
( |
const elem_type & |
elem, |
|
|
double |
timeout |
|
) |
| [inline] |
Push a new element into the bounded_buffer. Wait until the bounded_buffer becomes non-full or timeout.
- Parameters:
-
elem | the new element to push |
timeout | the timeout in seconds |
- Returns:
- false when the operation times out
UHD_INLINE void uhd::transport::bounded_buffer::push_with_wait |
( |
const elem_type & |
elem | ) |
[inline] |
The documentation for this class was generated from the following file: