URL.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef ROCKETCOREURL_H
00029 #define ROCKETCOREURL_H
00030
00031 #include <Rocket/Core/Header.h>
00032 #include <Rocket/Core/String.h>
00033 #include <map>
00034
00035 namespace Rocket {
00036 namespace Core {
00037
00042 class ROCKETCORE_API URL
00043 {
00044 public:
00046 URL();
00048 URL(const String& url);
00051 URL(const char* url);
00053 ~URL();
00054
00057 bool SetURL(const String& url);
00059 const String& GetURL() const;
00060
00062 bool SetProtocol(const String& protocol);
00064 const String& GetProtocol() const;
00065
00067 bool SetLogin( const String& login );
00069 const String& GetLogin() const;
00070
00072 bool SetPassword( const String& password );
00074 const String& GetPassword() const;
00075
00077 bool SetHost(const String& host);
00079 const String& GetHost() const;
00080
00082 bool SetPort(int port);
00084 int GetPort() const;
00085
00087 bool SetPath(const String& path);
00089 bool PrefixPath(const String& prefix);
00091 const String& GetPath() const;
00092
00094 bool SetFileName(const String& file_name);
00096 const String& GetFileName() const;
00097
00099 bool SetExtension(const String& extension);
00101 const String& GetExtension() const;
00102
00104 typedef std::map< String, String > Parameters;
00105 const Parameters& GetParameters() const;
00106 void SetParameter(const String& name, const String& value);
00107 void SetParameters( const Parameters& parameters );
00108 void ClearParameters();
00109
00111 String GetPathedFileName() const;
00113 String GetQueryString() const;
00114
00116 bool operator<(const URL& rhs) const;
00117
00118 private:
00119 void ConstructURL() const;
00120
00121 mutable String url;
00122 String protocol;
00123 String login;
00124 String password;
00125 String host;
00126 String path;
00127 String file_name;
00128 String extension;
00129
00130 Parameters parameters;
00131
00132 int port;
00133 mutable int url_dirty;
00134 };
00135
00136 }
00137 }
00138
00139 #endif