X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f4ada568223b79c8a5769cc351c36a8e2ccd7841..c978d36124197b5612a2cabefed7591ad0eea6e2:/include/wx/url.h diff --git a/include/wx/url.h b/include/wx/url.h index dae1c6ec30..f9cfdbdb75 100644 --- a/include/wx/url.h +++ b/include/wx/url.h @@ -8,6 +8,7 @@ // Copyright: (c) 1997, 1998 Guilhem Lavaux // Licence: wxWindows license ///////////////////////////////////////////////////////////////////////////// + #ifndef _WX_URL_H #define _WX_URL_H @@ -15,12 +16,16 @@ #pragma interface #endif -// wxWindows header -#include "wx/object.h" +#include "wx/defs.h" + +#if wxUSE_URL -// wxSocket headers +#include "wx/object.h" #include "wx/protocol/protocol.h" -#include "wx/protocol/http.h" + +#if wxUSE_PROTOCOL_HTTP + #include "wx/protocol/http.h" +#endif typedef enum { wxURL_NOERR = 0, @@ -31,40 +36,69 @@ typedef enum { wxURL_CONNERR, wxURL_PROTOERR } wxURLError; - -class WXDLLEXPORT wxURL : public wxObject { - DECLARE_DYNAMIC_CLASS(wxURL) -protected: - static wxProtoInfo *g_protocols; - static wxHTTP g_proxy; - wxProtoInfo *m_protoinfo; - wxProtocol *m_protocol; - wxHTTP m_proxy; - wxURLError m_error; - wxString m_protoname, m_hostname, m_servname, m_path, m_url; - - bool PrepProto(wxString& url); - bool PrepHost(wxString& url); - bool PrepPath(wxString& url); - bool ParseURL(); - void CleanData(); - bool FetchProtocol(); - - friend class wxProtoInfo; + +class WXDLLEXPORT wxURL : public wxObject +{ public: + wxURL(const wxString& url); + virtual ~wxURL(); + + wxString GetProtocolName() const { return m_protoinfo->m_protoname; } + wxString GetHostName() const { return m_hostname; } + wxString GetURL() const { return m_url; } + wxProtocol& GetProtocol() { return *m_protocol; } + wxURLError GetError() const { return m_error; } + wxString GetPath() const { return m_path; } + + wxInputStream *GetInputStream(); - wxURL(const wxString& url); - virtual ~wxURL(); +#if wxUSE_SOCKETS + static void SetDefaultProxy(const wxString& url_proxy); + void SetProxy(const wxString& url_proxy); +#endif // wxUSE_SOCKETS - inline wxString GetProtocolName() const - { return m_protoinfo->m_protoname; } - inline wxProtocol& GetProtocol() { return *m_protocol; } - inline wxURLError GetError() const { return m_error; } + static wxString ConvertToValidURI( + const wxString& uri, + const wxChar* delims = wxT(";/?:@&=+$,") + ); + static wxString ConvertFromURI(const wxString& uri); - wxInputStream *GetInputStream(); +protected: + static wxProtoInfo *ms_protocols; + +#if wxUSE_SOCKETS + static wxHTTP *ms_proxyDefault; + static bool ms_useDefaultProxy; + wxHTTP *m_proxy; +#endif // wxUSE_SOCKETS + + 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; + bool m_useProxy; + + bool PrepProto(wxString& url); + bool PrepHost(wxString& url); + bool PrepPath(wxString& url); + bool ParseURL(); + void CleanData(); + bool FetchProtocol(); - static void SetDefaultProxy(const wxString& url_proxy); - void SetProxy(const wxString& url_proxy); + friend class wxProtoInfo; + 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) }; -#endif +#endif // wxUSE_URL + +#endif // _WX_URL_H +