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);
The name of a file, such as a texture file or an Egg file.
A container for a URL, e.g.
An STL function object class, this is intended to be used on any ordered collection of class objects ...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.