libcamgm
Url.hpp
Go to the documentation of this file.
1 /*---------------------------------------------------------------------\
2 | |
3 | _ _ _ _ __ _ |
4 | | | | | | \_/ | / \ | | |
5 | | | | | | |_| | / /\ \ | | |
6 | | |__ | | | | | | / ____ \ | |__ |
7 | |____||_| |_| |_|/ / \ \|____| |
8 | |
9 | core library |
10 | |
11 | (C) SUSE Linux Products GmbH |
12 \----------------------------------------------------------------------/
13 
14  File: Url.hpp
15 
16  Author: Marius Tomaschewski
17  Maintainer: Marius Tomaschewski
18 
19 /-*/
24 #ifndef CA_MGM_URL_HPP
25 #define CA_MGM_URL_HPP
26 
27 #include <ca-mgm/config.h>
28 #include <ca-mgm/UrlBase.hpp>
29 
30 
31 // -------------------------------------------------------------------
32 namespace CA_MGM_NAMESPACE
33 {
34 namespace url
35 {
36 
96 class Url
97 {
98 public:
103 
108 
109 
110  ~Url();
111  Url();
112 
123  Url(const Url &url);
124 
125 
136  Url(const ca_mgm::url::UrlRef &url);
137 
138 
149  Url(const std::string &urlString);
150 
151 
152  // -----------------
170  static url::UrlRef
171  parseUrl(const std::string &urlString);
172 
173 
174  // -----------------
186  Url&
187  operator = (const std::string &urlString);
188 
189 
200  Url&
201  operator = (const Url &url);
202 
203 
204  // -----------------
209  std::vector<std::string>
210  getKnownSchemes() const;
211 
212 
227  bool
228  isValidScheme(const std::string &scheme) const;
229 
230 
240  bool
241  isValid() const;
242 
243 
244  // -----------------
252  std::string
253  toString() const;
254 
267  std::string
268  toString(const ViewOptions &opts) const;
269 
279  std::string
280  toCompleteString() const;
281 
282 
283  // -----------------
288  std::string
289  getScheme() const;
290 
291 
292  // -----------------
302  std::string
303  getAuthority() const;
304 
312  std::string
313  getUsername(EEncoding eflag = ca_mgm::url::E_DECODED) const;
314 
322  std::string
323  getPassword(EEncoding eflag = ca_mgm::url::E_DECODED) const;
324 
337  std::string
338  getHost(EEncoding eflag = ca_mgm::url::E_DECODED) const;
339 
344  std::string
345  getPort() const;
346 
347 
348  // -----------------
358  std::string
359  getPathData() const;
360 
369  std::string
370  getPathName(EEncoding eflag = ca_mgm::url::E_DECODED) const;
371 
376  std::string
377  getPathParams() const;
378 
391  std::vector<std::string>
392  getPathParamsArray() const;
393 
414  getPathParamsMap(EEncoding eflag = ca_mgm::url::E_DECODED) const;
415 
432  std::string
433  getPathParam(const std::string &param,
434  EEncoding eflag = ca_mgm::url::E_DECODED) const;
435 
436 
437  // -----------------
447  std::string
448  getQueryString() const;
449 
463  std::vector<std::string>
464  getQueryStringArray() const;
465 
485  getQueryStringMap(EEncoding eflag = ca_mgm::url::E_DECODED) const;
486 
503  std::string
504  getQueryParam(const std::string &param,
505  EEncoding eflag = ca_mgm::url::E_DECODED) const;
506 
507 
508  // -----------------
516  std::string
517  getFragment(EEncoding eflag = ca_mgm::url::E_DECODED) const;
518 
519 
520  // -----------------
527  void
528  setScheme(const std::string &scheme);
529 
530 
531  // -----------------
545  void
546  setAuthority(const std::string &authority);
547 
557  void
558  setUsername(const std::string &user,
559  EEncoding eflag = ca_mgm::url::E_DECODED);
560 
570  void
571  setPassword(const std::string &pass,
572  EEncoding eflag = ca_mgm::url::E_DECODED);
573 
594  void
595  setHost(const std::string &host,
596  EEncoding eflag = ca_mgm::url::E_DECODED);
597 
605  void
606  setPort(const std::string &port);
607 
608 
609  // -----------------
620  void
621  setPathData(const std::string &pathdata);
622 
630  void
631  setPathName(const std::string &path,
632  EEncoding eflag = ca_mgm::url::E_DECODED);
633 
640  void
641  setPathParams(const std::string &params);
642 
649  void
650  setPathParamsArray(const std::vector<std::string> &parray);
651 
658  void
659  setPathParamsMap(const ca_mgm::url::ParamMap &pmap);
660 
670  void
671  setPathParam(const std::string &param, const std::string &value);
672 
673 
674  // -----------------
681  void
682  setQueryString(const std::string &querystr);
683 
690  void
691  setQueryStringArray(const std::vector<std::string> &qarray);
692 
699  void
700  setQueryStringMap(const ca_mgm::url::ParamMap &qmap);
701 
711  void
712  setQueryParam(const std::string &param, const std::string &value);
713 
714 
715  // -----------------
723  void
724  setFragment(const std::string &fragment,
725  EEncoding eflag = ca_mgm::url::E_DECODED);
726 
727 
728  // -----------------
737  ViewOptions
738  getViewOptions() const;
739 
748  void
749  setViewOptions(const ViewOptions &vopts);
750 
757  friend std::ostream &
758  operator<<(std::ostream &os, const Url &url);
759 
760 private:
762 };
763 
764 
765 // -------------------------------------------------------------------
766 } // End url namespace
767 } // End of CA_MGM_NAMESPACE
768 #endif // CA_MGM_URLUTILS_HPP
769 // vim: set ts=8 sts=8 sw=8 ai noet:
Definition: UrlBase.hpp:48
std::string toString(bool b)
Definition: String.hpp:125
ca_mgm::url::EEncoding EEncoding
Definition: Url.hpp:102
std::ostream & operator<<(std::ostream &ostr, const PathName &path)
std::map< std::string, std::string > ParamMap
Definition: UrlUtils.hpp:95
url::UrlRef m_impl
Definition: Url.hpp:761
Url manipulation class.
Definition: Url.hpp:96
ca_mgm::url::ViewOptions ViewOptions
Definition: Url.hpp:107
LiMaL url base class.
Flag to request decoded string(s).
Definition: UrlUtils.hpp:137
EEncoding
Definition: UrlUtils.hpp:135