@@ -20,14 +20,11 @@ namespace network {
20
20
namespace uri {
21
21
namespace details {
22
22
template <
23
- typename Uri,
24
23
typename Map
25
24
>
26
25
struct key_value_sequence
27
- : spirit::qi::grammar<typename Uri ::const_iterator, Map()>
26
+ : spirit::qi::grammar<uri ::const_iterator, Map()>
28
27
{
29
- typedef typename Uri::const_iterator const_iterator;
30
-
31
28
key_value_sequence ()
32
29
: key_value_sequence::base_type(query)
33
30
{
@@ -37,79 +34,63 @@ struct key_value_sequence
37
34
value = +spirit::qi::char_ (" a-zA-Z_0-9/%" );
38
35
}
39
36
40
- spirit::qi::rule<const_iterator, Map()> query;
41
- spirit::qi::rule<const_iterator, std::pair<typename Uri::string_type, typename Uri::string_type >()> pair;
42
- spirit::qi::rule<const_iterator, typename Uri::string_type ()> key, value;
37
+ spirit::qi::rule<uri:: const_iterator, Map()> query;
38
+ spirit::qi::rule<uri:: const_iterator, std::pair<std::string, std::string >()> pair;
39
+ spirit::qi::rule<uri:: const_iterator, typename std::string ()> key, value;
43
40
};
44
41
} // namespace details
45
42
46
43
template <
47
- class String ,
48
44
class Map
49
45
>
50
46
inline
51
- Map &query_map (const basic_uri<String> &uri , Map &map) {
52
- typename basic_uri<String> ::const_range_type range = uri .query_range ();
53
- details::key_value_sequence<basic_uri<String>, Map> parser;
47
+ Map &query_map (const uri &uri_ , Map &map) {
48
+ uri ::const_range_type range = uri_ .query_range ();
49
+ details::key_value_sequence<Map> parser;
54
50
spirit::qi::parse (boost::begin (range), boost::end (range), parser, map);
55
51
return map;
56
52
}
57
53
58
- template <
59
- class String
60
- >
61
- String username (const basic_uri<String> &uri) {
62
- typename basic_uri<String>::const_range_type user_info_range = uri.user_info_range ();
63
- typename basic_uri<String>::const_iterator it (boost::begin (user_info_range)), end (boost::end (user_info_range));
54
+ std::string username (const uri &uri_) {
55
+ uri::const_range_type user_info_range = uri_.user_info_range ();
56
+ uri::const_iterator it (boost::begin (user_info_range)), end (boost::end (user_info_range));
64
57
for (; it != end; ++it) {
65
58
if (*it == ' :' ) {
66
59
break ;
67
60
}
68
61
}
69
- return String (boost::begin (user_info_range), it);
62
+ return std::string (boost::begin (user_info_range), it);
70
63
}
71
64
72
- template <
73
- class String
74
- >
75
- String password (const basic_uri<String> &uri) {
76
- typename basic_uri<String>::const_range_type user_info_range = uri.user_info_range ();
77
- typename basic_uri<String>::const_iterator it (boost::begin (user_info_range)), end (boost::end (user_info_range));
65
+ std::string password (const uri &uri_) {
66
+ uri::const_range_type user_info_range = uri_.user_info_range ();
67
+ uri::const_iterator it (boost::begin (user_info_range)), end (boost::end (user_info_range));
78
68
for (; it != end; ++it) {
79
69
if (*it == ' :' ) {
80
70
++it;
81
71
break ;
82
72
}
83
73
}
84
- return String (it, boost::end (user_info_range));
74
+ return std::string (it, boost::end (user_info_range));
85
75
}
86
76
87
- template <
88
- class String
89
- >
90
- String decoded_path (const basic_uri<String> &uri) {
91
- typename basic_uri<String>::const_range_type path_range = uri.path_range ();
92
- String decoded_path;
77
+ std::string decoded_path (const uri &uri_) {
78
+ uri::const_range_type path_range = uri_.path_range ();
79
+ std::string decoded_path;
93
80
decode (path_range, std::back_inserter (decoded_path));
94
81
return decoded_path;
95
82
}
96
83
97
- template <
98
- class String
99
- >
100
- String decoded_query (const basic_uri<String> &uri) {
101
- typename basic_uri<String>::const_range_type query_range = uri.query_range ();
102
- String decoded_query;
84
+ std::string decoded_query (const uri &uri_) {
85
+ uri::const_range_type query_range = uri_.query_range ();
86
+ std::string decoded_query;
103
87
decode (query_range, std::back_inserter (decoded_query));
104
88
return decoded_query;
105
89
}
106
90
107
- template <
108
- class String
109
- >
110
- String decoded_fragment (const basic_uri<String> &uri) {
111
- typename basic_uri<String>::const_range_type fragment_range = uri.fragment_range ();
112
- String decoded_fragment;
91
+ std::string decoded_fragment (const uri &uri_) {
92
+ uri::const_range_type fragment_range = uri_.fragment_range ();
93
+ std::string decoded_fragment;
113
94
decode (fragment_range, std::back_inserter (decoded_fragment));
114
95
return decoded_fragment;
115
96
}
0 commit comments