public class

PersistentCacheTileDataSource

extends CacheTileDataSource
java.lang.Object
   ↳ com.carto.datasources.TileDataSource
     ↳ com.carto.datasources.CacheTileDataSource
       ↳ com.carto.datasources.PersistentCacheTileDataSource

Class Overview

A tile data source that loads tiles from another tile data source
and caches them in an offline sqlite database. Tiles will remain in the database
even after the application is closed.
The database contains table "persistent_cache" with the following fields:
"tileId" (tile id), "compressed" (compressed tile image),
"time" (the time the tile was cached in milliseconds from epoch).
Default cache capacity is 50MB.

Summary

Public Constructors
PersistentCacheTileDataSource(TileDataSource dataSource, String databasePath)
Constructs a PersistentCacheTileDataSource object from tile data source
and a sqlite database.
Public Methods
void clear()
Clear the cache.
void close()
Closes the cache database.
synchronized void delete()
long getCapacity()
Returns the tile cache capacity.
boolean isCacheOnlyMode()
Returns the state of cache only mode.
boolean isOpen()
Returns the status of the cache database.
TileData loadTile(MapTile mapTile)
Loads the specified tile.
void setCacheOnlyMode(boolean enabled)
Switches the datasource to 'cache only' mode or switches back from the mode.
void setCapacity(long capacityInBytes)
Sets the cache capacity.
void startDownloadArea(MapBounds mapBounds, int minZoom, int maxZoom, TileDownloadListener tileDownloadListener)
Starts downloading the specified area.
void stopAllDownloads()
Stops all background downloader processes.
[Expand]
Inherited Methods
From class com.carto.datasources.CacheTileDataSource
From class com.carto.datasources.TileDataSource
From class java.lang.Object

Public Constructors

public PersistentCacheTileDataSource (TileDataSource dataSource, String databasePath)

Constructs a PersistentCacheTileDataSource object from tile data source
and a sqlite database. The sqlite database must be writable, if it doesn't exist, an empty one
will be created instead.

Parameters
dataSource The datasource to be cached.
databasePath The path to the sqlite database, where the tiles will be cached.

Public Methods

public void clear ()

Clear the cache.

public void close ()

Closes the cache database. The datasource will still work afterwards,
but all requests will be directed to the original datasource.

public synchronized void delete ()

public long getCapacity ()

Returns the tile cache capacity.

Returns
  • The tile cache capacity in bytes.

public boolean isCacheOnlyMode ()

Returns the state of cache only mode.

Returns
  • True when cache only mode is enabled, false otherwise.

public boolean isOpen ()

Returns the status of the cache database.

Returns
  • True if the persistent cache database is open and working, false otherwise.

public TileData loadTile (MapTile mapTile)

Loads the specified tile.
Note: the tile coordinate system used here is vertically flipped relative to layer tile coordinate system.

Parameters
mapTile The tile to load.
Returns
  • The tile data. If the tile is not available, null may be returned.

public void setCacheOnlyMode (boolean enabled)

Switches the datasource to 'cache only' mode or switches back from the mode.
If enabled, tiles are loaded from the cache only and the original data source is not used.
By default, cache only mode is off.

Parameters
enabled True when the mode should be enabled, false otherwise.

public void setCapacity (long capacityInBytes)

Sets the cache capacity.

Parameters
capacityInBytes The new tile cache capacity in bytes.

public void startDownloadArea (MapBounds mapBounds, int minZoom, int maxZoom, TileDownloadListener tileDownloadListener)

Starts downloading the specified area. The area will be stored in the cache.
Note that is the area is too big or cache is already filled, subsequent downloaded tiles
may push existing tile out of the cache.

Parameters
mapBounds The bounds of the area to download. The coordinate system of the bounds must be the same as specified in the data source projection.
minZoom The minimum zoom of the tiles to load.
maxZoom The maximum zoom of the tiles to load.
tileDownloadListener The tile download listener to use that will receive download related callbacks.

public void stopAllDownloads ()

Stops all background downloader processes.