Mercurial > projects > ldc
comparison tango/tango/net/model/UriView.d @ 132:1700239cab2e trunk
[svn r136] MAJOR UNSTABLE UPDATE!!!
Initial commit after moving to Tango instead of Phobos.
Lots of bugfixes...
This build is not suitable for most things.
author | lindquist |
---|---|
date | Fri, 11 Jan 2008 17:57:40 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
131:5825d48b27d1 | 132:1700239cab2e |
---|---|
1 /******************************************************************************* | |
2 | |
3 copyright: Copyright (c) 2004 Kris Bell. All rights reserved | |
4 | |
5 license: BSD style: $(LICENSE) | |
6 | |
7 version: Initial release: April 2004 | |
8 | |
9 author: Kris | |
10 | |
11 *******************************************************************************/ | |
12 | |
13 module tango.net.model.UriView; | |
14 | |
15 /******************************************************************************* | |
16 | |
17 Implements an RFC 2396 compliant URI specification. See | |
18 <A HREF="http://ftp.ics.uci.edu/pub/ietf/uri/rfc2396.txt">this page</A> | |
19 for more information. | |
20 | |
21 The implementation fails the spec on two counts: it doesn't insist | |
22 on a scheme being present in the UriView, and it doesn't implement the | |
23 "Relative References" support noted in section 5.2. | |
24 | |
25 Note that IRI support can be implied by assuming each of userinfo, path, | |
26 query, and fragment are UTF-8 encoded | |
27 (see <A HREF="http://www.w3.org/2001/Talks/0912-IUC-IRI/paper.html"> | |
28 this page</A> for further details). | |
29 | |
30 Use a Uri instead where you need to alter specific uri attributes. | |
31 | |
32 *******************************************************************************/ | |
33 | |
34 abstract class UriView | |
35 { | |
36 public enum {InvalidPort = -1} | |
37 | |
38 /*********************************************************************** | |
39 | |
40 Return the default port for the given scheme. InvalidPort | |
41 is returned if the scheme is unknown, or does not accept | |
42 a port. | |
43 | |
44 ***********************************************************************/ | |
45 | |
46 abstract int getDefaultPort (char[] scheme); | |
47 | |
48 /*********************************************************************** | |
49 | |
50 Return the parsed scheme, or null if the scheme was not | |
51 specified | |
52 | |
53 ***********************************************************************/ | |
54 | |
55 abstract char[] getScheme(); | |
56 | |
57 /*********************************************************************** | |
58 | |
59 Return the parsed host, or null if the host was not | |
60 specified | |
61 | |
62 ***********************************************************************/ | |
63 | |
64 abstract char[] getHost(); | |
65 | |
66 /*********************************************************************** | |
67 | |
68 Return the parsed port number, or InvalidPort if the port | |
69 was not provided. | |
70 | |
71 ***********************************************************************/ | |
72 | |
73 abstract int getPort(); | |
74 | |
75 /*********************************************************************** | |
76 | |
77 Return a valid port number by performing a lookup on the | |
78 known schemes if the port was not explicitly specified. | |
79 | |
80 ***********************************************************************/ | |
81 | |
82 abstract int getValidPort(); | |
83 | |
84 /*********************************************************************** | |
85 | |
86 Return the parsed userinfo, or null if userinfo was not | |
87 provided. | |
88 | |
89 ***********************************************************************/ | |
90 | |
91 abstract char[] getUserInfo(); | |
92 | |
93 /*********************************************************************** | |
94 | |
95 Return the parsed path, or null if the path was not | |
96 provided. | |
97 | |
98 ***********************************************************************/ | |
99 | |
100 abstract char[] getPath(); | |
101 | |
102 /*********************************************************************** | |
103 | |
104 Return the parsed query, or null if a query was not | |
105 provided. | |
106 | |
107 ***********************************************************************/ | |
108 | |
109 abstract char[] getQuery(); | |
110 | |
111 /*********************************************************************** | |
112 | |
113 Return the parsed fragment, or null if a fragment was not | |
114 provided. | |
115 | |
116 ***********************************************************************/ | |
117 | |
118 abstract char[] getFragment(); | |
119 | |
120 /*********************************************************************** | |
121 | |
122 Return whether or not the UriView scheme is considered generic. | |
123 | |
124 ***********************************************************************/ | |
125 | |
126 abstract bool isGeneric (); | |
127 | |
128 /*********************************************************************** | |
129 | |
130 Emit the content of this UriView. Output is constructed per | |
131 RFC 2396. | |
132 | |
133 ***********************************************************************/ | |
134 | |
135 abstract char[] toString (); | |
136 } | |
137 |