00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef URL_H
00023 #define URL_H
00024
00025 #include <swbuf.h>
00026 #include <map>
00027
00028 SWORD_NAMESPACE_START
00029
00033 class SWDLLEXPORT URL {
00034 public:
00035 typedef std::map<SWBuf, SWBuf> ParameterMap;
00036
00040 URL(const char *url);
00041
00045 const char *getProtocol() const;
00049 const char *getHostName() const;
00053 const char *getPath() const;
00054
00058 const ParameterMap &getParameters() const;
00059
00066 const char *getParameterValue(const char *name) const;
00067
00075 static const SWBuf encode(const char *urlText);
00076 static const SWBuf decode(const char *encodedText);
00077
00078 private:
00082 void parse();
00083
00084 SWBuf url;
00085 SWBuf protocol;
00086 SWBuf hostname;
00087 SWBuf path;
00088 ParameterMap parameterMap;
00089 };
00090
00091 SWORD_NAMESPACE_END
00092
00093 #endif //URL_H