66 typedef typename container_type::size_type
size_type;
68 typedef typename boost::call_traits<value_type>::param_type
param_type;
75 boost::mutex::scoped_lock lock(m_mutex);
77 m_container.push_front(item);
80 m_not_empty.notify_one();
86 boost::mutex::scoped_lock lock(m_mutex);
88 ret = m_container[--m_unread];
90 m_not_full.notify_one();
95 bool empty() {
return not is_not_empty(); }
96 bool full() {
return not is_not_full(); }
102 bool is_not_empty()
const {
return m_unread > 0; }
103 bool is_not_full()
const {
return m_unread < m_container.capacity(); }
106 container_type m_container;
107 boost::mutex m_mutex;
108 boost::condition m_not_empty;
109 boost::condition m_not_full;