]> git.tdb.fi Git - libs/net.git/blobdiff - source/utils.h
Add functions for parsing and building URIs and query strings
[libs/net.git] / source / utils.h
index 76127a4525845562841c4084d14557f8e948c021..559638a34bf6512e6b289b54efc68ab56c56c889 100644 (file)
@@ -8,13 +8,37 @@ Distributed under the LGPL
 #ifndef MSP_HTTP_UTILS_H_
 #define MSP_HTTP_UTILS_H_
 
+#include <map>
 #include <string>
 
 namespace Msp {
 namespace Http {
 
-std::string urlencode(const std::string &);
+enum EncodeLevel
+{
+       MINIMAL,
+       SAFE,
+       PARANOID
+};
+
+struct Url
+{
+       std::string scheme;
+       std::string host;
+       std::string path;
+       std::string query;
+       std::string fragment;
+};
+
+typedef std::map<std::string, std::string> Query;
+
+std::string urlencode(const std::string &, EncodeLevel =SAFE);
+std::string urlencode_plus(const std::string &, EncodeLevel =SAFE);
 std::string urldecode(const std::string &);
+Url parse_url(const std::string &);
+std::string build_url(const Url &);
+Query parse_query(const std::string &);
+std::string build_query(const Query &);
 
 } // namespace Http
 } // namespace Msp