X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/371a5b4e62eb415107e045588f614fa49e866e78..d4808d76f91a7523dd5bc730c634d9fd8210c773:/include/wx/url.h diff --git a/include/wx/url.h b/include/wx/url.h index 9008fc12f4..89e3e34e74 100644 --- a/include/wx/url.h +++ b/include/wx/url.h @@ -2,7 +2,7 @@ // Name: url.h // Purpose: URL parser // Author: Guilhem Lavaux -// Modified by: +// Modified by: Ryan Norton // Created: 20/07/1997 // RCS-ID: $Id$ // Copyright: (c) 1997, 1998 Guilhem Lavaux @@ -12,7 +12,7 @@ #ifndef _WX_URL_H #define _WX_URL_H -#if defined(__GNUG__) && !defined(__APPLE__) +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma interface "url.h" #endif @@ -20,7 +20,7 @@ #if wxUSE_URL -#include "wx/object.h" +#include "wx/uri.h" #include "wx/protocol/protocol.h" #if wxUSE_PROTOCOL_HTTP @@ -37,18 +37,30 @@ typedef enum { wxURL_PROTOERR } wxURLError; -class WXDLLEXPORT wxURL : public wxObject +#if wxUSE_URL_NATIVE +class WXDLLIMPEXP_NET wxURL; + +class WXDLLIMPEXP_NET wxURLNativeImp : public wxObject +{ +public: + virtual ~wxURLNativeImp() { } + virtual wxInputStream *GetInputStream(wxURL *owner) = 0; +}; +#endif // wxUSE_URL_NATIVE + +class WXDLLIMPEXP_NET wxURL : public wxURI { public: - wxURL(const wxString& url); + wxURL(const wxString& sUrl); + wxURL(const wxURI& url); virtual ~wxURL(); - wxString GetProtocolName() const { return m_protoinfo->m_protoname; } - wxString GetHostName() const { return m_hostname; } - wxString GetURL() const { return m_url; } + wxURL& operator = (const wxString& url); + wxURL& operator = (const wxURI& url); + wxProtocol& GetProtocol() { return *m_protocol; } wxURLError GetError() const { return m_error; } - wxString GetPath() const { return m_path; } + wxString GetURL() const { return m_url; } wxInputStream *GetInputStream(); @@ -57,11 +69,21 @@ public: void SetProxy(const wxString& url_proxy); #endif // wxUSE_SOCKETS +#if WXWIN_COMPATIBILITY_2_4 + //Use the proper wxURI accessors instead + wxString GetProtocolName() const { return m_scheme; } + wxString GetHostName() const { return m_server; } + wxString GetPath() const { return m_path; } + + //Use wxURI instead - this does not work that well static wxString ConvertToValidURI( const wxString& uri, const wxChar* delims = wxT(";/?:@&=+$,") ); + + //Use wxURI::Unescape instead static wxString ConvertFromURI(const wxString& uri); +#endif protected: static wxProtoInfo *ms_protocols; @@ -72,17 +94,22 @@ protected: wxHTTP *m_proxy; #endif // wxUSE_SOCKETS +#if wxUSE_URL_NATIVE + friend class wxURLNativeImp; + // pointer to a native URL implementation object + wxURLNativeImp *m_nativeImp; + // Creates on the heap and returns a native + // implementation object for the current platform. + static wxURLNativeImp *CreateNativeImpObject(); +#endif wxProtoInfo *m_protoinfo; wxProtocol *m_protocol; wxURLError m_error; - wxString m_protoname, m_hostname, m_servname, m_path, m_url; - wxString m_user, m_password; + wxString m_url; bool m_useProxy; - bool PrepProto(wxString& url); - bool PrepHost(wxString& url); - bool PrepPath(wxString& url); + void Init(const wxString&); bool ParseURL(); void CleanData(); bool FetchProtocol(); @@ -91,10 +118,6 @@ protected: friend class wxURLModule; private: - // VZ: can't use default copy ctor for this class, should write a correct - // one! (TODO) - DECLARE_NO_COPY_CLASS(wxURL) - DECLARE_DYNAMIC_CLASS(wxURL) };