source: josm/trunk/src/org/openstreetmap/josm/data/imagery/WMSCachedTileLoader.java@ 16398

Last change on this file since 16398 was 16398, checked in by simon04, 4 years ago

see #19208 - JCS: update package to org.apache.commons.jcs3

  • Property svn:eol-style set to native
File size: 1.9 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.data.imagery;
3
4import org.apache.commons.jcs3.access.behavior.ICacheAccess;
5import org.openstreetmap.gui.jmapviewer.Tile;
6import org.openstreetmap.gui.jmapviewer.interfaces.TileJob;
7import org.openstreetmap.gui.jmapviewer.interfaces.TileLoaderListener;
8import org.openstreetmap.josm.data.cache.BufferedImageCacheEntry;
9import org.openstreetmap.josm.data.preferences.IntegerProperty;
10
11/**
12 * Tileloader for WMS based imagery. It is separate to use different ThreadPoolExecutor, as we want
13 * to define number of simultaneous downloads for WMS separately
14 *
15 * @author Wiktor Niesiobędzki
16 * @since 8526
17 */
18public class WMSCachedTileLoader extends TMSCachedTileLoader {
19
20 /**
21 * overrides the THREAD_LIMIT in superclass, as we want to have separate limit and pool for WMS
22 */
23 public static final IntegerProperty THREAD_LIMIT = new IntegerProperty("imagery.wms.loader.maxjobs", 3);
24
25 /**
26 * Creates a TileLoader with separate WMS download thread pool.
27 *
28 * @param listener that will be notified when tile is loaded
29 * @param cache reference
30 * @param options tile job options
31 */
32 public WMSCachedTileLoader(TileLoaderListener listener, ICacheAccess<String, BufferedImageCacheEntry> cache,
33 TileJobOptions options) {
34
35 super(listener, cache, options);
36 // use WMS specific maximum number of download threads and use the same value for concurrent downloads per host
37 // for each layer use separate thread pool so the limit set in preferences is per imagery
38 setDownloadExecutor(TMSCachedTileLoader.getNewThreadPoolExecutor("WMS-downloader-%d", THREAD_LIMIT.get(), THREAD_LIMIT.get()));
39 }
40
41 @Override
42 public TileJob createTileLoaderJob(Tile tile) {
43 return new WMSCachedTileLoaderJob(listener, tile, cache, options, getDownloadExecutor());
44 }
45}
Note: See TracBrowser for help on using the repository browser.