...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
A list of extensions in a comma separated HTTP field value.
Defined in header <boost/beast/http/rfc7230.hpp>
class ext_list
Name |
Description |
---|---|
A constant iterator to the list. |
|
The type of each element in the list. |
Name |
Description |
---|---|
Return a const iterator to the beginning of the list. |
|
Return a const iterator to the beginning of the list. |
|
Return a const iterator to the end of the list. |
|
Return a const iterator to the end of the list. |
|
Return true if a token is present in the list. |
|
Construct a list. |
|
Find a token in the list. |
This container allows iteration of the extensions in an HTTP field value. The extension list is a comma separated list of token parameter list pairs. If a parsing error is encountered while iterating the string, the behavior of the container will be as if a string containing only characters up to but excluding the first invalid character was used to construct the list.
ext-list = *( "," OWS ) ext *( OWS "," [ OWS ext ] ) ext = token param-list param-list = *( OWS ";" OWS param ) param = token OWS [ "=" OWS ( token / quoted-string ) ]
To use this class, construct with the string to be parsed and then use http::ext_list::begin
and http::ext_list::end
, or range-for to iterate each
item:
for(auto const& ext : ext_list{"none, 7z;level=9, zip;no_context_takeover;bits=15"}) { std::cout << ext.first << "\n"; for(auto const& param : ext.second) { std::cout << ";" << param.first; if(! param.second.empty()) std::cout << "=" << param.second; std::cout << "\n"; } }
Convenience header <boost/beast/http.hpp>