Network/WebRequest: Add option flags
This commit is contained in:
parent
c52ffa15c4
commit
f1de6f9198
|
|
@ -119,6 +119,22 @@ namespace Nz
|
||||||
};
|
};
|
||||||
|
|
||||||
constexpr std::size_t SocketTypeCount = static_cast<std::size_t>(SocketType::Max) + 1;
|
constexpr std::size_t SocketTypeCount = static_cast<std::size_t>(SocketType::Max) + 1;
|
||||||
|
|
||||||
|
enum class WebRequestOption
|
||||||
|
{
|
||||||
|
FailOnError,
|
||||||
|
FollowRedirects,
|
||||||
|
|
||||||
|
Max = FollowRedirects
|
||||||
|
};
|
||||||
|
|
||||||
|
template<>
|
||||||
|
struct EnumAsFlags<WebRequestOption>
|
||||||
|
{
|
||||||
|
static constexpr WebRequestOption max = WebRequestOption::Max;
|
||||||
|
};
|
||||||
|
|
||||||
|
using WebRequestOptionFlags = Flags<WebRequestOption>;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // NAZARA_NETWORK_ENUMS_HPP
|
#endif // NAZARA_NETWORK_ENUMS_HPP
|
||||||
|
|
|
||||||
|
|
@ -46,6 +46,7 @@ namespace Nz
|
||||||
inline void SetHeader(std::string header, std::string value);
|
inline void SetHeader(std::string header, std::string value);
|
||||||
void SetJSonContent(std::string encodedJSon);
|
void SetJSonContent(std::string encodedJSon);
|
||||||
void SetMaximumFileSize(UInt64 maxFileSize);
|
void SetMaximumFileSize(UInt64 maxFileSize);
|
||||||
|
inline void SetOptions(WebRequestOptionFlags options);
|
||||||
inline void SetResultCallback(ResultCallback callback);
|
inline void SetResultCallback(ResultCallback callback);
|
||||||
void SetServiceName(std::string serviceName);
|
void SetServiceName(std::string serviceName);
|
||||||
void SetURL(const std::string& url);
|
void SetURL(const std::string& url);
|
||||||
|
|
@ -87,6 +88,7 @@ namespace Nz
|
||||||
MovablePtr<emscripten_fetch_t> m_fetchHandle;
|
MovablePtr<emscripten_fetch_t> m_fetchHandle;
|
||||||
#endif
|
#endif
|
||||||
ResultCallback m_resultCallback;
|
ResultCallback m_resultCallback;
|
||||||
|
WebRequestOptionFlags m_options;
|
||||||
bool m_isUserAgentSet;
|
bool m_isUserAgentSet;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,11 @@ namespace Nz
|
||||||
m_dataCallback = std::move(callback);
|
m_dataCallback = std::move(callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline void WebRequest::SetOptions(WebRequestOptionFlags options)
|
||||||
|
{
|
||||||
|
m_options = options;
|
||||||
|
}
|
||||||
|
|
||||||
inline void WebRequest::SetResultCallback(ResultCallback callback)
|
inline void WebRequest::SetResultCallback(ResultCallback callback)
|
||||||
{
|
{
|
||||||
m_resultCallback = std::move(callback);
|
m_resultCallback = std::move(callback);
|
||||||
|
|
|
||||||
|
|
@ -57,15 +57,15 @@ namespace Nz
|
||||||
switch (protocol)
|
switch (protocol)
|
||||||
{
|
{
|
||||||
case Nz::NetProtocol::Any:
|
case Nz::NetProtocol::Any:
|
||||||
libcurl.easy_setopt(m_curlHandle, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_WHATEVER);
|
libcurl.easy_setopt(m_curlHandle, CURLOPT_IPRESOLVE, long(CURL_IPRESOLVE_WHATEVER));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Nz::NetProtocol::IPv4:
|
case Nz::NetProtocol::IPv4:
|
||||||
libcurl.easy_setopt(m_curlHandle, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
|
libcurl.easy_setopt(m_curlHandle, CURLOPT_IPRESOLVE, long(CURL_IPRESOLVE_V4));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Nz::NetProtocol::IPv6:
|
case Nz::NetProtocol::IPv6:
|
||||||
libcurl.easy_setopt(m_curlHandle, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V6);
|
libcurl.easy_setopt(m_curlHandle, CURLOPT_IPRESOLVE, long(CURL_IPRESOLVE_V6));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Nz::NetProtocol::Unknown:
|
case Nz::NetProtocol::Unknown:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue