libzypp  15.28.6
UrlUtils.h
Go to the documentation of this file.
1 /*---------------------------------------------------------------------\
2 | ____ _ __ __ ___ |
3 | |__ / \ / / . \ . \ |
4 | / / \ V /| _/ _/ |
5 | / /__ | | | | | | |
6 | /_____||_| |_| |_| |
7 | |
8 \---------------------------------------------------------------------*/
12 #ifndef ZYPP_URL_URLUTILS_H
13 #define ZYPP_URL_URLUTILS_H
14 
15 #include "zypp/url/UrlException.h"
16 
17 #include <string>
18 #include <vector>
19 #include <map>
20 
22 #define URL_SAFE_CHARS ":/?#[]@!$&'(){}*+,;="
23 
25 namespace zypp
26 {
27 
29 
30  namespace url
31  {
32 
33 
34  // ---------------------------------------------------------------
40  typedef std::vector < std::string > ParamVec;
41 
42 
47  typedef std::map < std::string, std::string > ParamMap;
48 
49 
52  typedef enum {
55  } EEncoding;
56 
57 
58  // ---------------------------------------------------------------
84  std::string
85  encode(const std::string &str, const std::string &safe = "",
86  EEncoding eflag = E_DECODED);
87 
88 
89  // ---------------------------------------------------------------
105  std::string
106  decode(const std::string &str, bool allowNUL = false);
107 
108 
109  // ---------------------------------------------------------------
119  std::string
120  encode_octet(const unsigned char c);
121 
122 
123  // ---------------------------------------------------------------
142  int
143  decode_octet(const char *hex);
144 
145 
146  // ---------------------------------------------------------------
160  void
161  split(ParamVec &pvec,
162  const std::string &pstr,
163  const std::string &psep);
164 
165 
166  // ---------------------------------------------------------------
194  void
195  split(ParamMap &pmap,
196  const std::string &pstr,
197  const std::string &psep,
198  const std::string &vsep,
199  EEncoding eflag = E_ENCODED);
200 
201 
202  // ---------------------------------------------------------------
216  std::string
217  join(const ParamVec &pvec,
218  const std::string &psep);
219 
220 
221  // ---------------------------------------------------------------
243  std::string
244  join(const ParamMap &pmap,
245  const std::string &psep,
246  const std::string &vsep,
247  const std::string &safe);
248 
249 
251  } // namespace url
253 
255 } // namespace zypp
257 
258 #endif /* ZYPP_URL_URLUTILS_H */
259 /*
260 ** vim: set ts=2 sts=2 sw=2 ai et:
261 */
std::vector< std::string > ParamVec
A parameter vector container.
Definition: UrlUtils.h:40
std::map< std::string, std::string > ParamMap
A parameter map container.
Definition: UrlUtils.h:47
Flag to request encoded string(s).
Definition: UrlUtils.h:53
int decode_octet(const char *hex)
Decode one character.
Definition: UrlUtils.cc:149
std::string encode(const std::string &str, const std::string &safe, EEncoding eflag)
Encodes a string using URL percent encoding.
Definition: UrlUtils.cc:32
Url url
Definition: MediaCurl.cc:180
void split(ParamVec &pvec, const std::string &pstr, const std::string &psep)
Split into a parameter vector.
Definition: UrlUtils.cc:165
std::string join(const ParamVec &pvec, const std::string &psep)
Join parameter vector to a string.
Definition: UrlUtils.cc:254
EEncoding
Encoding flags.
Definition: UrlUtils.h:52
std::string decode(const std::string &str, bool allowNUL)
Decodes a URL percent encoded string.
Definition: UrlUtils.cc:87
std::string encode_octet(const unsigned char c)
Encode one character.
Definition: UrlUtils.cc:132
Flag to request decoded string(s).
Definition: UrlUtils.h:54