MCPcopy Create free account
hub / github.com/OSGeo/gdal / CreateBlockStrategyRequests

Function CreateBlockStrategyRequests

autotest/cpp/testblockcache.cpp:291–324  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

289}
290
291static int CreateBlockStrategyRequests(GDALDataset *poDS, int nMaxRequests,
292 Request *&psRequestList,
293 Request *&psRequestLast)
294{
295 int nXSize = poDS->GetRasterXSize();
296 int nYSize = poDS->GetRasterYSize();
297 int nMaxXWin = std::min(1000, nXSize / 10 + 1);
298 int nMaxYWin = std::min(1000, nYSize / 10 + 1);
299 int nQueriedBands = std::min(4, poDS->GetRasterCount());
300 int bStop = FALSE;
301 int nRequests = 0;
302 for (int iLoop = 0; !bStop && iLoop < nLoops; iLoop++)
303 {
304 for (int nYOff = 0; !bStop && nYOff < nYSize; nYOff += nMaxYWin)
305 {
306 int nReqYSize =
307 (nYOff + nMaxYWin > nYSize) ? nYSize - nYOff : nMaxYWin;
308 for (int nXOff = 0; nXOff < nXSize; nXOff += nMaxXWin)
309 {
310 if (nMaxRequests > 0 && nRequests == nMaxRequests)
311 {
312 bStop = TRUE;
313 break;
314 }
315 int nReqXSize =
316 (nXOff + nMaxXWin > nXSize) ? nXSize - nXOff : nMaxXWin;
317 AddRequest(psRequestList, psRequestLast, nXOff, nYOff,
318 nReqXSize, nReqYSize, nQueriedBands);
319 nRequests++;
320 }
321 }
322 }
323 return nQueriedBands * nMaxXWin * nMaxYWin;
324}
325
326TEST(testblockcache, test)
327{

Callers 1

TESTFunction · 0.85

Calls 5

AddRequestFunction · 0.85
minFunction · 0.50
GetRasterXSizeMethod · 0.45
GetRasterYSizeMethod · 0.45
GetRasterCountMethod · 0.45

Tested by

no test coverage detected