Manages the cached tiles of one or more tile controllers. More...
#include <ilviews/maps/tiling/tilecache.h>
Public Member Functions | |
virtual void | controllerDeleted (IlvTileController *controller)=0 |
Called when a controller is deleted. More... | |
void | lock () |
Called by the objects that use the cache. More... | |
virtual void | tileAboutToLoad (IlvTile *tile)=0 |
Called by a tile controller each time a tile is about to be loaded. More... | |
virtual void | tileCached (IlvTile *tile)=0 |
Called each time a loaded tile has no longer a lock. More... | |
virtual void | tileRetrieved (IlvTile *tile)=0 |
Called each time that an unreleased cached tile is locked again. More... | |
void | unLock () |
Called by objects that stop using the cache. More... | |
Protected Member Functions | |
IlvTileCache () | |
Initializes a new IlvTileCache instance. | |
virtual | ~IlvTileCache () |
Destructor. More... | |
void | releaseTile (IlvTile *tile) |
Releases a tile. More... | |
Manages the cached tiles of one or more tile controllers.
Library: ilvmaps
A cached tile is a tile that is not visible in any view and that is not locked by any application object. An IlvTileCache
object releases the cached tiles to free memory when necessary.
|
protectedvirtual |
Destructor.
The destructor of the IlvTileCache
is protected, as should be all the destructors of subclasses of IlvTileCache
.
Instances of this class can be shared between different tile controllers and other objects.
The memory management must be performed with the lock / unLock mechanism.
|
pure virtual |
Called when a controller is deleted.
The cache should remove all the tiles that are controlled by the controller from its internal structures without releasing the tiles.
controller | The controller that is being deleted. |
Implemented in IlvDefaultTileCache.
void IlvTileCache::lock | ( | ) |
Called by the objects that use the cache.
The cache can not be deleted until it is unlocked again.
unLock()
.
|
protected |
Releases a tile.
The tile is deleted during this call.
tile | The tile to be released. |
|
pure virtual |
Called by a tile controller each time a tile is about to be loaded.
The cache can then, if necessary, release some cached tiles.
tile | The tile that is about to be loaded. |
Implemented in IlvDefaultTileCache.
|
pure virtual |
Called each time a loaded tile has no longer a lock.
It means that the tile is not visible in any view and that no other application object has locked the tile. Cached tiles can be released to release memory for tiles that are about to be loaded.
tile | The tile that has to be cached. |
Implemented in IlvDefaultTileCache.
|
pure virtual |
Called each time that an unreleased cached tile is locked again.
It means that the tile is visible in at least one view or has been locked by an application object. Retrieved tiles should not be released.
tile | The tile that is retrieved from the cache by a tile controller. |
Implemented in IlvDefaultTileCache.
void IlvTileCache::unLock | ( | ) |
Called by objects that stop using the cache.
When the reference counter falls to 0
, the cache is deleted.
lock()
.