DCL 4.0
Loading...
Searching...
No Matches
URI.h
Go to the documentation of this file.
1#ifndef __DCL_URI_H__
2#define __DCL_URI_H__
3
4#ifndef __DCL_EXCEPTION_H__
5#include <dcl/Exception.h>
6#endif
7
8__DCL_BEGIN_NAMESPACE
9
10/*
11 References
12 http://www.faqs.org/rfcs/rfc2396.html
13 RFC 2396
14 - Uniform Resource Identifiers (URI)
15 : Generic Syntax
16*/
17
19{
20public:
21 static ByteString decode(const char* _begin, const char* _end);
22 static ByteString decode(const ByteString& _str);
23 static String decode(const String& _str);
24};
25
27{
28public:
29 static ByteString encode(const ByteString& _str);
30 static String encode(const String& _str);
31};
32
34
35class DCLCAPI URI : public Object
36{
38public:
39 URI(const wchar_t* _uri)
41
42 URI(const wchar_t* _scheme,
43 const wchar_t* _schemeSpecificPart,
44 const wchar_t* _fragment
46
47 URI(const wchar_t* _scheme,
48 const wchar_t* _userInfo,
49 const wchar_t* _host,
50 int _port,
51 const wchar_t* _path,
52 const wchar_t* _query,
53 const wchar_t* _fragment
55
56 URI(const wchar_t* _scheme,
57 const wchar_t* _host,
58 const wchar_t* _path,
59 const wchar_t* _fragment
61
62 URI(const wchar_t* _scheme,
63 const wchar_t* _authority,
64 const wchar_t* _path,
65 const wchar_t* _query,
66 const wchar_t* _fragment
68
69 const String& scheme() const;
70 const String& schemeSpecificPart() const;
71 const String& authority() const;
72 const String& userInfo() const;
73 const String& host() const;
74 int port() const;
75 const String& path() const;
76 const String& query() const;
77 const String& fragment() const;
78
79 String toString() const;
80
81 bool isAbsolute() const;
82
83protected:
84 String __scheme;
87 String __userInfo;
88 String __host;
89 int __port;
90 String __path;
91 String __query;
92 String __fragment;
93
94 String __uri;
95
96 void parse(const wchar_t* _uri)
98
99 void assign(
100 const wchar_t* _scheme,
101 const wchar_t* _userInfo,
102 const wchar_t* _host,
103 int _port,
104 const wchar_t* _path,
105 const wchar_t* _query,
106 const wchar_t* _fragment
108};
109
111{
113public:
114 URISyntaxException(const String& _reason, const String& _source);
115 virtual String toString() const;
116
117protected:
118 String __message;
119};
120
121inline const String& URI::scheme() const
122{
123 return __scheme;
124}
125
126inline const String& URI::schemeSpecificPart() const
127{
129}
130
131inline const String& URI::authority() const
132{
133 return __authority;
134}
135
136inline const String& URI::userInfo() const
137{
138 return __userInfo;
139}
140
141inline const String& URI::host() const
142{
143 return __host;
144}
145
146inline int URI::port() const
147{
148 return __port;
149}
150
151inline const String& URI::path() const
152{
153 return __path;
154}
155
156inline const String& URI::query() const
157{
158 return __query;
159}
160
161inline const String& URI::fragment() const
162{
163 return __fragment;
164}
165
166inline String URI::toString() const
167{
168 return __uri;
169}
170
171inline bool URI::isAbsolute() const
172{
173 return !__scheme.isEmpty();
174}
175
176__DCL_END_NAMESPACE
177
178#endif // __DCL_URI_H__
#define DCLCAPI
Definition Config.h:100
#define __DCL_THROWS1(e)
Definition Config.h:167
#define DECLARE_CLASSINFO(class_name)
Definition Object.h:210
Exception(Exception *_cause=NULL)
Object()
Definition Object.cpp:183
virtual String toString() const
Definition Object.cpp:187
int __port
Definition URI.h:89
String __uri
Definition URI.h:94
String __authority
Definition URI.h:86
String __userInfo
Definition URI.h:87
String __fragment
Definition URI.h:92
String __query
Definition URI.h:91
void parse(const wchar_t *_uri) __DCL_THROWS1(URISyntaxException *)
Definition URI.cpp:273
String __scheme
Definition URI.h:84
void assign(const wchar_t *_scheme, const wchar_t *_userInfo, const wchar_t *_host, int _port, const wchar_t *_path, const wchar_t *_query, const wchar_t *_fragment) __DCL_THROWS1(URISyntaxException *)
Definition URI.cpp:203
String __schemeSpecificPart
Definition URI.h:85
String __host
Definition URI.h:88
String __path
Definition URI.h:90
String __message
Definition URI.h:118
static ByteString decode(const char *_begin, const char *_end)
Definition URI.cpp:46
static ByteString encode(const ByteString &_str)
Definition URI.cpp:83