/////////////////////////////////////////////////////////////////////////////
// Name: uri.h
-// Purpose: wxURI - Class for parsing URIs
+// Purpose: wxURI - Class for parsing URIs
// Author: Ryan Norton
-// Modified By:
+// Modified By:
// Created: 07/01/2004
// RCS-ID: $Id$
-// Licence: wxWindows
+// Copyright: (c) Ryan Norton
+// Licence: wxWindows Licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_URI_H_
#define _WX_URI_H_
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma interface "uri.h"
-#endif
-
#include "wx/defs.h"
#include "wx/object.h"
#include "wx/string.h"
// Host Type that the server component can be
enum wxURIHostType
{
- wxURI_REGNAME, // Host is a normal register name (www.mysite.com etc.)
- wxURI_IPV4ADDRESS, // Host is a version 4 ip address (192.168.1.100)
+ wxURI_REGNAME, // Host is a normal register name (www.mysite.com etc.)
+ wxURI_IPV4ADDRESS, // Host is a version 4 ip address (192.168.1.100)
wxURI_IPV6ADDRESS, // Host is a version 6 ip address [aa:aa:aa:aa::aa:aa]:5050
- wxURI_IPVFUTURE // Host is a future ip address (wxURI is unsure what kind)
+ wxURI_IPVFUTURE // Host is a future ip address (wxURI is unsure what kind)
};
// Component Flags
// Generic class for parsing URIs.
//
-// Originally based off of RFC 2396 - then
-// extended to meet the newer RFC 2396.bis
-// specifications.
+// See RFC 3986
class WXDLLIMPEXP_BASE wxURI : public wxObject
{
public:
bool HasPath() const { return (m_fields & wxURI_PATH) == wxURI_PATH; }
bool HasQuery() const { return (m_fields & wxURI_QUERY) == wxURI_QUERY; }
bool HasFragment() const { return (m_fields & wxURI_FRAGMENT) == wxURI_FRAGMENT; }
-
+
const wxString& GetScheme() const { return m_scheme; }
const wxString& GetPath() const { return m_path; }
const wxString& GetQuery() const { return m_query; }
//Note that the following two get functions are explicitly depreciated by RFC 2396
wxString GetUser() const;
wxString GetPassword() const;
-
+
wxString BuildURI() const;
wxString BuildUnescapedURI() const;
bool operator == (const wxURI& uri) const;
static wxString Unescape (const wxString& szEscapedURI);
-
+
protected:
wxURI& Assign(const wxURI& uri);
static void Normalize(wxChar* uri, bool bIgnoreLeads = false);
static void UpTree(const wxChar* uristart, const wxChar*& uri);
+ static void UpTree(wxString::const_iterator uristart,
+ wxString::const_iterator& uri);
- static wxChar TranslateEscape(const wxChar* s);
- static void Escape (wxString& s, const wxChar& c);
+ static wxUniChar TranslateEscape(const wxString::const_iterator& s);
+ static void Escape(wxString& s, const wxChar& c);
static bool IsEscape(const wxChar*& uri);
static wxChar CharToHex(const wxChar& c);