URI.h

Go to the documentation of this file.
00001 
00020 #ifndef ARXX_URI_H
00021 #define ARXX_URI_H
00022 
00023 #include <map>
00024 #include <string>
00025 
00032 namespace Arxx
00033 {
00037     class URI
00038     {
00039     public:
00045         URI(void);
00046         
00051         URI(const std::string & sURI);
00052         
00057         URI(const char * pcURI);
00058         
00062         bool bIsValid(void) const;
00063         
00067         const std::string & sGetURI(void) const;
00068         
00072         const std::string & sGetScheme(void) const;
00073         
00077         const std::string & sGetAuthority(void) const;
00078         
00082         const std::string & sGetPath(void) const;
00083         
00087         const std::string & sGetQuery(void) const;
00088         
00096         const std::string & sGetParameter(const std::string & sName) const;
00097         
00101         const std::string & sGetFragment(void) const;
00102         
00107         void vSetURI(const std::string & sURI);
00108         
00113         void vSetScheme(const std::string & sScheme);
00114         
00119         void vSetAuthority(const std::string & sAuthority);
00120         
00125         void vSetPath(const std::string & sPath);
00126         
00131         void vSetQuery(const std::string & sQuery);
00132         
00138         void vSetParameter(const std::string & sName, const std::string & sValue);
00139         
00144         void vSetFragment(const std::string & sFragment);
00145         
00149         bool operator<(const Arxx::URI & URI) const;
00150         
00154         void vInvalidate(void);
00155     private:
00159         void vPartition(void) const;
00160         
00164         void vPartitionQuery(void) const;
00165     
00169         void vConcatenate(void) const;
00170     
00174         void vConcatenateQuery(void) const;
00175         
00179         mutable std::string m_sURI;
00180         
00184         mutable std::string m_sScheme;
00185         
00189         mutable std::string m_sAuthority;
00190         
00194         mutable std::string m_sPath;
00195         
00199         mutable std::string m_sQuery;
00200         
00204         mutable std::string m_sFragment;
00205         
00209         mutable bool m_bIsURIValid;
00210         
00214         mutable bool m_bArePartsValid;
00215         
00219         mutable bool m_bIsQueryValid;
00220         
00226         mutable bool m_bAreQueryPartsValid;
00227         
00233         mutable std::map< std::string, std::string > m_Query;
00234     };
00235     
00236     std::ostream & operator<<(std::ostream & OStream, const Arxx::URI & URI);
00237 }
00238 
00239 #endif

Generated on Tue Oct 10 11:33:56 2006 for libarxx by  doxygen 1.4.7