You.i Engine
YiUrl.h
Go to the documentation of this file.
1 // © You i Labs Inc. 2000-2017. All rights reserved.
2 #ifndef _YI_URL_H_
3 #define _YI_URL_H_
4 
5 #include "framework/YiPredef.h"
6 #include "utility/YiString.h"
7 
8 class CYIUrlQuery;
9 
24 class CYIUrl
25 {
26 public:
27  enum PARTS
28  {
29  SCHEME = 0x1,
30  USERNAME = 0x2,
31  PASSWORD = 0x4,
32  HOST = 0x8,
33  PORT = 0x10,
34  PATH = 0x20,
35  QUERY = 0x40,
36  FRAGMENT = 0x80,
43  };
44 
45  enum ENCODING
46  {
49  };
50 
54  static const CYIUrl &EmptyUrl();
55 
61  CYIUrl();
62 
68  explicit CYIUrl(const CYIString &url, ENCODING eEncoding = ENCODED);
69 
70 
71  bool operator==(const CYIUrl &other) const;
72  bool operator!=(const CYIUrl &other) const;
73  bool operator<(const CYIUrl &other) const;
74 
75 
83  void SetScheme(const CYIString &scheme);
84 
92  void SetAuthority(const CYIString &authority, ENCODING eEncoding = DECODED);
93 
101  void SetAuthentication(const CYIString &authentication, ENCODING eEncoding = DECODED);
102 
110  void SetUsername(const CYIString &username, ENCODING eEncoding = DECODED);
111 
119  void SetPassword(const CYIString &password, ENCODING eEncoding = DECODED);
120 
130  void SetHost(const CYIString &host, ENCODING eEncoding = DECODED);
131 
137  void SetPort(int32_t nPort);
138 
146  void SetPort(const CYIString &port);
147 
157  void SetPath(const CYIString &path, CYIUrl::ENCODING eEncoding = DECODED);
158 
168  void SetQuery(const CYIString &query, CYIUrl::ENCODING eEncoding = DECODED);
169 
173  void SetQuery(const CYIUrlQuery &query);
174 
182  void SetFragment(const CYIString &fragment, CYIUrl::ENCODING eEncoding = DECODED);
183 
191  void SetString(const CYIString &url, ENCODING eEncoding = ENCODED);
192 
193 
199  const CYIString &GetScheme() const;
200 
210  CYIString GetAuthority(ENCODING eEncoding = DECODED) const;
211 
221  CYIString GetAuthentication(ENCODING eEncoding = DECODED) const;
222 
230  CYIString GetUsername(ENCODING eEncoding = DECODED) const;
231 
239  CYIString GetPassword(ENCODING eEncoding = DECODED) const;
240 
248  CYIString GetHost(ENCODING eEncoding = DECODED) const;
249 
255  int32_t GetPort() const;
256 
262  const CYIString &GetPortString() const;
263 
264 
276  CYIString GetPath(ENCODING eEncoding = DECODED) const;
277 
287  CYIString GetQuery(ENCODING eEncoding = DECODED) const;
288 
289 
297  CYIString GetFragment(ENCODING eEncoding = DECODED) const;
298 
305 
317  CYIString ToString(PARTS eParts = EVERYTHING, ENCODING eEncoding = ENCODED) const;
318 
322  bool IsEmpty() const;
323 
324 
328  void Clear();
329 
339  static CYIString Encode(const CYIString &input);
340 
350  static CYIString Decode(const CYIString &input);
351 
352 private:
353  CYIString m_scheme;
354 
355  CYIString m_username;
356  CYIString m_password;
357  CYIString m_host;
358  CYIString m_port;
359 
360  CYIString m_path;
361  CYIString m_query;
362  CYIString m_fragment;
363 };
364 
369 std::ostream &operator<<(std::ostream &stream, const CYIUrl &val);
370 
371 #endif
const CYIString & GetScheme() const
void SetUsername(const CYIString &username, ENCODING eEncoding=DECODED)
CYIString GetHost(ENCODING eEncoding=DECODED) const
void SetScheme(const CYIString &scheme)
void SetAuthentication(const CYIString &authentication, ENCODING eEncoding=DECODED)
Definition: YiUrl.h:40
Definition: YiUrl.h:47
Container class for Unicode strings. Conceptually, a CYIString object is a sequence of Unicode charac...
Definition: YiString.h:35
Definition: YiUrl.h:35
Definition: YiUrl.h:41
void Clear()
int32_t GetPort() const
CYIString GetPath(ENCODING eEncoding=DECODED) const
Definition: YiUrl.h:30
bool IsEmpty() const
Definition: YiUrl.h:36
PARTS
Definition: YiUrl.h:27
Definition: YiUrl.h:32
Definition: YiUrl.h:48
void SetQuery(const CYIString &query, CYIUrl::ENCODING eEncoding=DECODED)
bool operator!=(const CYIUrl &other) const
CYIUrlQuery GetQueryBuilder() const
void SetFragment(const CYIString &fragment, CYIUrl::ENCODING eEncoding=DECODED)
CYIString GetAuthentication(ENCODING eEncoding=DECODED) const
void SetPassword(const CYIString &password, ENCODING eEncoding=DECODED)
const CYIString & GetPortString() const
static CYIString Encode(const CYIString &input)
CYIString GetQuery(ENCODING eEncoding=DECODED) const
std::ostream & operator<<(std::ostream &stream, const CYIUrl &val)
CYIString ToString(PARTS eParts=EVERYTHING, ENCODING eEncoding=ENCODED) const
Definition: YiUrl.h:38
Definition: YiUrl.h:39
CYIString GetUsername(ENCODING eEncoding=DECODED) const
An URL query builder.
Definition: YiUrlQuery.h:28
void SetString(const CYIString &url, ENCODING eEncoding=ENCODED)
Definition: YiUrl.h:42
A class used to encapsulate an URL.
Definition: YiUrl.h:24
CYIString GetPassword(ENCODING eEncoding=DECODED) const
Definition: YiUrl.h:34
CYIString GetFragment(ENCODING eEncoding=DECODED) const
Definition: YiUrl.h:29
ENCODING
Definition: YiUrl.h:45
CYIString GetAuthority(ENCODING eEncoding=DECODED) const
bool operator<(const CYIUrl &other) const
Definition: YiUrl.h:37
void SetHost(const CYIString &host, ENCODING eEncoding=DECODED)
static const CYIUrl & EmptyUrl()
Definition: YiUrl.h:31
Definition: YiUrl.h:33
void SetPort(int32_t nPort)
void SetAuthority(const CYIString &authority, ENCODING eEncoding=DECODED)
bool operator==(const CYIUrl &other) const
void SetPath(const CYIString &path, CYIUrl::ENCODING eEncoding=DECODED)
static CYIString Decode(const CYIString &input)