|
6 | 6 | // (See accompanying file LICENSE_1_0.txt or copy at
|
7 | 7 | // http://www.boost.org/LICENSE_1_0.txt)
|
8 | 8 |
|
9 |
| -#include <boost/network/support/is_async.hpp> |
| 9 | +#include <boost/network/support/pod_or_normal.hpp> |
10 | 10 | #include <boost/thread/future.hpp>
|
11 | 11 |
|
12 | 12 | namespace boost { namespace network {
|
13 | 13 |
|
14 |
| - namespace impl { |
15 |
| - |
16 |
| - template <class Message, class ValueType, class Tag> |
17 |
| - inline void body(Message const & message, ValueType const & body_, Tag const &, mpl::false_ const &) { |
18 |
| - message.body(body_); |
19 |
| - } |
20 |
| - |
21 |
| - template <class Message, class ValueType, class Tag> |
22 |
| - inline void body(Message const & message, ValueType const & body_, Tag const &, mpl::true_ const &) { |
23 |
| - message.body(body_); |
24 |
| - } |
| 14 | + template <class Tag, template <class> class Message, class ValueType> |
| 15 | + inline void body_impl(Message<Tag> & message, ValueType const & body, tags::pod) { |
| 16 | + message.body = body; |
| 17 | + } |
25 | 18 |
|
26 |
| - } // namespace impl |
| 19 | + template <class Tag, template <class> class Message, class ValueType> |
| 20 | + inline void body_impl(Message<Tag> & message, ValueType const & body, tags::normal) { |
| 21 | + message.body(body); |
| 22 | + } |
27 | 23 |
|
28 | 24 | template <class Tag, template <class> class Message, class ValueType>
|
29 |
| - inline void body(Message<Tag> const & message, ValueType const & body_) { |
30 |
| - impl::body(message, body_, Tag(), is_async<Tag>()); |
| 25 | + inline void body(Message<Tag> & message, ValueType const & body_) { |
| 26 | + body_impl(message, body_, typename pod_or_normal<Tag>::type()); |
31 | 27 | }
|
32 | 28 |
|
33 | 29 | } // namespace network
|
|
0 commit comments