23#ifndef INCLUDED_MSG_QUEUE_H
24#define INCLUDED_MSG_QUEUE_H
35typedef boost::shared_ptr<msg_queue> msg_queue_sptr;
50 std::deque<pmt::pmt_t> d_msgs;
80 bool empty_p()
const {
return d_msgs.empty(); }
83 bool full_p()
const {
return d_limit != 0 && count() >= d_limit; }
86 unsigned int count()
const {
return d_msgs.size(); }
89 unsigned int limit()
const {
return d_limit; }
thread-safe message queue
Definition: messages/msg_queue.h:43
bool full_p() const
is the queue full?
Definition: messages/msg_queue.h:83
pmt::pmt_t delete_head_nowait()
If there's a message in the q, delete it and return it. If no message is available,...
void flush()
Delete all messages from the queue.
bool empty_p() const
is the queue empty?
Definition: messages/msg_queue.h:80
unsigned int count() const
return number of messages in queue
Definition: messages/msg_queue.h:86
pmt::pmt_t delete_head()
Delete message from head of queue and return it. Block if no message is available.
void insert_tail(pmt::pmt_t msg)
Insert message at tail of queue.
unsigned int limit() const
return limit on number of message in queue. 0 -> unbounded
Definition: messages/msg_queue.h:89
msg_queue(unsigned int limit)
#define GR_RUNTIME_API
Definition: gnuradio-runtime/include/gnuradio/api.h:30
static purpose_t msg
Definition: source_logger.h:39
msg_queue_sptr make_msg_queue(unsigned int limit=0)
boost::mutex mutex
Definition: thread.h:48
boost::condition_variable condition_variable
Definition: thread.h:50
Include this header to use the message passing features.
Definition: basic_block.h:45
boost::intrusive_ptr< pmt_base > pmt_t
typedef for shared pointer (transparent reference counting). See http://www.boost....
Definition: pmt.h:56