]>
git.saurik.com Git - wxWidgets.git/blob - include/wx/uri.h
706e5010cf6abc94380eca4c33e09ab587e7d81d
1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: wxURI - Class for parsing/validating URIs
9 /////////////////////////////////////////////////////////////////////////////
14 #if defined(__GNUG__) && !defined(__APPLE__)
15 #pragma interface "uri.h"
19 #include "wx/object.h"
20 #include "wx/string.h"
22 // Host Type that the server can be
43 // Generic class for parsing URIs.
45 // Originally based off of RFC 2396 - then
46 // extended to meet the newer RFC 2396.bis
48 class wxURI
: public wxObject
52 wxURI(const wxString
& uri
);
53 wxURI(const wxURI
& uri
);
57 void Create(const wxString
& uri
);
59 bool HasScheme() const;
61 bool HasServer() const;
64 bool HasQuery() const;
65 bool HasFragment() const;
67 const wxString
& GetScheme() const;
68 const wxString
& GetPath() const;
69 const wxString
& GetQuery() const;
70 const wxString
& GetFragment() const;
71 const wxString
& GetPort() const;
72 const wxString
& GetUser() const;
73 const wxString
& GetServer() const;
74 const wxURIHostType
& GetHostType() const;
78 void Resolve(const wxURI
& base
, const bool& bStrict
= true);
79 bool IsReference() const;
81 wxURI
& operator = (const wxURI
& uri
);
82 wxURI
& operator = (const wxChar
* string
);
83 bool operator == (const wxURI
& uri
) const;
89 const wxChar
* Parse (const wxChar
* uri
);
90 const wxChar
* ParseAuthority (const wxChar
* uri
);
91 const wxChar
* ParseScheme (const wxChar
* uri
);
92 const wxChar
* ParseUser (const wxChar
* uri
);
93 const wxChar
* ParseServer (const wxChar
* uri
);
94 const wxChar
* ParsePort (const wxChar
* uri
);
95 const wxChar
* ParsePath (const wxChar
* uri
, const bool& bReference
= false,
96 const bool& bNormalize
= true);
97 const wxChar
* ParseQuery (const wxChar
* uri
);
98 const wxChar
* ParseFragment (const wxChar
* uri
);
101 static bool ParseH16(const wxChar
*& uri
);
102 static bool ParseIPv4address(const wxChar
*& uri
);
103 static bool ParseIPv6address(const wxChar
*& uri
);
104 static bool ParseIPvFuture(const wxChar
*& uri
);
107 static void Normalize(wxChar
* uri
, const bool& bIgnoreLeads
= false);
108 static void UpTree(const wxChar
* uristart
, const wxChar
*& uri
);
110 static void Unescape(const wxChar
*& s
, wxChar
& c
);
111 static void Escape (wxString
& s
, const wxChar
& c
);
112 static bool IsEscape(const wxChar
*& uri
);
114 static int CharToHex(const wxChar
& c
);
117 static bool IsUnreserved (const wxChar
& c
);
118 static bool IsReserved (const wxChar
& c
);
119 static bool IsGenDelim (const wxChar
& c
);
120 static bool IsSubDelim (const wxChar
& c
);
121 static bool IsHex(const wxChar
& c
);
122 static bool IsAlpha(const wxChar
& c
);
123 static bool IsDigit(const wxChar
& c
);
134 wxURIHostType m_hostType
;
138 DECLARE_DYNAMIC_CLASS(wxURI
)