示例#1
0
 private static IList <TileInfo> GetTilesMissing(IEnumerable <TileInfo> tilesWanted,
                                                 ITileCache <Tile <T> > memoryCache, Retries retries)
 {
     return(tilesWanted.Where(
                info => memoryCache.Find(info.Index) == null &&
                !retries.ReachedMax(info.Index)).ToList());
 }
示例#2
0
        private IList <TileInfo> GetTilesMissing(IEnumerable <TileInfo> tileInfos, MemoryCache <Feature> memoryCache,
                                                 Retries retries)
        {
            var result = new List <TileInfo>();

            foreach (var info in tileInfos)
            {
                if (retries.ReachedMax(info.Index))
                {
                    continue;
                }
                if (memoryCache.Find(info.Index) == null)
                {
                    result.Add(info);
                }
            }

            return(result);
        }
示例#3
0
        private void FetchTile(TileInfo info, Retries retries)
        {
            if (retries.ReachedMax(info.Index))
            {
                return;
            }

            lock (_tilesInProgress)
            {
                if (_tilesInProgress.Contains(info.Index))
                {
                    return;
                }
                _tilesInProgress.Add(info.Index);
            }

            retries.PlusOne(info.Index);
            _threadCount++;

            StartFetchOnThread(info);
        }
示例#4
0
        private void FetchTile(TileInfo info, Retries retries)
        {
            if (retries.ReachedMax(info.Index)) return;
            
            lock (_tilesInProgress)
            {
                if (_tilesInProgress.Contains(info.Index)) return;
                _tilesInProgress.Add(info.Index);
            }

            retries.PlusOne(info.Index);
            _threadCount++;

            StartFetchOnThread(info);
        }
示例#5
0
        private IList<TileInfo> GetTilesMissing(IEnumerable<TileInfo> tileInfos, MemoryCache<Feature> memoryCache, 
            Retries retries)
        {
            var result = new List<TileInfo>();

            foreach (var info in tileInfos)
            {
                if (retries.ReachedMax(info.Index)) continue;
                if (memoryCache.Find(info.Index) == null) result.Add(info);
            }

            return result;
        }