|
1 | 1 |
|
2 |
| -// Copyright Dean Michael Berris 2008. |
| 2 | +// Copyright 2013 Google, Inc. |
| 3 | +// Copyright 2008 Dean Michael Berris <dberris@google.com> |
3 | 4 | // Distributed under the Boost Software License, Version 1.0.
|
4 |
| -// (See accompanying file LICENSE_1_0.txt or copy at |
5 |
| -// http://www.boost.org/LICENSE_1_0.txt) |
| 5 | +// (See accompanying file LICENSE_1_0.txt or copy at |
| 6 | +// http://www.boost.org/LICENSE_1_0.txt) |
6 | 7 |
|
7 | 8 | #ifndef BOOST_NETWORK_PROTOCOL_HTTP_MESSAGE_TRAITS_HEADERS_CONTAINER_IPP
|
8 | 9 | #define BOOST_NETWORK_PROTOCOL_HTTP_MESSAGE_TRAITS_HEADERS_CONTAINER_IPP
|
9 | 10 |
|
| 11 | +#include <boost/utility/enable_if.hpp> |
10 | 12 | #include <boost/network/traits/headers_container.hpp>
|
11 | 13 | #include <boost/network/protocol/http/tags.hpp>
|
12 | 14 | #include <boost/algorithm/string/case_conv.hpp>
|
13 | 15 | #include <map>
|
14 | 16 | #include <string>
|
15 | 17 |
|
16 |
| -namespace boost { namespace network { |
17 |
| - |
18 |
| - template <> |
19 |
| - struct headers_container<http::tags::http_default_8bit_tcp_resolve> { |
20 |
| - |
21 |
| - // Moving implementation from original |
22 |
| - // message_traits implementation by |
23 |
| - // Atomic Labs, Inc. |
24 |
| - // -- |
25 |
| - // returns true if str1 < str2 (ignoring case) |
26 |
| - struct is_less_ignore_case { |
27 |
| - inline bool operator() ( |
28 |
| - string<http::tags::http_default_8bit_tcp_resolve>::type const & str1, |
29 |
| - string<http::tags::http_default_8bit_tcp_resolve>::type const & str2) const { |
30 |
| - return to_lower_copy(str1) < to_lower_copy(str2); |
31 |
| - }; |
| 18 | +namespace boost { namespace network { namespace impl { |
| 19 | + |
| 20 | + template <class Tag> |
| 21 | + struct headers_container_impl<Tag, typename enable_if<typename Tag::is_client>::type> { |
| 22 | + // Moving implementation from original |
| 23 | + // message_traits implementation by |
| 24 | + // Atomic Labs, Inc. |
| 25 | + // -- |
| 26 | + // returns true if str1 < str2 (ignoring case) |
| 27 | + struct is_less_ignore_case { |
| 28 | + inline bool operator() ( |
| 29 | + string<http::tags::http_default_8bit_tcp_resolve>::type const & str1, |
| 30 | + string<http::tags::http_default_8bit_tcp_resolve>::type const & str2) const { |
| 31 | + return to_lower_copy(str1) < to_lower_copy(str2); |
32 | 32 | };
|
33 |
| - |
34 |
| - typedef std::multimap< |
35 |
| - string<http::tags::http_default_8bit_tcp_resolve>::type, |
36 |
| - string<http::tags::http_default_8bit_tcp_resolve>::type, |
37 |
| - is_less_ignore_case> type; |
38 | 33 | };
|
39 | 34 |
|
40 |
| -} // namespace network |
| 35 | + typedef std::multimap< |
| 36 | + string<http::tags::http_default_8bit_tcp_resolve>::type, |
| 37 | + string<http::tags::http_default_8bit_tcp_resolve>::type, |
| 38 | + is_less_ignore_case> type; |
| 39 | + }; |
41 | 40 |
|
| 41 | +} // namespace impl |
| 42 | +} // namespace network |
42 | 43 | } // namespace boost
|
43 | 44 |
|
44 | 45 | #endif // BOOST_NETWORK_PROTOCOL_HTTP_MESSAGE_TRAITS_HEADERS_CONTAINER_IPP
|
|
0 commit comments