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 
00259     bool
00260     isValid() const;
00261 
00262 
00263     // -----------------
00271     std::string
00272     asString() const;
00273 
00286     std::string
00287     asString(const ViewOptions &opts) const;
00288 
00298     std::string
00299     asCompleteString() const;
00300 
00301 
00302     // -----------------
00307     std::string
00308     getScheme() const;
00309 
00310 
00311     // -----------------
00321     std::string
00322     getAuthority() const;
00323 
00331     std::string
00332     getUsername(EEncoding eflag = zypp::url::E_DECODED) const;
00333 
00341     std::string
00342     getPassword(EEncoding eflag = zypp::url::E_DECODED) const;
00343 
00356     std::string
00357     getHost(EEncoding eflag = zypp::url::E_DECODED) const;
00358 
00363     std::string
00364     getPort() const;
00365 
00366 
00367     // -----------------
00377     std::string
00378     getPathData() const;
00379 
00388     std::string
00389     getPathName(EEncoding eflag = zypp::url::E_DECODED) const;
00390 
00395     std::string
00396     getPathParams() const;
00397 
00410     zypp::url::ParamVec
00411     getPathParamsVec() const;
00412 
00432     zypp::url::ParamMap
00433     getPathParamsMap(EEncoding eflag = zypp::url::E_DECODED) const;
00434 
00451     std::string
00452     getPathParam(const std::string &param,
00453                  EEncoding eflag = zypp::url::E_DECODED) const;
00454 
00455 
00456     // -----------------
00466     std::string
00467     getQueryString() const;
00468 
00482     zypp::url::ParamVec
00483     getQueryStringVec() const;
00484 
00503     zypp::url::ParamMap
00504     getQueryStringMap(EEncoding eflag = zypp::url::E_DECODED) const;
00505 
00522     std::string
00523     getQueryParam(const std::string &param,
00524                   EEncoding eflag = zypp::url::E_DECODED) const;
00525 
00526 
00527     // -----------------
00535     std::string
00536     getFragment(EEncoding eflag = zypp::url::E_DECODED) const;
00537 
00538 
00539     // -----------------
00546     void
00547     setScheme(const std::string &scheme);
00548 
00549 
00550     // -----------------
00564     void
00565     setAuthority(const std::string &authority);
00566 
00576     void
00577     setUsername(const std::string &user,
00578                 EEncoding         eflag = zypp::url::E_DECODED);
00579 
00589     void
00590     setPassword(const std::string &pass,
00591                 EEncoding         eflag = zypp::url::E_DECODED);
00592 
00613     void
00614     setHost(const std::string &host);
00615 
00623     void
00624     setPort(const std::string &port);
00625 
00626 
00627     // -----------------
00638     void
00639     setPathData(const std::string &pathdata);
00640 
00648     void
00649     setPathName(const std::string &path,
00650                 EEncoding         eflag = zypp::url::E_DECODED);
00651 
00658     void
00659     setPathParams(const std::string &params);
00660 
00667     void
00668     setPathParamsVec(const zypp::url::ParamVec &pvec);
00669 
00676     void
00677     setPathParamsMap(const zypp::url::ParamMap &pmap);
00678 
00688     void
00689     setPathParam(const std::string &param, const std::string &value);
00690 
00691 
00692     // -----------------
00699     void
00700     setQueryString(const std::string &querystr);
00701 
00708     void
00709     setQueryStringVec(const zypp::url::ParamVec &qvec);
00710 
00717     void
00718     setQueryStringMap(const zypp::url::ParamMap &qmap);
00719 
00729     void
00730     setQueryParam(const std::string &param, const std::string &value);
00731 
00732 
00733     // -----------------
00741     void
00742     setFragment(const std::string &fragment,
00743                 EEncoding         eflag = zypp::url::E_DECODED);
00744 
00745 
00746     // -----------------
00755     ViewOptions
00756     getViewOptions() const;
00757 
00766     void
00767     setViewOptions(const ViewOptions &vopts);
00768 
00769   private:
00770     url::UrlRef m_impl;
00771   };
00772 
00773   std::ostream & operator<<( std::ostream & str, const Url & url );
00774 
00776 } // namespace zypp
00778 
00779 #endif /* ZYPP_URL_H */
00780 /*
00781 ** vim: set ts=2 sts=2 sw=2 ai et:
00782 */

Generated on Thu Jul 6 00:07:28 2006 for zypp by  doxygen 1.4.6