summaryrefslogtreecommitdiff
path: root/gnuradio-core/src/lib/general
diff options
context:
space:
mode:
authorEric Blossom2011-01-06 21:46:55 -0800
committerEric Blossom2011-01-06 21:46:55 -0800
commit1dc1dbeef3eb15e1316857d4dd7ba32c4304bf69 (patch)
treed7819200dd83236652e495921086c89905ef670e /gnuradio-core/src/lib/general
parentb6005d9e5823d871c091f3b4a048ca67cd885821 (diff)
downloadgnuradio-1dc1dbeef3eb15e1316857d4dd7ba32c4304bf69.tar.gz
gnuradio-1dc1dbeef3eb15e1316857d4dd7ba32c4304bf69.tar.bz2
gnuradio-1dc1dbeef3eb15e1316857d4dd7ba32c4304bf69.zip
Augment gr_nop to count received pmt messages by way of set_msg_handler.
Diffstat (limited to 'gnuradio-core/src/lib/general')
-rw-r--r--gnuradio-core/src/lib/general/gr_nop.cc24
-rw-r--r--gnuradio-core/src/lib/general/gr_nop.h9
2 files changed, 26 insertions, 7 deletions
diff --git a/gnuradio-core/src/lib/general/gr_nop.cc b/gnuradio-core/src/lib/general/gr_nop.cc
index 950ef878e..bd5e4fd81 100644
--- a/gnuradio-core/src/lib/general/gr_nop.cc
+++ b/gnuradio-core/src/lib/general/gr_nop.cc
@@ -25,18 +25,30 @@
#endif
#include <gr_nop.h>
#include <gr_io_signature.h>
+#include <boost/bind.hpp>
+
+gr_nop_sptr
+gr_make_nop (size_t sizeof_stream_item)
+{
+ return gnuradio::get_initial_sptr (new gr_nop (sizeof_stream_item));
+}
gr_nop::gr_nop (size_t sizeof_stream_item)
: gr_block ("nop",
- gr_make_io_signature (0, -1, sizeof_stream_item),
- gr_make_io_signature (0, -1, sizeof_stream_item))
+ gr_make_io_signature (0, -1, sizeof_stream_item),
+ gr_make_io_signature (0, -1, sizeof_stream_item)),
+ d_nmsgs_recvd(0)
{
+ // Arrange to have count_received_msgs called when messages are received.
+ set_msg_handler(boost::bind(&gr_nop::count_received_msgs, this, _1));
}
-gr_nop_sptr
-gr_make_nop (size_t sizeof_stream_item)
+// Trivial message handler that just counts them.
+// (N.B., This feature is used in qa_set_msg_handler)
+void
+gr_nop::count_received_msgs(pmt::pmt_t msg)
{
- return gnuradio::get_initial_sptr (new gr_nop (sizeof_stream_item));
+ d_nmsgs_recvd++;
}
int
@@ -51,5 +63,3 @@ gr_nop::general_work (int noutput_items,
return noutput_items;
}
-
-
diff --git a/gnuradio-core/src/lib/general/gr_nop.h b/gnuradio-core/src/lib/general/gr_nop.h
index 4f18c9183..354c2f9fc 100644
--- a/gnuradio-core/src/lib/general/gr_nop.h
+++ b/gnuradio-core/src/lib/general/gr_nop.h
@@ -41,11 +41,20 @@ class gr_nop : public gr_block
friend gr_nop_sptr gr_make_nop (size_t sizeof_stream_item);
gr_nop (size_t sizeof_stream_item);
+protected:
+ int d_nmsgs_recvd;
+
+ // Method that just counts any received messages.
+ void count_received_msgs(pmt::pmt_t msg);
+
public:
virtual int general_work (int noutput_items,
gr_vector_int &ninput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items);
+
+ int nmsgs_received() const { return d_nmsgs_recvd; }
+
};
#endif /* INCLUDED_GR_NOP_H */