10Duke Scale C++ Client
Loading...
Searching...
No Matches
LibcurlURL.h
1#ifndef TENDUKE_NET_CURL_LIBCURLURL_H
2#define TENDUKE_NET_CURL_LIBCURLURL_H
3
4#include "net/URL.h"
5
6#include <curl/curl.h>
7
8namespace tenduke { namespace net { namespace curl {
9
10
14{
15public:
22 explicit LibcurlURL(bool lenient = true);
23 ~LibcurlURL() override;
24
25 // tenduke::net::URL interface
26 std::multimap<std::string, std::string> getQueryParameters() const override;
27 std::string getPath() const override;
28 void setPort(std::uint16_t port) override;
29 std::string toString() const override;
30
31
32public:
40 virtual void parse(const std::string &url);
41
42private:
43
44 bool lenient;
45 CURLU *curlHandle;
46};
47
48
57std::multimap<std::string, std::string> parseQueryString(const char * queryString);
58
59}}}
60
61#endif // TENDUKE_NET_CURL_LIBCURLURL_H
Represents URL.
Definition URL.h:15
Libcurl-based implementation of tenduke::net::URL.
Definition LibcurlURL.h:14
void setPort(std::uint16_t port) override
Sets port.
Definition LibcurlURL.cpp:109
std::string getPath() const override
Returns path, URL-decoded.
Definition LibcurlURL.cpp:130
virtual void parse(const std::string &url)
Parses given URL into this instance.
Definition LibcurlURL.cpp:50
std::string toString() const override
Returns the URL as string.
Definition LibcurlURL.cpp:104
std::multimap< std::string, std::string > getQueryParameters() const override
Returns the query parameters, URL-decoded.
Definition LibcurlURL.cpp:135
std::multimap< std::string, std::string > parseQueryString(const char *queryString)
Utility function to parse query string into a map.
Definition LibcurlURL.cpp:148
Root for classes, functions and globals of 10Duke C++ Client.
Definition BackendConfiguration.h:7