31 INLINE
URLSpec(
const std::string &url,
bool server_name_expected =
false);
33 INLINE
void operator = (
const std::string &url);
35 INLINE
bool operator == (
const URLSpec &other)
const;
36 INLINE
bool operator != (
const URLSpec &other)
const;
37 INLINE
bool operator < (
const URLSpec &other)
const;
39 size_t get_hash()
const;
41 INLINE
bool has_scheme()
const;
42 INLINE
bool has_authority()
const;
43 INLINE
bool has_username()
const;
44 INLINE
bool has_server()
const;
45 INLINE
bool has_port()
const;
46 INLINE
bool has_path()
const;
47 INLINE
bool has_query()
const;
49 std::string get_scheme()
const;
50 INLINE std::string get_authority()
const;
51 INLINE std::string get_username()
const;
52 INLINE std::string get_server()
const;
53 INLINE std::string get_port_str()
const;
54 uint16_t get_port()
const;
55 std::string get_server_and_port()
const;
56 bool is_default_port()
const;
57 static int get_default_port_for_scheme(
const std::string &scheme);
58 std::string get_path()
const;
59 INLINE std::string get_query()
const;
60 std::string get_path_and_query()
const;
61 INLINE
bool is_ssl()
const;
63 INLINE
const std::string &get_url()
const;
65 void set_scheme(
const std::string &scheme);
66 void set_authority(
const std::string &authority);
67 void set_username(
const std::string &username);
68 void set_server(
const std::string &server);
69 void set_port(
const std::string &port);
70 void set_port(uint16_t port);
71 void set_server_and_port(
const std::string &server_and_port);
72 void set_path(
const std::string &path);
73 void set_query(
const std::string &query);
75 void set_url(
const std::string &url,
bool server_name_expected =
false);
77 INLINE
operator const std::string & ()
const;
78 INLINE
const char *c_str()
const;
79 INLINE
bool empty()
const;
80 INLINE
operator bool()
const;
81 INLINE
size_t length()
const;
82 INLINE
size_t size()
const;
83 INLINE
char operator [] (
size_t n)
const;
85 bool input(std::istream &in);
86 void output(std::ostream &out)
const;
88 static std::string quote(
const std::string &source,
const std::string &safe =
"/");
89 static std::string quote_plus(
const std::string &source,
const std::string &safe =
"/");
90 static std::string unquote(
const std::string &source);
91 static std::string unquote_plus(
const std::string &source);
93 MAKE_PROPERTY(scheme, get_scheme, set_scheme);
94 MAKE_PROPERTY(authority, get_authority, set_authority);
95 MAKE_PROPERTY(username, get_username, set_username);
96 MAKE_PROPERTY(server, get_server, set_server);
97 MAKE_PROPERTY(port, get_port, set_port);
98 MAKE_PROPERTY(server_and_port, get_server_and_port, set_server_and_port);
99 MAKE_PROPERTY(path, get_path, set_path);
100 MAKE_PROPERTY(query, get_query, set_query);
101 MAKE_PROPERTY(ssl, is_ssl);
104 void parse_authority();
107 F_has_scheme = 0x0001,
108 F_has_authority = 0x0002,
109 F_has_username = 0x0004,
110 F_has_server = 0x0008,
113 F_has_query = 0x0040,
121 size_t _username_start;
122 size_t _username_end;
123 size_t _server_start;
132 INLINE std::istream &operator >> (std::istream &in,
URLSpec &url);
133 INLINE std::ostream &operator << (std::ostream &out,
const URLSpec &url);
A container for a URL, e.g.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
The name of a file, such as a texture file or an Egg file.
An STL function object class, this is intended to be used on any ordered collection of class objects ...