diff options
author | Eric Blossom | 2009-08-18 21:02:13 -0700 |
---|---|---|
committer | Eric Blossom | 2009-08-18 21:02:13 -0700 |
commit | 4425cea2297d29f7cb90ac045b39928358cff1e4 (patch) | |
tree | b6ec6d036c15167de4720f8b93def9af97176aea | |
parent | 0f12441cf801f060c8b0a778016c658db5486607 (diff) | |
download | gnuradio-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.h | 33 | ||||
-rw-r--r-- | gruel/src/lib/pmt/qa_pmt_prims.cc | 9 |
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); + } // ------------------------------------------------------------------------ |