Network: Implement WebService with emscripten fetch API on wasm

This commit is contained in:
SirLynix
2023-06-14 19:32:01 +02:00
committed by Jérôme Leclercq
parent b28d97b1fa
commit 6bf91e10e5
13 changed files with 369 additions and 74 deletions

View File

@@ -32,16 +32,42 @@ namespace Nz
return m_dataCallback(data, length);
}
inline void WebRequest::TriggerCallback()
#ifdef NAZARA_PLATFORM_WEB
inline emscripten_fetch_t* WebRequest::GetFetchHandle() const
{
m_resultCallback(WebRequestResult(m_webService, m_curlHandle.Get(), std::move(m_responseBody)));
m_responseBody.clear();
return m_fetchHandle;
}
inline void WebRequest::TriggerCallback(std::string errorMessage)
inline Time WebRequest::GetRequestTime() const
{
m_resultCallback(WebRequestResult(m_webService, std::move(errorMessage)));
return m_clock.GetElapsedTime();
}
inline void WebRequest::StopClock()
{
m_clock.Pause();
}
#endif
inline void WebRequest::TriggerErrorCallback(std::string errorMessage)
{
#ifndef NAZARA_PLATFORM_WEB
m_resultCallback(WebRequestResult(m_webService, Nz::Err(std::move(errorMessage)), m_curlHandle.Get()));
#else
m_resultCallback(WebRequestResult(m_webService, Nz::Err(std::move(errorMessage)), m_fetchHandle.Get(), m_clock.GetElapsedTime()));
#endif
}
inline void WebRequest::TriggerSuccessCallback()
{
#ifndef NAZARA_PLATFORM_WEB
m_resultCallback(WebRequestResult(m_webService, Nz::Ok(std::move(m_responseBody)), m_curlHandle.Get()));
#else
m_resultCallback(WebRequestResult(m_webService, Nz::Ok(std::move(m_responseBody)), m_fetchHandle.Get(), m_clock.GetElapsedTime()));
#endif
m_responseBody.clear();
}
}
#include <Nazara/Network/DebugOff.hpp>
#include "WebRequest.hpp"