]> git.saurik.com Git - wxWidgets.git/blob - interface/wx/url.h
Make storing non-trivial data in wxThreadSpecificInfo possible.
[wxWidgets.git] / interface / wx / url.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: url.h
3 // Purpose: interface of wxURL
4 // Author: wxWidgets team
5 // Licence: wxWindows licence
6 /////////////////////////////////////////////////////////////////////////////
7
8 /**
9 Error types returned from wxURL::GetError().
10 */
11 typedef enum {
12 wxURL_NOERR = 0, ///< No error.
13 wxURL_SNTXERR, ///< Syntax error in the URL string.
14 wxURL_NOPROTO, ///< Found no protocol which can get this URL.
15 wxURL_NOHOST, ///< A host name is required for this protocol.
16 wxURL_NOPATH, ///< A path is required for this protocol.
17 wxURL_CONNERR, ///< Connection error.
18 wxURL_PROTOERR ///< An error occurred during negotiation.
19 } wxURLError;
20
21 /**
22 @class wxURL
23
24 wxURL is a specialization of wxURI for parsing URLs. Please look at wxURI
25 documentation for more info about the functions you can use to retrieve the
26 various parts of the URL (scheme, server, port, etc).
27
28 Supports standard assignment operators, copy constructors, and comparison
29 operators.
30
31 @library{wxnet}
32 @category{net}
33
34 @see wxSocketBase, wxProtocol
35 */
36 class wxURL : public wxURI
37 {
38 public:
39 /**
40 Constructs a URL object from the string. The URL must be valid
41 according to RFC 1738. In particular, file URLs must be of the format
42 @c "file://hostname/path/to/file", otherwise GetError() will return a
43 value different from ::wxURL_NOERR.
44
45 It is valid to leave out the hostname but slashes must remain in place,
46 in other words, a file URL without a hostname must contain three
47 consecutive slashes (e.g. @c "file:///somepath/myfile").
48
49 @param url
50 Url string to parse.
51 */
52 wxURL(const wxString& url = wxEmptyString);
53
54 /**
55 Destroys the URL object.
56 */
57 virtual ~wxURL();
58
59 /**
60 Returns the last error. This error refers to the URL parsing or to the
61 protocol. It can be one of ::wxURLError.
62 */
63 wxURLError GetError() const;
64
65 /**
66 Creates a new input stream on the specified URL. You can use all but
67 seek functionality of wxStream. Seek isn't available on all streams.
68 For example, HTTP or FTP streams don't deal with it.
69
70 Note that this method is somewhat deprecated, all future wxWidgets
71 applications should use wxFileSystem instead.
72
73 Example:
74
75 @code
76 wxURL url("http://a.host/a.dir/a.file");
77 if (url.GetError() == wxURL_NOERR)
78 {
79 wxInputStream *in_stream;
80
81 in_stream = url.GetInputStream();
82 // Then, you can use all IO calls of in_stream (See wxStream)
83 }
84 @endcode
85
86 @return Returns the initialized stream. You will have to delete it
87 yourself.
88
89 @see wxInputStream
90 */
91 wxInputStream* GetInputStream();
92
93 /**
94 Returns a reference to the protocol which will be used to get the URL.
95 */
96 wxProtocol& GetProtocol();
97
98 /**
99 Returns @true if this object is correctly initialized, i.e.\ if
100 GetError() returns ::wxURL_NOERR.
101 */
102 bool IsOk() const;
103
104 /**
105 Sets the default proxy server to use to get the URL. The string
106 specifies the proxy like this: @c "<hostname>:<port number>".
107
108 @param url_proxy
109 Specifies the proxy to use.
110
111 @see SetProxy()
112 */
113 static void SetDefaultProxy(const wxString& url_proxy);
114
115 /**
116 Sets the proxy to use for this URL.
117
118 @see SetDefaultProxy()
119 */
120 void SetProxy(const wxString& url_proxy);
121
122 /**
123 Initializes this object with the given URL and returns ::wxURL_NOERR if
124 it's valid (see GetError() for more info).
125 */
126 wxURLError SetURL(const wxString& url);
127 };
128