libzypp 17.37.10

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
25 namespace zypp
26{
27
29
30 namespace url
31 {
32
33
34 // ---------------------------------------------------------------
40 using ParamVec = std::vector<std::string>;
41
42
47 using ParamMap = std::map<std::string, std::string>;
48
49
52 typedef enum {
53 E_ENCODED,
54 E_DECODED
55 } EEncoding;
56
57
58 // ---------------------------------------------------------------
84 std::string
85 encode(const std::string &str, const std::string &safe = "",
86 EEncoding eflag = E_DECODED) ZYPP_API;
87
88
89 // ---------------------------------------------------------------
105 std::string
106 decode(const std::string &str, bool allowNUL = false) ZYPP_API;
107
108
109 // ---------------------------------------------------------------
119 std::string
120 encode_octet(const unsigned char c) ZYPP_API;
121
122
123 // ---------------------------------------------------------------
142 int
143 decode_octet(const char *hex) ZYPP_API;
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 // ---------------------------------------------------------------
245 std::string
246 join(const ParamMap &pmap,
247 const std::string &psep,
248 const std::string &vsep,
249 const std::string &safe,
250 EEncoding eflag);
251
252
254 } // namespace url
256
258} // namespace zypp
260
261#endif /* ZYPP_URL_URLUTILS_H */
262/*
263** vim: set ts=2 sts=2 sw=2 ai et:
264*/
std
Definition Arch.h:364
str
String related utilities and Regular expression matching.
zypp::url::encode
std::string encode(const std::string &str, const std::string &safe, EEncoding eflag)
Encodes a string using URL percent encoding.
Definition UrlUtils.cc:32
zypp::url::decode_octet
int decode_octet(const char *hex)
Decode one character.
Definition UrlUtils.cc:148
zypp::url::ParamVec
std::vector< std::string > ParamVec
A parameter vector container.
Definition UrlUtils.h:40
zypp::url::encode_octet
std::string encode_octet(const unsigned char c)
Encode one character.
Definition UrlUtils.cc:132
zypp::url::split
void split(ParamVec &pvec, const std::string &pstr, const std::string &psep)
Split into a parameter vector.
Definition UrlUtils.cc:164
zypp::url::join
std::string join(const ParamVec &pvec, const std::string &psep)
Join parameter vector to a string.
Definition UrlUtils.cc:252
zypp::url::ParamMap
std::map< std::string, std::string > ParamMap
A parameter map container.
Definition UrlUtils.h:47
zypp::url::EEncoding
EEncoding
Encoding flags.
Definition UrlUtils.h:52
zypp::url::E_DECODED
@ E_DECODED
Flag to request decoded string(s).
Definition UrlUtils.h:54
zypp::url::E_ENCODED
@ E_ENCODED
Flag to request encoded string(s).
Definition UrlUtils.h:53
zypp::url::decode
std::string decode(const std::string &str, bool allowNUL)
Decodes a URL percent encoded string.
Definition UrlUtils.cc:87
zypp
Easy-to use interface to the ZYPP dependency resolver.
Definition Application.cc:20
zypp::ZYPP_API
const Arch Arch_armv7hnl Arch_armv7nhl ZYPP_API
Definition Arch.h:247
UrlException.h