34 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
35 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
36 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CVA2,
CINV,
CVA2,
CVA2,
CINV,
37 CVA2,
CVA2,
CVA2,
CVA2,
CVA2,
CVA2,
CVA2,
CVA2,
CVA2,
CVA2,
CEND,
CINV,
CINV,
CINV,
CINV,
CINV,
38 CINV,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
39 CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CINV,
CINV,
CINV,
CINV,
CINV,
40 CINV,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
41 CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CINV,
CINV,
CINV,
CINV,
CINV,
42 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
43 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
44 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
45 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
46 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
47 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
48 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
49 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
55 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
56 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
57 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
58 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CEND,
CINV,
CINV,
CINV,
CINV,
CINV,
59 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
60 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
61 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
62 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
63 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
64 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
65 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
66 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
67 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
68 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
69 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
70 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
76 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
77 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
78 CINV,
CVAL,
CINV,
CINV,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CINV,
79 CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CINV,
CVAL,
CINV,
CINV,
80 CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
81 CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CINV,
CINV,
CINV,
CINV,
CVAL,
82 CINV,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
83 CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CINV,
CINV,
CINV,
CVAL,
CINV,
84 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
85 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
86 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
87 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
88 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
89 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
90 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
91 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
97 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
98 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
99 CINV,
CVAL,
CINV,
CINV,
CVAL,
CVAL,
CINV,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
100 CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CINV,
CINV,
CINV,
CVAL,
101 CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
102 CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CINV,
CINV,
CINV,
CINV,
CVAL,
103 CINV,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
104 CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CINV,
CINV,
CINV,
CVAL,
CINV,
105 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
106 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
107 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
108 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
109 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
110 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
111 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
112 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
118 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
119 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
120 CINV,
CVAL,
CINV,
CINV,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
121 CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CINV,
CVAL,
CINV,
CVAL,
122 CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
123 CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CINV,
CINV,
CINV,
CINV,
CVAL,
124 CINV,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
125 CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CVAL,
CINV,
CVAL,
CINV,
CVAL,
CINV,
126 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
127 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
128 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
129 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
130 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
131 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
132 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
133 CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
CINV,
136 bool parse(
const traits& ts, std::string::const_iterator& first, std::string::const_iterator last, std::string& comp,
char* endc) {
137 std::string::const_iterator f = first;
139 for (; f != last; ++f) {
146 if (cls !=
CVAL && (f == first || cls !=
CVA2))
149 if (f == first && !ec)
151 comp.assign(first, f);
154 first = ec ? f + 1 : f;
158 std::string::const_iterator f = comp.begin();
160 for (; f != comp.end(); f++) {
173 if (pos == std::string::npos)
179 for (
size_t i = 0;;) {
180 if (pos == std::string::npos) {
181 v.append(s, i, s.size() - i);
184 v.append(s, i, pos - i);
189 v.insert(v.end(), c);
197 size_t p = s.find(
"+");
198 while(p != std::string::npos) {
199 s.replace(p, 1, 1,
' ');
const traits AUTHORITY_TRAITS
authority traits
const char ENCODE_BEGIN_CHAR
encode begin char ('%')
void append_hex(char v, std::string &s)
Convert the char v to hex and add the 2 chars to the end of s.
char char_class[256]
map of char to class
void convertPlus2Space(std::string &s)
bool parse(const traits &ts, std::string::const_iterator &first, std::string::const_iterator last, std::string &comp, char *endc)
Parse the URI componet, returning whether successful and setting the string and end char and advancin...
std::string encode(const traits &ts, const std::string &comp)
Encode the URI (sub) component.
const traits QUERY_TRAITS
query traits
const traits PATH_TRAITS
path traits
bool decode(std::string &s)
Decode the pct-encoded (hex) sequences, if any, return success.
Traits used for parsing and encoding components.
const traits SCHEME_TRAITS
scheme traits
bool parse_hex(const std::string &s, size_t pos, char &chr)
Parse hex chars at pos, returning success, and set the char and advance first on success.
const traits FRAGMENT_TRAITS
fragment traits
valid anywhere but 1st position