All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
uhd::transport::bounded_buffer< elem_type > Class Template Reference

`#include <bounded_buffer.hpp>`

## Public Member Functions

| bounded_buffer (size_t capacity)
UHD_INLINE bool | push_with_haste (const elem_type &elem)
UHD_INLINE bool | push_with_pop_on_full (const elem_type &elem)
UHD_INLINE void | push_with_wait (const elem_type &elem)
UHD_INLINE bool | push_with_timed_wait (const elem_type &elem, double timeout)
UHD_INLINE bool | pop_with_haste (elem_type &elem)
UHD_INLINE void | pop_with_wait (elem_type &elem)
UHD_INLINE 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

template<typename elem_type >

uhd::transport::bounded_buffer< elem_type >::bounded_buffer | ( | size_t | capacity | ) |

inline

Create a new bounded buffer object.

Parameters

  capacity | the bounded_buffer capacity

## Member Function Documentation

template<typename elem_type >

UHD_INLINE 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

  elem | the element reference pop to

Returns
  false when the buffer is empty

template<typename elem_type >

UHD_INLINE 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

  elem | the element reference pop to
  timeout | the timeout in seconds

Returns
  false when the operation times out

template<typename elem_type >

UHD_INLINE 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

  elem | the element reference pop to

template<typename elem_type >

UHD_INLINE 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

  elem | the element reference pop to

Returns
  false when the buffer is full

template<typename elem_type >

UHD_INLINE 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

  elem | the new element to push

Returns
  true if the element fit without popping for space

template<typename elem_type >

UHD_INLINE 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

  elem | the new element to push
  timeout | the timeout in seconds

Returns
  false when the operation times out

template<typename elem_type >

UHD_INLINE 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

  elem | the new element to push

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

- include/uhd/transport/bounded_buffer.hpp