Url.h
Go to the documentation of this file.00001
00002
00003
00004
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 ¶m,
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 ¶m,
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 ¶ms);
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 ¶m, 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 ¶m, const std::string &value);
00757
00758
00759
00767 void
00768 setFragment(const std::string &fragment,
00769 EEncoding eflag = zypp::url::E_DECODED);
00770
00771
00772
00781 ViewOptions
00782 getViewOptions() const;
00783
00792 void
00793 setViewOptions(const ViewOptions &vopts);
00794
00795 private:
00796 url::UrlRef m_impl;
00797 };
00798
00799 std::ostream & operator<<( std::ostream & str, const Url & url );
00800
00804 bool operator<( const Url &lhs, const Url &rhs );
00805
00809 bool operator==( const Url &lhs, const Url &rhs );
00810
00811
00812 bool operator!=( const Url &lhs, const Url &rhs );
00813
00815 }
00817
00818 #endif
00819
00820
00821