|
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 | namespaceboost {namespacenetwork { |
13 | 13 |
|
14 | | -namespaceimpl { |
15 | | - |
16 | | -template<classMessage,classValueType,classTag> |
17 | | -inlinevoidbody(Messageconst & message, ValueTypeconst & body_, Tagconst &, mpl::false_const &) { |
18 | | - message.body(body_); |
19 | | - } |
20 | | - |
21 | | -template<classMessage,classValueType,classTag> |
22 | | -inlinevoidbody(Messageconst & message, ValueTypeconst & body_, Tagconst &, mpl::true_const &) { |
23 | | - message.body(body_); |
24 | | - } |
| 14 | +template<classTag,template<class>classMessage,classValueType> |
| 15 | +inlinevoidbody_impl(Message<Tag> & message, ValueTypeconst & body, tags::pod) { |
| 16 | + message.body = body; |
| 17 | + } |
25 | 18 |
|
26 | | - }// namespace impl |
| 19 | +template<classTag,template<class>classMessage,classValueType> |
| 20 | +inlinevoidbody_impl(Message<Tag> & message, ValueTypeconst & body, tags::normal) { |
| 21 | + message.body(body); |
| 22 | + } |
27 | 23 |
|
28 | 24 | template<classTag,template<class>classMessage,classValueType> |
29 | | -inlinevoidbody(Message<Tag>const& message, ValueTypeconst & body_) { |
30 | | -impl::body(message, body_,Tag(), is_async<Tag>()); |
| 25 | +inlinevoidbody(Message<Tag> & message, ValueTypeconst & body_) { |
| 26 | +body_impl(message, body_,typename pod_or_normal<Tag>::type()); |
31 | 27 | } |
32 | 28 |
|
33 | 29 | }// namespace network |
|