11 #include "utils/UrlOptions.h" 15 #include <string_view> 18 #undef SetPort // WIN32INCLUDES this is defined as SetPortA in WinSpool.h which is being included _somewhere_ 24 explicit CURL(std::string strURL) {
Parse(std::move(strURL)); }
30 bool operator==(
const std::string &url)
const {
return Get() == url; }
33 void Parse(std::string strURL);
34 void SetFileName(std::string strFileName);
35 void SetHostName(std::string strHostName) { m_strHostName = std::move(strHostName); }
37 void SetUserName(std::string strUserName) { m_strUserName = std::move(strUserName); }
39 void SetDomain(std::string strDomain) { m_strDomain = std::move(strDomain); }
41 void SetPassword(std::string strPassword) { m_strPassword = std::move(strPassword); }
43 void SetProtocol(std::string strProtocol);
44 void SetOptions(std::string strOptions);
45 void SetProtocolOptions(std::string strOptions);
46 void SetPort(
int port)
53 return (m_iPort != 0);
61 const std::string& GetHostName()
const 66 const std::string& GetDomain()
const 71 const std::string& GetUserName()
const 76 const std::string& GetPassWord()
const 81 const std::string& GetFileName()
const 86 const std::string& GetProtocol()
const 91 std::string GetTranslatedProtocol()
const;
93 const std::string& GetFileType()
const 98 const std::string& GetShareName()
const 100 return m_strShareName;
103 const std::string& GetOptions()
const 108 const std::string& GetProtocolOptions()
const 110 return m_strProtocolOptions;
113 std::string GetFileNameWithoutPath()
const;
115 char GetDirectorySeparator()
const;
117 std::string Get()
const;
118 std::string GetWithoutOptions()
const;
119 std::string GetWithoutUserDetails(
bool redact =
false)
const;
120 std::string GetWithoutFilename()
const;
121 std::string GetRedacted()
const;
122 static std::string GetRedacted(std::string path);
123 bool IsLocal()
const;
124 bool IsLocalHost()
const;
125 static bool IsFileOnly(
const std::string &url);
126 static bool IsFullPath(
const std::string &url);
127 static std::string Decode(std::string_view strURLData);
128 static std::string
Encode(std::string_view strURLData);
147 static bool IsProtocolEqual(
const std::string& protocol,
const char *type);
157 return m_strFileType == type;
160 void GetOptions(std::map<std::string, std::string> &options)
const;
161 bool HasOption(
const std::string &key)
const;
162 bool GetOption(
const std::string &key, std::string &value)
const;
163 std::string GetOption(
const std::string &key)
const;
164 void SetOption(
const std::string &key,
const std::string &value);
165 void RemoveOption(
const std::string &key);
167 void GetProtocolOptions(std::map<std::string, std::string> &options)
const;
168 bool HasProtocolOption(
const std::string &key)
const;
169 bool GetProtocolOption(
const std::string &key, std::string &value)
const;
170 std::string GetProtocolOption(
const std::string &key)
const;
171 void SetProtocolOption(
const std::string &key,
const std::string &value);
172 void RemoveProtocolOption(
const std::string &key);
176 std::string m_strHostName;
177 std::string m_strShareName;
178 std::string m_strDomain;
179 std::string m_strUserName;
180 std::string m_strPassword;
181 std::string m_strFileName;
182 std::string m_strProtocol;
183 std::string m_strFileType;
184 std::string m_strOptions;
185 std::string m_strProtocolOptions;
static bool IsProtocolEqual(const std::string &protocol, const char *type)
Check whether a URL protocol is a given URL scheme. Both parameters MUST be lower-case. Typically this would be called using the result of TranslateProtocol() which enforces this for protocol.
Definition: URL.cpp:711
static bool IsFullPath(const std::string &url)
return true if the url includes the full path
Definition: URL.cpp:643
static bool IsFileOnly(const std::string &url)
return true if there are no directories in the url.
Definition: URL.cpp:638
void Parse(std::string strURL)
Definition: URL.cpp:52
bool IsProtocol(const char *type) const
Check whether a URL is a given URL scheme. Comparison is case-insensitive as per RFC1738.
Definition: URL.h:135
Definition: UrlOptions.h:16
bool IsFileType(const char *type) const
Check whether a URL is a given filetype. Comparison is effectively case-insensitive as both the param...
Definition: URL.h:155
static std::string Encode(std::string_view strURLData)
Definition: URL.cpp:690