UHD  003.001.001
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
Public Member Functions | List of all members
uhd::transport::bounded_buffer< elem_type > Class Template Reference

#include <bounded_buffer.hpp>

Public Member Functions

 bounded_buffer (size_t capacity)
 
bool push_with_haste (const elem_type &elem)
 
bool push_with_pop_on_full (const elem_type &elem)
 
void push_with_wait (const elem_type &elem)
 
bool push_with_timed_wait (const elem_type &elem, double timeout)
 
bool pop_with_haste (elem_type &elem)
 
void pop_with_wait (elem_type &elem)
 
bool pop_with_timed_wait (elem_type &elem, double timeout)
 

Detailed Description

template<typename elem_type>
class uhd::transport::bounded_buffer< elem_type >

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

◆ bounded_buffer()

template<typename elem_type >
uhd::transport::bounded_buffer< elem_type >::bounded_buffer ( size_t  capacity)
inline

Create a new bounded buffer object.

Parameters
capacitythe bounded_buffer capacity

Member Function Documentation

◆ pop_with_haste()

template<typename elem_type >
bool uhd::transport::bounded_buffer< elem_type >::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
elemthe element reference pop to
Returns
false when the buffer is empty

◆ pop_with_timed_wait()

template<typename elem_type >
bool uhd::transport::bounded_buffer< elem_type >::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
elemthe element reference pop to
timeoutthe timeout in seconds
Returns
false when the operation times out

◆ pop_with_wait()

template<typename elem_type >
void uhd::transport::bounded_buffer< elem_type >::pop_with_wait ( elem_type &  elem)
inline

Pop an element from the bounded_buffer. Wait until the bounded_buffer becomes non-empty.

Parameters
elemthe element reference pop to

◆ push_with_haste()

template<typename elem_type >
bool uhd::transport::bounded_buffer< elem_type >::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
elemthe element reference pop to
Returns
false when the buffer is full

◆ push_with_pop_on_full()

template<typename elem_type >
bool uhd::transport::bounded_buffer< elem_type >::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
elemthe new element to push
Returns
true if the element fit without popping for space

◆ push_with_timed_wait()

template<typename elem_type >
bool uhd::transport::bounded_buffer< elem_type >::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
elemthe new element to push
timeoutthe timeout in seconds
Returns
false when the operation times out

◆ push_with_wait()

template<typename elem_type >
void uhd::transport::bounded_buffer< elem_type >::push_with_wait ( const elem_type &  elem)
inline

Push a new element into the bounded_buffer. Wait until the bounded_buffer becomes non-full.

Parameters
elemthe new element to push

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