| 74 | } |
| 75 | |
| 76 | void MapFilesDownloader::DownloadAsStringFromMeta(std::string url, std::function<bool(std::string const &)> && callback, |
| 77 | bool forceReset /* = false */) |
| 78 | { |
| 79 | if (m_fileRequest && !forceReset) |
| 80 | return; |
| 81 | |
| 82 | Platform & pl = GetPlatform(); |
| 83 | std::string metaServerUrl = pl.MetaServerUrl(); |
| 84 | // If user sets a custom download server, skip metaserver entirely. |
| 85 | std::string const customServer = pl.CustomMapServerUrl(); |
| 86 | if (!customServer.empty()) |
| 87 | { |
| 88 | LOG(LINFO, ("Using custom map server URL:", customServer)); |
| 89 | |
| 90 | metaServerUrl = customServer; |
| 91 | } |
| 92 | |
| 93 | m_fileRequest.reset(RequestT::Get(url::Join(metaServerUrl, url), |
| 94 | [this, callback = std::move(callback)](RequestT & request) |
| 95 | { |
| 96 | bool deleteRequest = true; |
| 97 | auto const & buffer = request.GetData(); |
| 98 | |
| 99 | LOG(LDEBUG, ("DownloadAsString: status=", request.GetStatus(), "bytes=", buffer.size())); |
| 100 | |
| 101 | // Update deleteRequest flag if new download was requested in callback. |
| 102 | deleteRequest = !callback(buffer); |
| 103 | |
| 104 | if (deleteRequest) |
| 105 | m_fileRequest.reset(); |
| 106 | })); |
| 107 | } |
| 108 | |
| 109 | void MapFilesDownloader::DownloadAsString(std::string url, std::function<bool(std::string const &)> && callback, |
| 110 | bool forceReset /* = false */) |
no test coverage detected