1#ifndef UPNPLIB_NET_URI_URL_HPP
2#define UPNPLIB_NET_URI_URL_HPP
67 void operator=(std::string_view a_url);
70 operator std::string()
const;
75 std::string scheme()
const;
76 std::string authority()
const;
77 std::string username()
const;
78 std::string password()
const;
79 std::string host()
const;
80 std::string port()
const;
81 uint16_t port_num()
const;
82 std::string path()
const;
83 std::string query()
const;
84 std::string fragment()
const;
88 std::string m_given_url;
89 std::string m_ser_url;
90 std::string m_ser_base_url;
92 std::string m_authority;
93 std::string m_username;
94 std::string m_password;
97 uint16_t m_port_num{};
100 std::string m_fragment;
102 void clear_private();
110 STATE_PATH_OR_AUTHORITY,
111 STATE_SPECIAL_AUTHORITY_SLASHES,
112 STATE_SPECIAL_AUTHORITY_IGNORE_SLASHES,
120 STATE_SPECIAL_RELATIVE_OR_AUTHORITY,
122 int m_state{STATE_NO_STATE};
125 std::string::iterator m_pointer;
126 std::string m_buffer;
128 bool m_insideBrackets;
129 bool m_passwordTokenSeen;
131 void clean_and_copy_url_to_input();
132 void fsm_scheme_start();
134 void fsm_no_scheme();
135 void fsm_path_or_authority();
136 void fsm_special_authority_slashes();
137 void fsm_special_authority_ignore_slashes();
138 void fsm_authority();
142 void fsm_path_start();
144 void fsm_opaque_path();
145 void fsm_special_relative_or_authority();
Reengineered Object Oriented UPnP+ program code.