]> git.gag.com Git - debian/gnuradio/blob - gruel/src/include/gruel/msg_passing.h
Add top-level msg_passing.h include file.
[debian/gnuradio] / gruel / src / include / gruel / msg_passing.h
1 /* -*- c++ -*- */
2 /*
3  * Copyright 2009 Free Software Foundation, Inc.
4  * 
5  * This file is part of GNU Radio
6  * 
7  * GNU Radio is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 3, or (at your option)
10  * any later version.
11  * 
12  * GNU Radio is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  * 
17  * You should have received a copy of the GNU General Public License along
18  * with this program; if not, write to the Free Software Foundation, Inc.,
19  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20  */
21 #ifndef INCLUDED_GRUEL_MSG_PASSING_H
22 #define INCLUDED_GRUEL_MSG_PASSING_H
23
24 /*!
25  * \brief Include this header to use the message passing features
26  */
27
28 #include <gruel/pmt.h>
29 #include <gruel/msg_accepter.h>
30
31
32 namespace gruel {
33
34   /*!
35    * \brief send message to msg_accepter
36    *
37    * \param accepter is the target of the send.
38    * \param msg is the message to send.  It's usually a pmt tuple.
39    *
40    * Sending a message is an asynchronous operation.  The \p send
41    * call will not wait for the message either to arrive at the
42    * destination or to be received.
43    *
44    * \returns msg
45    */
46   static inline pmt::pmt_t
47   send(msg_accepter_sptr accepter, const pmt::pmt_t &msg)
48   {
49     return accepter->post(msg);
50   }
51
52   /*!
53    * \brief send message to msg_accepter
54    *
55    * \param accepter is the target of the send.
56    * \param msg is the message to send.  It's usually a pmt tuple.
57    *
58    * Sending a message is an asynchronous operation.  The \p send
59    * call will not wait for the message either to arrive at the
60    * destination or to be received.
61    *
62    * \returns msg
63    */
64   static inline pmt::pmt_t
65   send(msg_accepter &accepter, const pmt::pmt_t &msg)
66   {
67     return accepter.post(msg);
68   }
69
70   /*!
71    * \brief send message to msg_accepter
72    *
73    * \param accepter is the target of the send.  precond: pmt_is_msg_accepter(accepter)
74    * \param msg is the message to send.  It's usually a pmt tuple.
75    *
76    * Sending a message is an asynchronous operation.  The \p send
77    * call will not wait for the message either to arrive at the
78    * destination or to be received.
79    *
80    * \returns msg
81    */
82   pmt::pmt_t
83   send(const pmt_t &accepter, const pmt::pmt_t &msg);
84
85
86 } /* namespace gruel */
87
88 #endif /* INCLUDED_GRUEL_MSG_PASSING_H */