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
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 ¶m,
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 ¶m,
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 ¶ms);
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 ¶m, 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 ¶m, 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 }
00778
00779 #endif
00780
00781
00782