diff options
author | jcorgan | 2008-12-20 20:54:52 +0000 |
---|---|---|
committer | jcorgan | 2008-12-20 20:54:52 +0000 |
commit | 66dca69648e7fa8fbdd2973f77224ad34198d9a5 (patch) | |
tree | d5c67453d04d7f727da5dcac7f427a85ea086983 /mblock/src/lib/mb_msg_queue.h | |
parent | 8d3704c5af29ef15e3a4490049d2fd6d917bc6d8 (diff) | |
download | gnuradio-66dca69648e7fa8fbdd2973f77224ad34198d9a5.tar.gz gnuradio-66dca69648e7fa8fbdd2973f77224ad34198d9a5.tar.bz2 gnuradio-66dca69648e7fa8fbdd2973f77224ad34198d9a5.zip |
Move mblock library include files into separate library. Updates to usrp in-band code to accommodate. Tested with out-of-tree mblock application builds. Trunk passes distcheck.
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@10144 221aa14e-8319-0410-a670-987f0aec2ac5
Diffstat (limited to 'mblock/src/lib/mb_msg_queue.h')
-rw-r--r-- | mblock/src/lib/mb_msg_queue.h | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/mblock/src/lib/mb_msg_queue.h b/mblock/src/lib/mb_msg_queue.h deleted file mode 100644 index a1cd43f14..000000000 --- a/mblock/src/lib/mb_msg_queue.h +++ /dev/null @@ -1,82 +0,0 @@ -/* -*- c++ -*- */ -/* - * Copyright 2007 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 this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ -#ifndef INCLUDED_MB_MSG_QUEUE_H -#define INCLUDED_MB_MSG_QUEUE_H - -#include <mb_common.h> -#include <omnithread.h> -#include <mb_time.h> - -/*! - * \brief priority queue for mblock messages - */ -class mb_msg_queue : boost::noncopyable -{ - // When empty both head and tail are zero. - struct subq { - mb_message_sptr head; - mb_message_sptr tail; - - bool empty_p() const { return head == 0; } - }; - - omni_mutex d_mutex; - omni_condition d_not_empty; // reader waits on this - - // FIXME add bitmap to indicate which queues are non-empty. - subq d_queue[MB_NPRI]; - - mb_message_sptr get_highest_pri_msg_helper(); - -public: - mb_msg_queue(); - ~mb_msg_queue(); - - //! Insert \p msg into priority queue. - void insert(mb_message_sptr msg); - - /* - * \brief Delete highest pri message from the queue and return it. - * Returns equivalent of zero pointer if queue is empty. - */ - mb_message_sptr get_highest_pri_msg_nowait(); - - /* - * \brief Delete highest pri message from the queue and return it. - * If the queue is empty, this call blocks until it can return a message. - */ - mb_message_sptr get_highest_pri_msg(); - - /* - * \brief Delete highest pri message from the queue and return it. - * If the queue is empty, this call blocks until it can return a message - * or real-time exceeds the absolute time, abs_time. - * - * \param abs_time specifies the latest absolute time to wait until. - * \sa mb_time::time - * - * \returns a valid mb_message_sptr, or the equivalent of a zero pointer - * if the call timed out while waiting. - */ - mb_message_sptr get_highest_pri_msg_timedwait(const mb_time &abs_time); -}; - -#endif /* INCLUDED_MB_MSG_QUEUE_H */ |