diff options
author | Tom Rondeau <trondeau@vt.edu> | 2013-04-17 13:43:52 -0400 |
---|---|---|
committer | Tom Rondeau <trondeau@vt.edu> | 2013-04-29 14:52:56 -0400 |
commit | f3e2e07201c50033bf6c9d0c6a6f068557b4f17f (patch) | |
tree | 140b3c2d20a951ffd4abd564c3378ee2e2f9fc7c /gnuradio-runtime/include/messages/msg_queue.h | |
parent | 35303ae975a5b1bdecc2492bc96e2b8e89b62a3d (diff) |
runtime: converting runtime core to gr namespace, gnuradio include dir.
Diffstat (limited to 'gnuradio-runtime/include/messages/msg_queue.h')
-rw-r--r-- | gnuradio-runtime/include/messages/msg_queue.h | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/gnuradio-runtime/include/messages/msg_queue.h b/gnuradio-runtime/include/messages/msg_queue.h deleted file mode 100644 index 81531afcdf..0000000000 --- a/gnuradio-runtime/include/messages/msg_queue.h +++ /dev/null @@ -1,95 +0,0 @@ -/* -*- c++ -*- */ -/* - * Copyright 2009,2013 Free Software Foundation, Inc. - * - * This file is part of GNU Radio - * - * GNU Radio is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. - * - * GNU Radio is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with GNU Radio; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, - * Boston, MA 02110-1301, USA. - */ - -#ifndef INCLUDED_MSG_QUEUE_H -#define INCLUDED_MSG_QUEUE_H - -#include <gr_runtime_api.h> -#include <thread/thread.h> -#include <pmt/pmt.h> -#include <deque> - -namespace gr { - namespace messages { - - class msg_queue; - typedef boost::shared_ptr<msg_queue> msg_queue_sptr; - - msg_queue_sptr make_msg_queue(unsigned int limit=0); - - /*! - * \brief thread-safe message queue - */ - class GR_RUNTIME_API msg_queue - { - private: - gr::thread::mutex d_mutex; - gr::thread::condition_variable d_not_empty; - gr::thread::condition_variable d_not_full; - unsigned int d_limit; // max # of messages in queue. 0 -> unbounded - - std::deque<pmt::pmt_t> d_msgs; - - public: - msg_queue(unsigned int limit); - ~msg_queue(); - - /*! - * \brief Insert message at tail of queue. - * \param msg message - * - * Block if queue if full. - */ - void insert_tail(pmt::pmt_t msg); - - /*! - * \brief Delete message from head of queue and return it. - * Block if no message is available. - */ - pmt::pmt_t delete_head(); - - /*! - * \brief If there's a message in the q, delete it and return it. - * If no message is available, return pmt_t(). - */ - pmt::pmt_t delete_head_nowait(); - - //! Delete all messages from the queue - void flush(); - - //! is the queue empty? - bool empty_p() const { return d_msgs.empty(); } - - //! is the queue full? - bool full_p() const { return d_limit != 0 && count() >= d_limit; } - - //! return number of messages in queue - unsigned int count() const { return d_msgs.size(); } - - //! return limit on number of message in queue. 0 -> unbounded - unsigned int limit() const { return d_limit; } - }; - - } /* namespace messages */ -} /* namespace gr */ - -#endif /* INCLUDED_MSG_QUEUE_H */ |