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_{};
85 void resolve(
uri const& base);
87 bool parse_authority(std::string && authority);
100 explicit query_string(std::pair<std::string, std::string>
const& segment);
101 explicit query_string(std::initializer_list<std::pair<std::string, std::string>>
const& segments);
102 bool set(std::string
const& raw);
104 std::string
to_string(
bool encode_slashes)
const;
106 void remove(std::string
const& key);
107 std::string& operator[](std::string
const& key);
111 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:68
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:95
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:75
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 absolute, that is the path starting with a slash.
Definition: uri.hpp:78