libzypp  17.37.5
Url.h
Go to the documentation of this file.
1 /*---------------------------------------------------------------------\
2 | ____ _ __ __ ___ |
3 | |__ / \ / / . \ . \ |
4 | / / \ V /| _/ _/ |
5 | / /__ | | | | | | |
6 | /_____||_| |_| |_| |
7 | |
8 \---------------------------------------------------------------------*/
12 #ifndef ZYPP_URL_H
13 #define ZYPP_URL_H
14 
15 #include <set>
16 #include <zypp-core/url/UrlBase.h>
17 #include <zypp-core/url/UrlUtils.h>
18 
19 
21 namespace zypp
22 {
23 
24  class Url;
25  namespace hotfix1050625 {
26  std::string asString( const Url & url_r );
27  }
28  namespace filesystem {
29  class Pathname;
30  }
31  using filesystem::Pathname;
32 
92  class ZYPP_API Url
93  {
94  public:
99 
104 
105 
106  ~Url();
107  Url();
108 
119  Url(const Url &url);
120 
121 
132  Url(zypp::url::UrlRef url);
133 
134 
148  Url(const std::string &encodedUrl);
149 
150 
154  Url(Url &&other) = default;
155 
156 
157  // -----------------
174  static url::UrlRef
175  parseUrl(const std::string &encodedUrl);
176 
177 
178  // -----------------
193  Url&
194  operator = (const std::string &encodedUrl);
195 
196 
207  Url&
208  operator = (const Url &url);
209 
210 
214  Url &operator=(Url &&other) = default;
215 
216 
217  // -----------------
225  static bool
226  registerScheme(const std::string &scheme,
227  url::UrlRef urlImpl);
228 
233  static zypp::url::UrlSchemes
234  getRegisteredSchemes();
235 
240  static bool
241  isRegisteredScheme(const std::string &scheme);
242 
243 
244  // -----------------
250  getKnownSchemes() const;
251 
252 
267  bool
268  isValidScheme(const std::string &scheme) const;
269 
270 
272  static bool schemeIsLocal( const std::string & scheme_r );
274  bool schemeIsLocal() const { return schemeIsLocal( getScheme() ); }
275 
277  static bool schemeIsRemote( const std::string & scheme_r );
279  bool schemeIsRemote() const { return schemeIsRemote( getScheme() ); }
280 
282  static bool schemeIsVolatile( const std::string & scheme_r );
284  bool schemeIsVolatile() const { return schemeIsVolatile( getScheme() ); }
285 
287  static bool schemeIsDownloading( const std::string & scheme_r );
289  bool schemeIsDownloading() const { return schemeIsDownloading( getScheme() ); }
290 
292  static bool schemeIsPlugin( const std::string & scheme_r );
294  bool schemeIsPlugin() const { return schemeIsPlugin( getScheme() ); }
295 
305  bool
306  isValid() const;
307 
308 
309  // -----------------
317  std::string
318  asString() const;
319 
332  std::string
333  asString(const ViewOptions &opts) const;
334 
344  std::string
345  asCompleteString() const;
346 
347 
348  // -----------------
353  std::string
354  getScheme() const;
355 
356 
357  // -----------------
367  std::string
368  getAuthority() const;
369 
377  std::string
378  getUsername(EEncoding eflag = zypp::url::E_DECODED) const;
379 
387  std::string
388  getPassword(EEncoding eflag = zypp::url::E_DECODED) const;
389 
394  { return ! ( getUsername().empty() || getPassword().empty() ); }
395 
408  std::string
409  getHost(EEncoding eflag = zypp::url::E_DECODED) const;
410 
415  std::string
416  getPort() const;
417 
418 
419  // -----------------
429  std::string
430  getPathData() const;
431 
440  std::string
441  getPathName(EEncoding eflag = zypp::url::E_DECODED) const;
442 
447  std::string
448  getPathParams() const;
449 
463  getPathParamsVec() const;
464 
485  getPathParamsMap(EEncoding eflag = zypp::url::E_DECODED) const;
486 
503  std::string
504  getPathParam(const std::string &param,
505  EEncoding eflag = zypp::url::E_DECODED) const;
506 
507 
508  // -----------------
518  std::string
519  getQueryString() const;
520 
535  getQueryStringVec() const;
536 
556  getQueryStringMap(EEncoding eflag = zypp::url::E_DECODED) const;
557 
574  std::string
575  getQueryParam(const std::string &param,
576  EEncoding eflag = zypp::url::E_DECODED) const;
577 
578 
579  // -----------------
587  std::string
588  getFragment(EEncoding eflag = zypp::url::E_DECODED) const;
589 
590 
591  // -----------------
598  void
599  setScheme(const std::string &scheme);
600 
601 
602  // -----------------
616  void
617  setAuthority(const std::string &authority);
618 
628  void
629  setUsername(const std::string &user,
631 
641  void
642  setPassword(const std::string &pass,
644 
665  void
666  setHost(const std::string &host);
667 
675  void
676  setPort(const std::string &port);
677 
678 
679  // -----------------
690  void
691  setPathData(const std::string &pathdata);
692 
700  void
701  setPathName(const std::string &path,
704  void
705  setPathName(const Pathname &path,
708  void
709  setPathName(const char *path,
711 
715  void appendPathName( const Pathname & path_r, EEncoding eflag_r = zypp::url::E_DECODED );
716 
720  void pathNameSetTrailingSlash( bool apply_r = true );
721 
728  void
729  setPathParams(const std::string &params);
730 
737  void
738  setPathParamsVec(const zypp::url::ParamVec &pvec);
739 
746  void
747  setPathParamsMap(const zypp::url::ParamMap &pmap);
748 
758  void
759  setPathParam(const std::string &param, const std::string &value);
760 
761 
762  // -----------------
769  void
770  setQueryString(const std::string &querystr);
771 
778  void
779  setQueryStringVec(const zypp::url::ParamVec &qvec);
780 
787  void
788  setQueryStringMap(const zypp::url::ParamMap &qmap);
789 
799  void
800  setQueryParam(const std::string &param, const std::string &value);
801 
810  void
811  delQueryParam(const std::string &param);
812 
814  void
815  delQueryParams(const std::set<std::string> &params);
816 
817 
818  // -----------------
826  void
827  setFragment(const std::string &fragment,
829 
830 
831  // -----------------
841  getViewOptions() const;
842 
851  void
852  setViewOptions(const ViewOptions &vopts);
853 
854  private:
855  friend std::string hotfix1050625::asString( const Url & url_r );
857  };
858 
859  std::ostream & operator<<( std::ostream & str, const Url & url ) ZYPP_API;
860 
864  bool operator<( const Url &lhs, const Url &rhs ) ZYPP_API;
865 
869  bool operator==( const Url &lhs, const Url &rhs ) ZYPP_API;
870 
871 
872  bool operator!=( const Url &lhs, const Url &rhs ) ZYPP_API;
873 
875 } // namespace zypp
877 
878 #endif /* ZYPP_URL_H */
879 /*
880 ** vim: set ts=2 sts=2 sw=2 ai et:
881 */
std::string asString(const Patch::Category &obj)
Definition: Patch.cc:122
std::map< std::string, std::string > ParamMap
A parameter map container.
Definition: UrlUtils.h:47
String related utilities and Regular expression matching.
bool hasCredentialsInAuthority() const
Returns true if username and password are encoded in the authority component.
Definition: Url.h:393
std::ostream & operator<<(std::ostream &str, const SerialNumber &obj)
Definition: SerialNumber.cc:52
bool operator==(const SetRelation::Enum &lhs, const SetCompare &rhs)
std::vector< std::string > ParamVec
A parameter vector container.
Definition: UrlUtils.h:40
Url::asString() view options.
Definition: UrlBase.h:40
ViewOption ViewOptions
ViewOptions is just an alias for ViewOption.
Definition: UrlBase.h:245
bool schemeIsPlugin() const
Definition: Url.h:294
const Arch Arch_armv7hnl Arch_armv7nhl ZYPP_API
Definition: ResTraits.h:93
bool schemeIsVolatile() const
Definition: Url.h:284
std::string asString(const Url &url_r)
Definition: Url.cc:948
std::vector< std::string > UrlSchemes
Vector of URL scheme names.
Definition: UrlBase.h:252
bool operator!=(const SetRelation::Enum &lhs, const SetCompare &rhs)
zypp::Url Url
Definition: url.h:15
bool schemeIsRemote() const
Definition: Url.h:279
bool schemeIsDownloading() const
Definition: Url.h:289
url::UrlRef m_impl
Definition: Url.h:856
EEncoding
Encoding flags.
Definition: UrlUtils.h:52
bool operator<(const StrMatcher &lhs, const StrMatcher &rhs)
Definition: StrMatcher.cc:340
Easy-to use interface to the ZYPP dependency resolver.
Definition: Application.cc:19
Url manipulation class.
Definition: Url.h:92
Flag to request decoded string(s).
Definition: UrlUtils.h:54
bool schemeIsLocal() const
Definition: Url.h:274