libzypp  10.5.0
Url.h
Go to the documentation of this file.
00001 /*---------------------------------------------------------------------\
00002 |                          ____ _   __ __ ___                          |
00003 |                         |__  / \ / / . \ . \                         |
00004 |                           / / \ V /|  _/  _/                         |
00005 |                          / /__ | | | | | |                           |
00006 |                         /_____||_| |_| |_|                           |
00007 |                                                                      |
00008 \---------------------------------------------------------------------*/
00012 #ifndef   ZYPP_URL_H
00013 #define   ZYPP_URL_H
00014 
00015 #include <zypp/url/UrlBase.h>
00016 #include <zypp/url/UrlUtils.h>
00017 
00018 
00020 namespace zypp
00021 { 
00022 
00023 
00083   class Url
00084   {
00085   public:
00089     typedef zypp::url::EEncoding    EEncoding;
00090 
00094     typedef zypp::url::ViewOptions  ViewOptions;
00095 
00096 
00097     ~Url();
00098     Url();
00099 
00110     Url(const Url &url);
00111 
00112 
00123     Url(const zypp::url::UrlRef &url);
00124 
00125 
00139     Url(const std::string &encodedUrl);
00140 
00141 
00142     // -----------------
00159     static url::UrlRef
00160     parseUrl(const std::string &encodedUrl);
00161 
00162 
00163     // -----------------
00178     Url&
00179     operator = (const std::string &encodedUrl);
00180 
00181 
00192     Url&
00193     operator = (const Url &url);
00194 
00195 
00196     // -----------------
00204     static bool
00205     registerScheme(const std::string &scheme,
00206                    url::UrlRef       urlImpl);
00207 
00212     static zypp::url::UrlSchemes
00213     getRegisteredSchemes();
00214 
00219     static bool
00220     isRegisteredScheme(const std::string &scheme);
00221 
00222 
00223     // -----------------
00228     zypp::url::UrlSchemes
00229     getKnownSchemes() const;
00230 
00231 
00246     bool
00247     isValidScheme(const std::string &scheme) const;
00248 
00249 
00251     static bool schemeIsLocal( const std::string & scheme_r );
00253     bool schemeIsLocal() const { return schemeIsLocal( getScheme() ); }
00254 
00256     static bool schemeIsRemote( const std::string & scheme_r );
00258     bool schemeIsRemote() const { return schemeIsRemote( getScheme() ); }
00259 
00261     static bool schemeIsVolatile( const std::string & scheme_r );
00263     bool schemeIsVolatile() const { return schemeIsVolatile( getScheme() ); }
00264 
00266     static bool schemeIsDownloading( const std::string & scheme_r );
00268     bool schemeIsDownloading() const { return schemeIsDownloading( getScheme() ); }
00269 
00279     bool
00280     isValid() const;
00281 
00282 
00283     // -----------------
00291     std::string
00292     asString() const;
00293 
00306     std::string
00307     asString(const ViewOptions &opts) const;
00308 
00318     std::string
00319     asCompleteString() const;
00320 
00321 
00322     // -----------------
00327     std::string
00328     getScheme() const;
00329 
00330 
00331     // -----------------
00341     std::string
00342     getAuthority() const;
00343 
00351     std::string
00352     getUsername(EEncoding eflag = zypp::url::E_DECODED) const;
00353 
00361     std::string
00362     getPassword(EEncoding eflag = zypp::url::E_DECODED) const;
00363 
00367     bool hasCredentialsInAuthority() const
00368     { return ! ( getUsername().empty() || getPassword().empty() ); }
00369 
00382     std::string
00383     getHost(EEncoding eflag = zypp::url::E_DECODED) const;
00384 
00389     std::string
00390     getPort() const;
00391 
00392 
00393     // -----------------
00403     std::string
00404     getPathData() const;
00405 
00414     std::string
00415     getPathName(EEncoding eflag = zypp::url::E_DECODED) const;
00416 
00421     std::string
00422     getPathParams() const;
00423 
00436     zypp::url::ParamVec
00437     getPathParamsVec() const;
00438 
00458     zypp::url::ParamMap
00459     getPathParamsMap(EEncoding eflag = zypp::url::E_DECODED) const;
00460 
00477     std::string
00478     getPathParam(const std::string &param,
00479                  EEncoding eflag = zypp::url::E_DECODED) const;
00480 
00481 
00482     // -----------------
00492     std::string
00493     getQueryString() const;
00494 
00508     zypp::url::ParamVec
00509     getQueryStringVec() const;
00510 
00529     zypp::url::ParamMap
00530     getQueryStringMap(EEncoding eflag = zypp::url::E_DECODED) const;
00531 
00548     std::string
00549     getQueryParam(const std::string &param,
00550                   EEncoding eflag = zypp::url::E_DECODED) const;
00551 
00552 
00553     // -----------------
00561     std::string
00562     getFragment(EEncoding eflag = zypp::url::E_DECODED) const;
00563 
00564 
00565     // -----------------
00572     void
00573     setScheme(const std::string &scheme);
00574 
00575 
00576     // -----------------
00590     void
00591     setAuthority(const std::string &authority);
00592 
00602     void
00603     setUsername(const std::string &user,
00604                 EEncoding         eflag = zypp::url::E_DECODED);
00605 
00615     void
00616     setPassword(const std::string &pass,
00617                 EEncoding         eflag = zypp::url::E_DECODED);
00618 
00639     void
00640     setHost(const std::string &host);
00641 
00649     void
00650     setPort(const std::string &port);
00651 
00652 
00653     // -----------------
00664     void
00665     setPathData(const std::string &pathdata);
00666 
00674     void
00675     setPathName(const std::string &path,
00676                 EEncoding         eflag = zypp::url::E_DECODED);
00677 
00684     void
00685     setPathParams(const std::string &params);
00686 
00693     void
00694     setPathParamsVec(const zypp::url::ParamVec &pvec);
00695 
00702     void
00703     setPathParamsMap(const zypp::url::ParamMap &pmap);
00704 
00714     void
00715     setPathParam(const std::string &param, const std::string &value);
00716 
00717 
00718     // -----------------
00725     void
00726     setQueryString(const std::string &querystr);
00727 
00734     void
00735     setQueryStringVec(const zypp::url::ParamVec &qvec);
00736 
00743     void
00744     setQueryStringMap(const zypp::url::ParamMap &qmap);
00745 
00755     void
00756     setQueryParam(const std::string &param, const std::string &value);
00757 
00766     void
00767     delQueryParam(const std::string &param);
00768 
00769 
00770     // -----------------
00778     void
00779     setFragment(const std::string &fragment,
00780                 EEncoding         eflag = zypp::url::E_DECODED);
00781 
00782 
00783     // -----------------
00792     ViewOptions
00793     getViewOptions() const;
00794 
00803     void
00804     setViewOptions(const ViewOptions &vopts);
00805 
00806   private:
00807     url::UrlRef m_impl;
00808   };
00809 
00810   std::ostream & operator<<( std::ostream & str, const Url & url );
00811 
00815   bool operator<( const Url &lhs, const Url &rhs );
00816 
00820   bool operator==( const Url &lhs, const Url &rhs );
00821 
00822 
00823   bool operator!=( const Url &lhs, const Url &rhs );
00824 
00826 } // namespace zypp
00828 
00829 #endif /* ZYPP_URL_H */
00830 /*
00831 ** vim: set ts=2 sts=2 sw=2 ai et:
00832 */