libzypp 17.31.23
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-core/url/UrlException.h>
16
17#include <string>
18#include <vector>
19#include <map>
20
22#define URL_SAFE_CHARS ":/?#[]@!$&'(){}*+,;="
23
25namespace 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 {
53 E_ENCODED,
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*/
String related utilities and Regular expression matching.
int decode_octet(const char *hex)
Decode one character.
Definition: UrlUtils.cc:149
std::string encode_octet(const unsigned char c)
Encode one character.
Definition: UrlUtils.cc:132
std::string encode(const std::string &str, const std::string &safe, EEncoding eflag)
Encodes a string using URL percent encoding.
Definition: UrlUtils.cc:32
std::map< std::string, std::string > ParamMap
A parameter map container.
Definition: UrlUtils.h:47
std::vector< std::string > ParamVec
A parameter vector container.
Definition: UrlUtils.h:40
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
@ E_DECODED
Flag to request decoded string(s).
Definition: UrlUtils.h:54
@ E_ENCODED
Flag to request encoded string(s).
Definition: UrlUtils.h:53
std::string decode(const std::string &str, bool allowNUL)
Decodes a URL percent encoded string.
Definition: UrlUtils.cc:87
Easy-to use interface to the ZYPP dependency resolver.
Definition: CodePitfalls.doc:2