summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Blossom2009-08-18 21:02:13 -0700
committerEric Blossom2009-08-18 21:02:13 -0700
commit4425cea2297d29f7cb90ac045b39928358cff1e4 (patch)
treeb6ec6d036c15167de4720f8b93def9af97176aea
parent0f12441cf801f060c8b0a778016c658db5486607 (diff)
downloadgnuradio-4425cea2297d29f7cb90ac045b39928358cff1e4.tar.gz
gnuradio-4425cea2297d29f7cb90ac045b39928358cff1e4.tar.bz2
gnuradio-4425cea2297d29f7cb90ac045b39928358cff1e4.zip
gruel::send can now send to a pmt.
-rw-r--r--gruel/src/include/gruel/msg_passing.h33
-rw-r--r--gruel/src/lib/pmt/qa_pmt_prims.cc9
2 files changed, 35 insertions, 7 deletions
diff --git a/gruel/src/include/gruel/msg_passing.h b/gruel/src/include/gruel/msg_passing.h
index 611058499..ebbeca815 100644
--- a/gruel/src/include/gruel/msg_passing.h
+++ b/gruel/src/include/gruel/msg_passing.h
@@ -46,7 +46,27 @@ namespace gruel {
static inline pmt::pmt_t
send(msg_accepter_sptr accepter, const pmt::pmt_t &msg)
{
- return accepter->post(msg);
+ accepter->post(msg);
+ return msg;
+ }
+
+ /*!
+ * \brief send message to msg_accepter
+ *
+ * \param accepter is the target of the send.
+ * \param msg is the message to send. It's usually a pmt tuple.
+ *
+ * Sending a message is an asynchronous operation. The \p send
+ * call will not wait for the message either to arrive at the
+ * destination or to be received.
+ *
+ * \returns msg
+ */
+ static inline pmt::pmt_t
+ send(msg_accepter *accepter, const pmt::pmt_t &msg)
+ {
+ accepter->post(msg);
+ return msg;
}
/*!
@@ -64,7 +84,8 @@ namespace gruel {
static inline pmt::pmt_t
send(msg_accepter &accepter, const pmt::pmt_t &msg)
{
- return accepter.post(msg);
+ accepter.post(msg);
+ return msg;
}
/*!
@@ -79,9 +100,11 @@ namespace gruel {
*
* \returns msg
*/
- pmt::pmt_t
- send(const pmt_t &accepter, const pmt::pmt_t &msg);
-
+ static inline pmt::pmt_t
+ send(pmt::pmt_t accepter, const pmt::pmt_t &msg)
+ {
+ return send(pmt_msg_accepter_ref(accepter), msg);
+ }
} /* namespace gruel */
diff --git a/gruel/src/lib/pmt/qa_pmt_prims.cc b/gruel/src/lib/pmt/qa_pmt_prims.cc
index e2d6ec4c6..04fdc1a43 100644
--- a/gruel/src/lib/pmt/qa_pmt_prims.cc
+++ b/gruel/src/lib/pmt/qa_pmt_prims.cc
@@ -22,8 +22,7 @@
#include <qa_pmt_prims.h>
#include <cppunit/TestAssert.h>
-#include <gruel/pmt.h>
-#include <gruel/msg_accepter.h>
+#include <gruel/msg_passing.h>
#include <stdio.h>
#include <sstream>
@@ -479,6 +478,12 @@ qa_pmt_prims::test_msg_accepter()
CPPUNIT_ASSERT_THROW(pmt_msg_accepter_ref(sym), pmt_wrong_type);
CPPUNIT_ASSERT_THROW(pmt_msg_accepter_ref(p0), pmt_wrong_type);
+
+ // just confirm interfaces on send are OK
+ gruel::send(ma0.get(), sym);
+ gruel::send(ma0, sym);
+ gruel::send(p1, sym);
+
}
// ------------------------------------------------------------------------