1 #ifndef LIBFILEZILLA_URI_HEADER
2 #define LIBFILEZILLA_URI_HEADER
6 #include <initializer_list>
21 class FZ_PUBLIC_SYMBOL
uri final
25 explicit uri(std::string
const& in);
35 bool parse(std::string in);
46 std::string get_request()
const;
49 std::string get_authority(
bool with_userinfo)
const;
58 unsigned short port_{};
75 void resolve(
uri const& base);
77 bool parse_authority(std::string && authority);
90 explicit query_string(std::pair<std::string, std::string>
const& segment);
91 explicit query_string(std::initializer_list<std::pair<std::string, std::string>>
const& segments);
92 bool set(std::string
const& raw);
94 std::string
to_string(
bool encode_slashes)
const;
96 void remove(std::string
const& key);
97 std::string& operator[](std::string
const& key);
101 std::map<std::string, std::string, fz::less_insensitive_ascii> segments_;
The uri class is used to decompose URIs into their individual components.
Definition: uri.hpp:21
std::string query_
THe part of a URI after ? but before #.
Definition: uri.hpp:62
std::string scheme_
Often refered to as the protocol prefix, e.g. ftp://.
Definition: uri.hpp:54
Class for parsing a URI's query string.
Definition: uri.hpp:85
std::string to_string(std::wstring const &in)
Converts from std::wstring into std::string in system encoding.
std::string fragment_
The part of a URI after #.
Definition: uri.hpp:65
The namespace used by libfilezilla.
Definition: apply.hpp:16
Sets some global macros and further includes string.hpp.
bool is_absolute() const
Checks that the URI is absolut, that is the path starting with a slash.
Definition: uri.hpp:68