}
-TileCache::~TileCache( void ) {
- clear_cache();
+TileCache::~TileCache( void )
+{
+ tile_map_iterator it = tile_cache.begin();
+ for (; it != tile_cache.end(); ++it) {
+ TileEntry* tile = it->second;
+ tile->removeFromSceneGraph();
+ delete tile;
+ }
}
return min_index;
}
+long TileCache::get_first_expired_tile() const
+{
+ const_tile_map_iterator current = tile_cache.begin();
+ const_tile_map_iterator end = tile_cache.end();
+
+ for ( ; current != end; ++current ) {
+ TileEntry *e = current->second;
+ if (!e->is_current_view() && e->is_expired(current_time))
+ {
+ return current->first;
+ }
+ }
+
+ return -1; // no expired tile found
+}
+
// Clear all flags indicating tiles belonging to the current view
void TileCache::clear_current_view()