MCPcopy Create free account
hub / github.com/comaps/comaps / DownloadAsString

Method DownloadAsString

libs/storage/map_files_downloader.cpp:109–133  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

107}
108
109void MapFilesDownloader::DownloadAsString(std::string url, std::function<bool(std::string const &)> && callback,
110 bool forceReset /* = false */)
111{
112 EnsureMetaConfigReady([this, forceReset, url = std::move(url), callback = std::move(callback)]()
113 {
114 if ((m_fileRequest && !forceReset) || m_serversList.empty())
115 return;
116
117 // Servers are sorted from best to worst.
118 m_fileRequest.reset(RequestT::Get(url::Join(m_serversList.front(), url),
119 [this, callback = std::move(callback)](RequestT & request)
120 {
121 bool deleteRequest = true;
122 auto const & buffer = request.GetData();
123
124 LOG(LDEBUG, ("DownloadAsString: status=", request.GetStatus(), "bytes=", buffer.size()));
125
126 // Update deleteRequest flag if new download was requested in callback.
127 deleteRequest = !callback(buffer);
128
129 if (deleteRequest)
130 m_fileRequest.reset();
131 }));
132 });
133}
134
135void MapFilesDownloader::EnsureMetaConfigReady(std::function<void()> && callback)
136{

Callers 2

Calls 8

GetFunction · 0.85
frontMethod · 0.80
JoinFunction · 0.50
emptyMethod · 0.45
resetMethod · 0.45
GetDataMethod · 0.45
GetStatusMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected