From 3556ef4080be8b0fe569d28cae6568b761edbd7b Mon Sep 17 00:00:00 2001 From: jcorgan Date: Sat, 1 Aug 2009 14:56:28 +0000 Subject: Merged r11500:11506 from features/msg-passing into trunk. Work-in-progress, passes distcheck. git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@11524 221aa14e-8319-0410-a670-987f0aec2ac5 --- gruel/src/lib/msg/Makefile.am | 32 ++++++++++ gruel/src/lib/msg/msg_accepter.cc | 36 ++++++++++++ gruel/src/lib/msg/msg_accepter_msgq.cc | 48 +++++++++++++++ gruel/src/lib/msg/msg_queue.cc | 103 +++++++++++++++++++++++++++++++++ 4 files changed, 219 insertions(+) create mode 100644 gruel/src/lib/msg/Makefile.am create mode 100644 gruel/src/lib/msg/msg_accepter.cc create mode 100644 gruel/src/lib/msg/msg_accepter_msgq.cc create mode 100644 gruel/src/lib/msg/msg_queue.cc (limited to 'gruel/src/lib/msg') diff --git a/gruel/src/lib/msg/Makefile.am b/gruel/src/lib/msg/Makefile.am new file mode 100644 index 000000000..13a657067 --- /dev/null +++ b/gruel/src/lib/msg/Makefile.am @@ -0,0 +1,32 @@ +# +# Copyright 2009 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. +# + +include $(top_srcdir)/Makefile.common + +AM_CPPFLAGS = $(DEFINES) $(BOOST_CPPFLAGS) $(GRUEL_INCLUDES) $(WITH_INCLUDES) + +noinst_LTLIBRARIES = libmsg.la + +libmsg_la_SOURCES = \ + msg_accepter.cc \ + msg_accepter_msgq.cc \ + msg_queue.cc + diff --git a/gruel/src/lib/msg/msg_accepter.cc b/gruel/src/lib/msg/msg_accepter.cc new file mode 100644 index 000000000..64878f737 --- /dev/null +++ b/gruel/src/lib/msg/msg_accepter.cc @@ -0,0 +1,36 @@ +/* -*- c++ -*- */ +/* + * Copyright 2009 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. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include + +namespace gruel { + + msg_accepter::~msg_accepter() + { + // NOP, required as virtual destructor + } + +} /* namespace gruel */ diff --git a/gruel/src/lib/msg/msg_accepter_msgq.cc b/gruel/src/lib/msg/msg_accepter_msgq.cc new file mode 100644 index 000000000..64fe501d1 --- /dev/null +++ b/gruel/src/lib/msg/msg_accepter_msgq.cc @@ -0,0 +1,48 @@ +/* -*- c++ -*- */ +/* + * Copyright 2009 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. + */ + +#if HAVE_CONFIG_H +#include +#endif + +#include + +using namespace pmt; + +namespace gruel { + + msg_accepter_msgq::msg_accepter_msgq(msg_queue_sptr msgq) + : d_msg_queue(msgq) + { + } + + msg_accepter_msgq::~msg_accepter_msgq() + { + // NOP, required as virtual destructor + } + + void + msg_accepter_msgq::post(pmt_t msg) + { + d_msg_queue->insert_tail(msg); + } + +} /* namespace gruel */ diff --git a/gruel/src/lib/msg/msg_queue.cc b/gruel/src/lib/msg/msg_queue.cc new file mode 100644 index 000000000..8d15f08c5 --- /dev/null +++ b/gruel/src/lib/msg/msg_queue.cc @@ -0,0 +1,103 @@ +/* -*- c++ -*- */ +/* + * Copyright 2009 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. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include + +using namespace pmt; + +namespace gruel { + + msg_queue_sptr + make_msg_queue(unsigned int limit) + { + return msg_queue_sptr(new msg_queue(limit)); + } + + msg_queue::msg_queue(unsigned int limit) + : d_limit(limit) + { + } + + msg_queue::~msg_queue() + { + flush(); + } + + void + msg_queue::insert_tail(pmt_t msg) + { + gruel::scoped_lock guard(d_mutex); + + while (full_p()) + d_not_full.wait(guard); + + d_msgs.push_back(msg); + d_not_empty.notify_one(); + } + + pmt_t + msg_queue::delete_head() + { + gruel::scoped_lock guard(d_mutex); + + while (empty_p()) + d_not_empty.wait(guard); + + pmt_t m(d_msgs.front()); + d_msgs.pop_front(); + + if (d_limit > 0) // Unlimited length queues never block on write + d_not_full.notify_one(); + + return m; + } + + pmt_t + msg_queue::delete_head_nowait() + { + gruel::scoped_lock guard(d_mutex); + + if (empty_p()) + return pmt_t(); + + pmt_t m(d_msgs.front()); + d_msgs.pop_front(); + + if (d_limit > 0) // Unlimited length queues never block on write + d_not_full.notify_one(); + + return m; + } + + void + msg_queue::flush() + { + while (delete_head_nowait() != pmt_t()) + ; + } + +} /* namespace gruel */ -- cgit From 253018c6cdb114f5662a2d7ba8ed748c6e68e3a7 Mon Sep 17 00:00:00 2001 From: git Date: Fri, 14 Aug 2009 18:10:11 +0000 Subject: Added git ignore files auto created from svn:ignore properties. git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@11592 221aa14e-8319-0410-a670-987f0aec2ac5 --- gruel/src/lib/msg/.gitignore | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 gruel/src/lib/msg/.gitignore (limited to 'gruel/src/lib/msg') diff --git a/gruel/src/lib/msg/.gitignore b/gruel/src/lib/msg/.gitignore new file mode 100644 index 000000000..c026fd667 --- /dev/null +++ b/gruel/src/lib/msg/.gitignore @@ -0,0 +1,4 @@ +/Makefile +/Makefile.in +/.deps +/.libs -- cgit From cb2fa9a58c9a52f3501881964ee4f59992c5d84d Mon Sep 17 00:00:00 2001 From: Michael Dickens Date: Sat, 9 Oct 2010 16:11:03 -0400 Subject: rearrange includes to always be: internal GR, external, with GR. --- gruel/src/lib/msg/Makefile.am | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'gruel/src/lib/msg') diff --git a/gruel/src/lib/msg/Makefile.am b/gruel/src/lib/msg/Makefile.am index 13a657067..9dbaf10f5 100644 --- a/gruel/src/lib/msg/Makefile.am +++ b/gruel/src/lib/msg/Makefile.am @@ -1,5 +1,5 @@ # -# Copyright 2009 Free Software Foundation, Inc. +# Copyright 2009,2010 Free Software Foundation, Inc. # # This file is part of GNU Radio # @@ -21,7 +21,8 @@ include $(top_srcdir)/Makefile.common -AM_CPPFLAGS = $(DEFINES) $(BOOST_CPPFLAGS) $(GRUEL_INCLUDES) $(WITH_INCLUDES) +AM_CPPFLAGS = $(DEFINES) $(GRUEL_INCLUDES) \ + $(BOOST_CPPFLAGS) $(WITH_INCLUDES) noinst_LTLIBRARIES = libmsg.la -- cgit From accb9f2fe8fd8f6a1e114adac5b15304b0e0012d Mon Sep 17 00:00:00 2001 From: Josh Blum Date: Wed, 20 Jul 2011 19:04:32 -0700 Subject: gr: squashed cmakelists.txt into one commit --- gruel/src/lib/msg/CMakeLists.txt | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 gruel/src/lib/msg/CMakeLists.txt (limited to 'gruel/src/lib/msg') diff --git a/gruel/src/lib/msg/CMakeLists.txt b/gruel/src/lib/msg/CMakeLists.txt new file mode 100644 index 000000000..877cc2909 --- /dev/null +++ b/gruel/src/lib/msg/CMakeLists.txt @@ -0,0 +1,28 @@ +# Copyright 2010 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. + +######################################################################## +# This file included, use CMake directory variables +######################################################################## + +LIST(APPEND gruel_sources + ${CMAKE_CURRENT_SOURCE_DIR}/msg_accepter.cc + ${CMAKE_CURRENT_SOURCE_DIR}/msg_accepter_msgq.cc + ${CMAKE_CURRENT_SOURCE_DIR}/msg_queue.cc +) -- cgit From 71c0f14a46f85027b95f2f5f6d3d219cc9e3783e Mon Sep 17 00:00:00 2001 From: Josh Blum Date: Sat, 8 Oct 2011 17:11:12 -0700 Subject: gr: the CMakeLists.txt took a chill pill --- gruel/src/lib/msg/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gruel/src/lib/msg') diff --git a/gruel/src/lib/msg/CMakeLists.txt b/gruel/src/lib/msg/CMakeLists.txt index 877cc2909..116d2c67f 100644 --- a/gruel/src/lib/msg/CMakeLists.txt +++ b/gruel/src/lib/msg/CMakeLists.txt @@ -21,7 +21,7 @@ # This file included, use CMake directory variables ######################################################################## -LIST(APPEND gruel_sources +list(APPEND gruel_sources ${CMAKE_CURRENT_SOURCE_DIR}/msg_accepter.cc ${CMAKE_CURRENT_SOURCE_DIR}/msg_accepter_msgq.cc ${CMAKE_CURRENT_SOURCE_DIR}/msg_queue.cc -- cgit From 00420d32081d8252bb37142b2be19a8a7c4dc4c4 Mon Sep 17 00:00:00 2001 From: Johnathan Corgan Date: Thu, 8 Dec 2011 13:48:48 -0800 Subject: Removed autotools, gr-waveform, some cleanup Nick Foster owes Nick Corgan a six-pack of beer! --- gruel/src/lib/msg/.gitignore | 4 ---- gruel/src/lib/msg/Makefile.am | 33 --------------------------------- 2 files changed, 37 deletions(-) delete mode 100644 gruel/src/lib/msg/.gitignore delete mode 100644 gruel/src/lib/msg/Makefile.am (limited to 'gruel/src/lib/msg') diff --git a/gruel/src/lib/msg/.gitignore b/gruel/src/lib/msg/.gitignore deleted file mode 100644 index c026fd667..000000000 --- a/gruel/src/lib/msg/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/Makefile -/Makefile.in -/.deps -/.libs diff --git a/gruel/src/lib/msg/Makefile.am b/gruel/src/lib/msg/Makefile.am deleted file mode 100644 index 9dbaf10f5..000000000 --- a/gruel/src/lib/msg/Makefile.am +++ /dev/null @@ -1,33 +0,0 @@ -# -# Copyright 2009,2010 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. -# - -include $(top_srcdir)/Makefile.common - -AM_CPPFLAGS = $(DEFINES) $(GRUEL_INCLUDES) \ - $(BOOST_CPPFLAGS) $(WITH_INCLUDES) - -noinst_LTLIBRARIES = libmsg.la - -libmsg_la_SOURCES = \ - msg_accepter.cc \ - msg_accepter_msgq.cc \ - msg_queue.cc - -- cgit From f919f9dcbb54a08e6e26d6c229ce92fb784fa1b2 Mon Sep 17 00:00:00 2001 From: Tom Rondeau Date: Fri, 13 Apr 2012 18:36:53 -0400 Subject: Removed whitespace and added dtools/bin/remove-whitespace as a tool to do this in the future. The sed script was provided by Moritz Fischer. --- gruel/src/lib/msg/CMakeLists.txt | 8 ++++---- gruel/src/lib/msg/msg_accepter.cc | 8 ++++---- gruel/src/lib/msg/msg_accepter_msgq.cc | 8 ++++---- gruel/src/lib/msg/msg_queue.cc | 14 +++++++------- 4 files changed, 19 insertions(+), 19 deletions(-) (limited to 'gruel/src/lib/msg') diff --git a/gruel/src/lib/msg/CMakeLists.txt b/gruel/src/lib/msg/CMakeLists.txt index 116d2c67f..74010af7e 100644 --- a/gruel/src/lib/msg/CMakeLists.txt +++ b/gruel/src/lib/msg/CMakeLists.txt @@ -1,17 +1,17 @@ # Copyright 2010 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, diff --git a/gruel/src/lib/msg/msg_accepter.cc b/gruel/src/lib/msg/msg_accepter.cc index 64878f737..5acd98aa2 100644 --- a/gruel/src/lib/msg/msg_accepter.cc +++ b/gruel/src/lib/msg/msg_accepter.cc @@ -1,19 +1,19 @@ /* -*- c++ -*- */ /* * Copyright 2009 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, diff --git a/gruel/src/lib/msg/msg_accepter_msgq.cc b/gruel/src/lib/msg/msg_accepter_msgq.cc index 64fe501d1..2ae3537b8 100644 --- a/gruel/src/lib/msg/msg_accepter_msgq.cc +++ b/gruel/src/lib/msg/msg_accepter_msgq.cc @@ -1,19 +1,19 @@ /* -*- c++ -*- */ /* * Copyright 2009 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. diff --git a/gruel/src/lib/msg/msg_queue.cc b/gruel/src/lib/msg/msg_queue.cc index 8d15f08c5..a0b120e40 100644 --- a/gruel/src/lib/msg/msg_queue.cc +++ b/gruel/src/lib/msg/msg_queue.cc @@ -1,19 +1,19 @@ /* -*- c++ -*- */ /* * Copyright 2009 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, @@ -36,12 +36,12 @@ namespace gruel { { return msg_queue_sptr(new msg_queue(limit)); } - + msg_queue::msg_queue(unsigned int limit) : d_limit(limit) { } - + msg_queue::~msg_queue() { flush(); @@ -83,7 +83,7 @@ namespace gruel { if (empty_p()) return pmt_t(); - + pmt_t m(d_msgs.front()); d_msgs.pop_front(); -- cgit